2014-01-26 31 views
0

我的問題是,我希望能夠使用視覺選擇而不用復古模式。下面是我的鍵綁定:崇高的文字2 - 添加視覺模式,無復古模式

[ 
    { "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模式中定義的命令,但我不知道如何將它包含到我的默認編輯器中。如果任何人都可以給一些指導設置它,將不勝感激!

回答

1

您將需要使用插件來支持您想要的行爲。我不知道一個被完全刷新,但我知道這是一個開始定義不同的鍵盤模式(如視覺)。看看https://github.com/KonTrax/MultiBind。未經測試,但添加以下內容到您的密鑰綁定文件應該工作。

// 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定義兩次,所以我不知道你想要哪種行爲。

+0

謝謝,我會在哪裏放multibind.py? – ChrisU

+0

對不起,我得到它的工作。我使用multibind.py創建了一個新的包(Package目錄中的一個新目錄),然後添加了鍵盤綁定:{「keys」:[「ctrl + j」],「command」:「move」,「args」 :{「by」:「lines」,「forward」:true,「extend」:true},「context」:[{「key」:「multibind.visual」}]}。這個工作完美無缺,但這種方法涉及很多代碼重複。 – ChrisU

+0

您可以將GitHub repo克隆到您的Packages目錄中。當你說重複的代碼時,我不確定你指的是什麼。你正在根據某些條件定義獨特的行爲,所以實際上沒有任何重複。 – skuroda