使用 VS Code,如何使用 Vim 键绑定向上或向下移动我所在的当前行(或当前选择)?正常使用编辑器时,我可以使用“alt + up/down”来实现这一点。
我正在使用 vscodevim 扩展。
使用 VS Code,如何使用 Vim 键绑定向上或向下移动我所在的当前行(或当前选择)?正常使用编辑器时,我可以使用“alt + up/down”来实现这一点。
我正在使用 vscodevim 扩展。
将以下内容添加到settings.json
. 它使用J
和K
在正常模式下向下/向上移动行。
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["J"],
"commands": ["editor.action.moveLinesDownAction"]
}, // moveLineDown
{
"before": ["K"],
"commands": ["editor.action.moveLinesUpAction"]
} // moveLineUp
],
我认为这就是你想要的
将此添加到您的 .vimrc
" Move lines up and down
nnoremap <C-Down> :m .+1<CR>==
nnoremap <C-Up> :m .-2<CR>==
inoremap <C-Down> <Esc>:m .+1<CR>==gi
inoremap <C-Up> <Esc>:m .-2<CR>==gi
vnoremap <C-Down> :m '>+1<CR>gv=gv
vnoremap <C-Up> :m '<-2<CR>gv=gv
我发现在keybindings.json
作品中添加了以下内容。它将键重新映射回本机 Visual Studio Code 移动行命令。在此示例中,我使用的是 Command-Alt-Up/Down,但理论上您可以按照您的要求将映射更改为 Alt-Up/Down。
{
"key": "cmd+alt+up",
"command": "editor.action.moveLinesUpAction",
"when": "editorTextFocus && !editorReadOnly"
},
{
"key": "cmd+alt+down",
"command": "editor.action.moveLinesDownAction",
"when": "editorTextFocus && !editorReadOnly"
},
我要补充一点,当在可视模式下选择了多行时,向上移动时似乎在其下方选择了,我不知道为什么。escape
或者只是移动光标会清除额外的选择。
在 vim 中没有直接映射,但你可以做的是:
dd
p
跳过您删除的行。这应该够了吧。
在 setting.json 中添加后对我有用
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["ctrl+j"],
"commands": ["editor.action.moveLinesDownAction"]
},
{
"before": ["ctrl+k"],
"commands": ["editor.action.moveLinesUpAction"]
}
]