在vim中,在命令模式下,我非常喜欢使用空格键将当前行居中显示在屏幕上。 nmap <space> zz
将此功能映射到我的gvimrc文件中的空格键。我正在尝试将相同的功能绑定到Sublime Text 2中的空格键:
{ "keys": ["space"], "command": "show_at_center", "args": {"command_mode": true} }
上面的行不起作用。任何人都可以告诉我为什么,会是什么?我启用了Sublime的Vintage模式。此外,我的Sublime Text 2用户首选项设置中有“scroll_past_end”: true
,因此即使文件的最后几行也可以居中。
答案 0 :(得分:1)
尝试将以下内容添加到Packages/User/Vintage/Default (<your OS>).sublime-keymap
:
{ "keys": ["space"], "command": "show_at_center",
"context":
[
{ "key": "setting.command_mode"}
]
}
我现在无法测试它,但它应该工作:)
编辑 - 它没有。见下文......
所以我进行了广泛的搜索,似乎无论出于何种原因,你都无法自行为 space 分配一个动作。将其分配给 Alt space 的工作正常:
{ "keys": ["alt+space"], "command" : "center_on_cursor",
"context": [{"key": "setting.command_mode"}] }
将其分配给功能键(例如 F7 ),甚至分配给单个字母,如 M 。但是,space
本身只会导致光标在命令模式下向前移动一个字符。好消息是在命令模式下按 z , z (小写)将执行您最初想要做的事情,这是光标的中心(就像一样) Ctrl L ,如您所示)。不幸的是,不可以将此操作重新映射到空格键上。命令模式下空间的编程动作,
set_motion {"clip_to_line": true, "motion": "vi_move_by_characters", "motion_args": {"extend": true, "forward": true, "visual": false}}
似乎很难编程。抱歉。