将命令show_at_center绑定到Sublime Text 2中的空格键

时间:2013-08-05 22:23:09

标签: sublimetext2 key-bindings

在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,因此即使文件的最后几行也可以居中。

1 个答案:

答案 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}} 

似乎很难编程。抱歉。