2017-05-21 6 views
1

私は崇高なための単純な.pyプラグインを作成しました。これはプレフィックス付きのタイムスタンプを出力し、複数のカーソル位置のそれぞれに挿入したいのです。崇高なテキスト複数のカーソルのキーバインド

プラグイン:

import datetime 
import sublime, sublime_plugin 

class TimestampcondencedCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
    val = "%s" % (datetime.datetime.now().strftime("am_func_%Y%m%d%H%M%S")) 
    self.view.insert(edit, self.view.sel()[0].begin(), val) 

とキーバインディング:

{ "keys": ["ctrl+shift+z"], "command": "timestampcondenced"} 

enter image description here

それは動作しますが、私は残念である影響を受けctrl+shift+zのみ最初のカーソルを、ヒット。 私はすべてのカーソルのためにそれを持っていますが、どうすればこの問題を解決できますか?

答えて

1

view.sel()はすべての選択肢の一覧を返しますが、コードは最初のコードのみを明示的に使用しています(の[0])。

import datetime 
import sublime, sublime_plugin 

class TimestampcondencedCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
    val = "%s" % (datetime.datetime.now().strftime("am_func_%Y%m%d%H%M%S")) 
    for sel in self.view.sel(): 
     self.view.insert(edit, sel.begin(), val) 
+3

または単に 'view.run_command(「挿入」、{「文字」:

あなただけではなく、選択のすべてをループする必要があり、カーソル位置のすべてのすべてで挿入するために

ヴァル}) 'これは、指定された文字をすべてのテキストキャレットの位置に自動的に挿入します –

関連する問題