1

在 vim 中,在命令模式下,我非常喜欢使用空格键在屏幕上居中显示当前行。nmap <space> zz将此功能映射到我的 gvimrc 文件中的空格键。我正在尝试将相同的功能绑定到 Sublime Text 2 中的空格键:

{ "keys": ["space"], "command": "show_at_center", "args": {"command_mode": true} }

上面的行不起作用。谁能告诉我为什么,会怎样?我启用了 Sublime 的复古模式。另外,我“scroll_past_end”: true在我的 Sublime Text 2 用户偏好设置中有这样的设置,即使文件的最后一行也可以居中。

4

1 回答 1

1

尝试将以下内容添加到Packages/User/Vintage/Default (<your OS>).sublime-keymap

{ "keys": ["space"], "command": "show_at_center",
    "context":
    [
        { "key": "setting.command_mode"}
    ]
}

我现在无法测试它,但它应该可以工作:)

编辑- 它没有。见下文...


更新

因此,我进行了广泛的搜索,似乎无论出于何种原因,您都无法单独分配一个动作space。将其分配给Altspace工作正常:

{ "keys": ["alt+space"], "command" : "center_on_cursor", 
    "context": [{"key": "setting.command_mode"}] }

将其分配给功能键(F7例如 ),甚至分配给单个字母也是如此,例如M. 然而,space它本身只会导致光标在命令模式下向前移动一个字符。好消息是,在命令模式下点击z, z(小写)将执行您最初想做的事情,即光标居中(CtrlL正如您所指出的那样)。不幸的是,无法单独将此操作重新映射到空格键上。命令模式下空间的编程动作,

set_motion {"clip_to_line": true, "motion": "vi_move_by_characters", "motion_args": {"extend": true, "forward": true, "visual": false}} 

只是似乎很难编程。对不起。

于 2013-08-05T22:54:08.813 回答