我是 Sublime Text 键绑定的新手。有没有办法,当插入符号不在行尾时,在末尾插入分号?在宏中,我猜它是: go to eol -> insert ; -> 回来。但我不知道如何做回来的部分。
谢谢。
我是 Sublime Text 键绑定的新手。有没有办法,当插入符号不在行尾时,在末尾插入分号?在宏中,我猜它是: go to eol -> insert ; -> 回来。但我不知道如何做回来的部分。
谢谢。
我认为你必须使用一个插件,因为你想恢复以前的位置,尽管我可能是错的。这是一个 ST3 版本。
import sublime
import sublime_plugin
class SemicolonInsertCommand(sublime_plugin.TextCommand):
def run(self, edit):
region_name = "original_cursors"
view = self.view
view.add_regions(region_name, view.sel())
view.run_command("move_to", {"extend": False, "to": "eol"})
view.run_command("insert", {"characters": ";"})
view.sel().clear()
cursors = view.get_regions(region_name)
for cursor in cursors:
view.sel().add(sublime.Region(cursor.b, cursor.b))
view.erase_regions(region_name)
使用命令创建键绑定semicolon_insert
。我假设您的宏定义应该是 eol 而不是 eof。
编辑: ST2兼容版本
import sublime
import sublime_plugin
class SemicolonInsertCommand(sublime_plugin.TextCommand):
def run(self, edit):
region_name = "original_cursors"
view = self.view
view.add_regions(region_name, list(view.sel()), "")
view.run_command("move_to", {"extend": False, "to": "eol"})
view.run_command("insert", {"characters": ";"})
view.sel().clear()
cursors = view.get_regions(region_name)
for cursor in cursors:
view.sel().add(sublime.Region(cursor.b, cursor.b))
view.erase_regions(region_name)
在复古模式
;
并返回命令模式Esc 您可以重播宏:@然后YOUR_MACRO_ID
Packages/User/Macros/complete-semi-colon.sublime-macro
为您的新宏创建快捷方式,例如Ctrl+ ;eg
{
"keys": ["ctrl+;"],
"command": "run_macro_file",
"args": {
"file": "Packages/User/Macros/complete-semi-colon.sublime-macro"
}
}
你可以在没有复古模式的情况下做类似的事情。重要的部分是书签和宏快捷方式配置。
享受。
对上面的代码稍作修改。添加切换行为。因此,当您再次调用组合键时,分号将被删除。这是 Sublime Text 3 版本。
class SemicolonInsertCommand(sublime_plugin.TextCommand):
def run(self, edit):
region_name = "original_cursors"
view = self.view
view.add_regions(region_name, view.sel())
view.run_command("move_to", {"extend": False, "to": "eol"})
pos = view.sel()[0].begin()
last_chr = view.substr(pos-1)
if last_chr != ';':
view.run_command("insert", {"characters": ";"})
else:
view.run_command("left_delete")
view.sel().clear()
cursors = view.get_regions(region_name)
for cursor in cursors:
view.sel().add(sublime.Region(cursor.b, cursor.b))
view.erase_regions(region_name)
要添加键盘快捷键插入下一行到“首选项>键绑定 - 用户”:
{ "keys": ["ctrl+alt+enter"], "command": "semicolon_insert" }