使用vscode和vim插件缩进多行/块

gkl3eglg  于 2023-06-23  发布在  Vscode
关注(0)|答案(3)|浏览(292)

This已经在网站上,但它不适合我。我不能100%确定答案是否符合我的情况(这个问题问的是vim“mode”)。如果是的话,那么这个被接受的答案的背景对我来说并不明显。
我假设我们应该拼接JSON片段

{
  "key": "shift+tab",
  "command": "outdent",
  "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus"
}

但不清楚是如何或在哪里应用程序有settings.json,keybindings.json,插件有package.json。
大约一年前IIRC让它在vim中工作,但它需要一个插件和几个设置。
编辑以添加:ctrl+[和ctrl+]对我来说不起作用。大概他们会w/o vim插件,但插件覆盖ctrl命令。

68bkxrlz

68bkxrlz1#

就像在普通vim中一样,在普通模式下输入>><<,或者在视觉模式下输入><,将分别缩进和取消缩进行。
来源:https://vim.fandom.com/wiki/Shifting_blocks_visually
别名:https://stackoverflow.com/a/235841/7007605

kwvwclae

kwvwclae2#

如果您使用的是主Vim(VSCodeVim),则不支持标准m>m<:m,n>:m,n<(参见https://github.com/VSCodeVim/Vim/issues/3733)。
但是,Neo Vim VS Extension(asvetliakov.vscode-neovim)支持此功能。请注意,如果你走这条路,你需要单独安装neovim(>v0.5.0),你可以在https://github.com/neovim/neovim/releases/nightly获得。然后在Neo Vim VS扩展设置中设置neovim可执行文件/二进制文件的路径。

dgjrabp2

dgjrabp23#

我在正常模式下重新Map了<>,以便在使用VSCode命令时识别行:

"vim.normalModeKeyBindingsNonRecursive": [
    {
        "before": ["<"],
        "commands" : ["tab"]
    },
    {
        "before": [">"],
        "commands" : ["outdent"]
    }
 ]

相关问题