如何用好vscode vim模式?
发布于 4 天前 作者 chapgaga 461 次浏览 最后一次编辑是 22 分钟前 来自 问答

启用vim模式后,Ctrl+w不能用,只能用:q 一时间不适应 dd行后,通过u取消更改,恢复原状了,可是文件的dirty位竟然还在,这有点误导人啊

Ctrl+O无法使用,用什么替代方法呢?

槽点,优点,欢迎大家都来评论:)

按键冲突问题

a1. vscodevim u是undo,redo是什么按键。 Ctrl+r按键冲突,不能redo a2. ctrl+d 字符匹配,vim模式下无法使用

其他问题

b1. v 选中 yy复制内容,无法在其他编辑器,通过Ctrl+v粘贴

找到解法的朋友,可以针对每个问题id,说出你的解决办法

27 回复

emmmm我也是在VSCode里用Vim插件的,不过感觉Mac下没有这么多按键冲突,所以非常的愉快

vscode 配置

  "vim.useCtrlKeys": true,
  "vim.hlsearch": true,
  "vim.insertModeKeyBindings": [
    {
      "before": [
        "j",
        "j"
      ],
      "after": [
        "<Esc>"
      ]
    }
  ],
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": [
        "<leader>",
        "c",
        "c"
      ],
      "after": [
        "g",
        "c"
      ]
    },
    {
      "before": [
        "<C-n>"
      ],
      "after": [],
      "commands": [
        {
          "command": ":nohl"
        }
      ]
    },
    {
      "before": [
        "Z",
        "Z"
      ],
      "after": [],
      "commands": [
        {
          "command": "workbench.action.files.save",
          "args": []
        },
        {
          "command": "workbench.action.closeActiveEditor",
          "args": []
        }
      ]
    },
    {
      "before": [
        "Z",
        "Q"
      ],
      "after": [],
      "commands": [
        {
          "command": "workbench.action.files.revert",
          "args": []
        },
        {
          "command": "workbench.action.closeActiveEditor",
          "args": []
        }
      ]
    },
    {
      "before": [
        "leader",
        "w"
      ],
      "after": [],
      "commands": [
        {
          "command": "workbench.action.files.save",
          "args": []
        }
      ]
    }
  ],
  "vim.leader": ",",
  "vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": true,
    "<C-b>": true
  },

ZZ 保存退出, ZW 不保存退出 , <,>W 保存 , jj 退出编辑模式

@waitingsong 你是直接修改worksapce文件么?

@chapgaga 嗯,全局修改。也可以根据项目添加到 .vscode/settings.json 文件

@waitingsong vim设置,每个。vscode配一次,是不是太麻烦?

@chapgaga 所以我修改全局设置

@waitingsong 也是在windows上用vscode?

@waitingsong 用vim模式后,Ctrl+C,Ctrl+V,没法用,真难受啊:( 你怎么解决这个问题?

@chapgaga 是的,windows。 我映射了 ctrl+c ,粘贴用默认的 shift+insert。也挺好的

@waitingsong 按shift+insert,替代ctrl+v,用起来是不是太别扭了:(

Ctrl+c好像不映射,也可以直接用啊

也可以配置vim插件使用全局剪切板,这样 p 就可以直接粘贴内容。 不过我强依赖 TC, 其F4 功能打开文件时会用打开的文件路径覆盖剪切板导致vim中复制的内容也被覆盖了,故我关闭了vim全局剪切板功能。

shift+insert 是 linux 控制台 通用粘贴快捷键。如果你还开着 xshell 之类远程就知道 通用的好处了

@waitingsong Ctrl+C,p和Shift+insert,为何粘贴的内容不同? 你说的TC是什么插件?

Ctrl+c 我是映射在 normal 模式的: vww 然后 Ctrl+c

TC : total commander 。最强大的资源管理器。 用vim,emacs 的不用tc 实在可惜了

TC 只有 win 版本。所以除了 win 其它系统都用不顺手。

既然是在 VSC 里面使用 vim, 其实已经没什么需要配置的了.
毕竟 vim 有跨平台优势在, 保持操作的统一性至关重要, 否则还不如使用代码编辑器. 在使用 vscode vim 和 ideavim 的时候, 我会首选使用 vim shortcuts 来完成编辑器操作.

最重要的配置还是 yank 时使用系统剪贴板. 在首选项中勾选 Vim: Use System Clipboard 即可.

vscode用vim要下插件吗

@waitingsong 按键没有ctrl v方便和顺手啊

@waitingsong 多个workspace如何共享vim配置?每个workspace配置一遍太麻烦了

@waitingsong Ctrl+,就是你说的全局peizhii么?

@chapgaga 是的。 用户设置 打开 settings.json 按钮

@waitingsong 这个就是work space配置,不是全局的,换个work space,又要重新配置的:(

@chapgaga 我不知道你用的啥版本的vsc 2018-09-20_155930.png

@waitingsong 每个work space的配置是独立的,但是不同work space可以共享user setting里面的配置,你说的全局配置应该是user settings

@waitingsong vscodevim u是undo,redo是哪个? Ctrl+r没用:(

回到顶部