Sublimetext2 升华文本2-添加不带复古模式的视觉模式

Sublimetext2 升华文本2-添加不带复古模式的视觉模式,sublimetext2,Sublimetext2,我的问题是,我希望能够使用视觉选择,而不是在复古模式。以下是我的密钥绑定: [ { "keys": ["ctrl+k"], "command": "move", "args": {"by": "lines", "forward": false} } , { "keys": ["ctrl+j"], "command": "move", "args": {"by": "lines", "forward": true} } , {"keys":["ctrl+h"], "comm

我的问题是,我希望能够使用视觉选择,而不是在复古模式。以下是我的密钥绑定:

[
    { "keys": ["ctrl+k"], "command": "move", "args": {"by": "lines", "forward": false} }
    , { "keys": ["ctrl+j"], "command": "move", "args": {"by": "lines", "forward": true} }
    , {"keys":["ctrl+h"], "command": "move", "args": {"by": "characters", "forward": false}}
    , {"keys":["ctrl+l"], "command": "move", "args": {"by": "characters", "forward": true}}
    , {"keys":["ctrl+e"], "command": "move", "args": {"by": "characters", "forward": true}}
    ,{ "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "eol", "extend": false} }
    ,{ "keys": ["ctrl+a"], "command": "move_to", "args": {"to": "bol", "extend": false} }
    , {"keys": ["ctrl+y"], "command": "copy"}
    , {"keys": ["alt+y"], "command": "paste"}
    , { "keys": ["ctrl+v"], "command": "enter_visual_mode"}
]

正如你们所看到的,除了ctrl修改器之外,我还有类似vi的命令。我想这样。我希望ctrl+v进入视觉模式。我在Vintage模式默认键绑定文件中看到,命令的定义与我定义的一样。显然,“enter_visual_mode”是在Vintage模式下在其他地方定义的命令,但我不知道如何将其包含到我的默认编辑器中。如果有人能给一些指导,这将是感激

您需要使用插件来支持所需的行为。我不知道有哪一个是完全刷新的,但我知道这是定义不同键盘模式(如视觉)的开始。看一看。未经测试,但将以下内容添加到密钥绑定文件应该可以工作

// Toggle "visual" layout
{ "keys": ["ctrl+v"],
    "command": "multibind_toggle",
    "args"   : { "layout": "visual" }
},

// Show current layout in statusbar
{ "keys": ["ctrl+shift+\\"],
    "command": "multibind_show",
    "args"   : {  }
},

{ "keys": ["ctrl+k"], "command": "move", "args": {"by": "lines", "forward": false, "extend": true}, "context": [{   "key": "multibind.visual" }]},
{ "keys": ["ctrl+j"], "command": "move", "args": {"by": "lines", "forward": true, "extend": true}, "context": [{   "key": "multibind.visual" }] },
{"keys":["ctrl+h"], "command": "move", "args": {"by": "characters", "forward": false, "extend": true}, "context": [{   "key": "multibind.visual" }]},
{"keys":["ctrl+l"], "command": "move", "args": {"by": "characters", "forward": true, "extend": true}, "context": [{   "key": "multibind.visual" }]},
{"keys":["ctrl+e"], "command": "move", "args": {"by": "characters", "forward": true, "extend": true}, "context": [{   "key": "multibind.visual" }]},
{ "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "eol", "extend": true}, "context": [{   "key": "multibind.visual" }]},
{ "keys": ["ctrl+a"], "command": "move_to", "args": {"to": "bol", "extend": true}, "context": [{   "key": "multibind.visual" }] }

您已经定义了两次
ctrl+e
,因此我不确定您想要哪种行为。

谢谢,我应该将multibind.py放在哪里?对不起,我让它工作了。我制作了一个包含multibind.py的新包(包目录中的一个新目录),然后添加了keybinding:{“keys”:[“ctrl+j”],“command”:“move”,“args”:{“by”:“lines”,“forward”:true,“extend”:true},“context”:[{“key”:“multibind.visual”}]。这个方法工作得很好,但遗憾的是,这个方法涉及大量代码重复。您可以将GitHub repo克隆到您的Packages目录中。当你说重复代码时,我不太确定你指的是什么。您正在基于某些条件定义独特的行为,因此实际上没有任何重复。