V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
byp
V2EX  ›  Visual Studio Code

vs code 使用 vim 插件 快捷键问题

  •  
  •   byp · 2020-09-02 10:50:10 +08:00 · 6551 次点击
    这是一个创建于 1541 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问各位大佬一个问题, 我现在用的编辑器是 vs code, 安装的 vim 插件, 插件默认会挟持 ctrl 键, 使我的 vs code 的 ctrl 失效, 于是我释放了 ctrl 键, 但是释放之后 ctrl + { 退出编辑模式也失效了, esc 键又太远按不上, 请问有什么解决办法吗, 或者说可以像 idea 的 vim 插件一样单独设置吗?

    36 条回复    2021-08-05 17:32:40 +08:00
    nightwitch
        1
    nightwitch  
       2020-09-02 11:04:46 +08:00   ❤️ 1
    "vim.useCtrlKeys": true, //捕获所有的 ctrl 按键
    "vim.handleKeys": { // 放行 ctrl-c,ctrl-v
    "<C-c>": false,
    "<C-v>": false
    }
    whenov
        2
    whenov  
       2020-09-02 12:11:38 +08:00   ❤️ 2
    就是这种乱七八糟的问题让我已经退回纯 vim 了
    Yadomin
        3
    Yadomin  
       2020-09-02 12:31:07 +08:00 via Android   ❤️ 1
    就是这种乱七八糟的问题让我不用这个插件了
    binux
        4
    binux  
       2020-09-02 12:37:15 +08:00 via Android   ❤️ 1
    为什么我用 vim 模式从来没用到过 Ctrl 键?
    bluehtt
        5
    bluehtt  
       2020-09-02 12:42:00 +08:00   ❤️ 1
    @binux 那你怎么翻页啊?
    binux
        6
    binux  
       2020-09-02 13:31:46 +08:00 via Android
    @bluehtt search + j + k 啊
    byp
        7
    byp  
    OP
       2020-09-02 14:59:38 +08:00
    @binux #6 那你怎么退回命令模式啊
    byp
        8
    byp  
    OP
       2020-09-02 15:00:23 +08:00
    @nightwitch #1 感谢大佬, 我回去试试
    byp
        9
    byp  
    OP
       2020-09-02 15:00:55 +08:00
    @whenov #2 你是真的 6
    binux
        10
    binux  
       2020-09-02 15:03:31 +08:00 via Android
    @byp esc 啊
    byp
        11
    byp  
    OP
       2020-09-02 15:22:19 +08:00
    @binux #6 search 是哪个键
    byp
        12
    byp  
    OP
       2020-09-02 15:23:25 +08:00
    @binux #6 search 是哪个键
    @binux #10 esc 太远了, 我觉得 ctrl + { 还挺好
    binux
        13
    binux  
       2020-09-02 15:27:57 +08:00 via Android   ❤️ 1
    @byp search 就是 / 啊。我用 hhkb,ESC 就在 1 旁边。
    lbyo
        14
    lbyo  
       2020-09-02 17:45:22 +08:00   ❤️ 1
    ```json
    "vim.handleKeys": {
    "<C-c>": true
    },
    "vim.insertModeKeyBindings": [{
    "before": [
    "j",
    "j"
    ],
    "after": [
    "<Esc>"
    ]
    }],
    ```
    settings.json 中设置,demo 代码即代表双击 `j` => <ESC>
    lbyo
        15
    lbyo  
       2020-09-02 17:49:38 +08:00   ❤️ 1
    whincwu142
        16
    whincwu142  
       2020-09-02 17:58:30 +08:00 via Android   ❤️ 1
    一看就是没有好好阅读插件的文档,这些都有配置说明
    weixiangzhe
        17
    weixiangzhe  
       2020-09-02 18:34:33 +08:00 via Android   ❤️ 1
    还是全局改 caps 为 ctrl +esc 好用
    Kobayashi
        18
    Kobayashi  
       2020-09-02 18:56:38 +08:00 via Android   ❤️ 1
    我只记得这个插件编辑大文件卡顿,好与多选冲突。
    bluehtt
        19
    bluehtt  
       2020-09-02 21:32:45 +08:00   ❤️ 1
    @binux 除了牛逼我无话可说
    VDimos
        20
    VDimos  
       2020-09-02 21:42:41 +08:00 via Android   ❤️ 1
    双击 uu 会回退所有更改,这个憨批设定 issue 上不知道挂了多久了,竟然还是没改,也是服气
    a132811
        21
    a132811  
       2020-09-02 22:48:46 +08:00   ❤️ 1
    @VDimos 双击 uu 会回退所有更改.
    我已经忍受了两年多了,再忍下
    kidlj
        22
    kidlj  
       2020-09-02 23:03:10 +08:00 via iPhone   ❤️ 1
    Windows 的糟粕之一,把 ctrl 当 cmd 键。
    devtiange
        23
    devtiange  
       2020-09-02 23:30:37 +08:00   ❤️ 1
    解决方法就是不要用这个插件. 换 neovim-vscode
    LengthMin
        24
    LengthMin  
       2020-09-02 23:44:31 +08:00   ❤️ 1
    所以我直接用了 amVim 然后不用 Ctrl 键
    20015jjw
        25
    20015jjw  
       2020-09-03 03:56:22 +08:00   ❤️ 1
    cap lock 就是 control/esc 的路过
    不用 windows 就不会有这种问题
    用合适的键盘位置也不会有这个问题
    然而你俩都没..
    neoblackcap
        26
    neoblackcap  
       2020-09-03 04:29:46 +08:00   ❤️ 1
    @devtiange 同意,最流行的那个 bug 的确不少
    gdtdpt
        27
    gdtdpt  
       2020-09-03 09:28:33 +08:00   ❤️ 1
    我直接就回去用 neovim 了,coc.nvim 也支持部分 vscode 插件,感觉没必要用 vscode 的 vim 插件,本身 vim 的快捷键就多,加上 vscode 自己的快捷键,难免会有冲突,我平时又经常在服务器上搞来搞去的,vim 操作优先。
    byp
        28
    byp  
    OP
       2020-09-04 23:22:05 +08:00
    @lbyo #14 太强了, 大佬, 就用你这个了
    byp
        29
    byp  
    OP
       2020-09-04 23:22:47 +08:00
    @weixiangzhe #17 网上确实也有人这样做的
    byp
        30
    byp  
    OP
       2020-09-04 23:23:30 +08:00
    @devtiange #23 我装了没效果
    byp
        31
    byp  
    OP
       2020-09-04 23:24:00 +08:00
    @20015jjw #25 穷逼实锤了
    Kobayashi
        32
    Kobayashi  
       2020-09-05 05:29:37 +08:00 via Android   ❤️ 1
    @devtiange 这个只是用 neovim-vscode 做编辑,插件功能都没有。比如 vim-surround 。功能上反而比自己实现了部分插件功能的 VSCodeVim 差了。
    devtiange
        33
    devtiange  
       2020-09-05 05:41:28 +08:00   ❤️ 1
    @Kobayashi 插件功能有啊, 它是在后台调用真的 neovim 管理 buffer, 基本的 vim 插件都可以用. 你再查查?
    byp
        34
    byp  
    OP
       2020-09-05 18:58:49 +08:00
    @Kobayashi #32 确实我也没找到 neovim-vscode
    devtiange
        35
    devtiange  
       2020-09-06 12:31:55 +08:00
    @byp https://github.com/asvetliakov/vscode-neovim 这个. 调教需要一定时间, 但是不像 vscode-vim 那样有无线多的问题
    ach4li
        36
    ach4li  
       2021-08-05 17:32:40 +08:00
    ```json
    {
    "key": "ctrl+f",
    "command": "-vscode-neovim.ctrl-f",
    "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
    },
    {
    "key": "ctrl+d",
    "command": "-vscode-neovim.ctrl-d",
    "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
    },
    {
    "key": "ctrl+b",
    "command": "-vscode-neovim.ctrl-b",
    "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
    },
    ```

    提供另一种思路:
    1 )打开全局快捷键( Ctrl + Shift + P ),右键点击要改的键,复制
    2 )打开用户自定义热键 json 文件( Ctrl + Shift + P );命令的值添加负号(表示禁用)。保存即可。
    (这种配置 nvim 的方法也适用 vim )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:31 · PVG 21:31 · LAX 05:31 · JFK 08:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.