Vim]在各IDE中使用

VSCode

使用插件VSCodeVim访问官网

我愿称之为最强插件


VSCodeVim

特有功能

  • gd - 跳到定义。
  • gq - 在视觉选择回流和wordwrap文本块,保留评论风格。非常适合格式化文档注释。
  • gb - 在找到的下一个单词上添加另一个光标,该光标与光标下的单词相同。
  • af - 可视模式命令,用于选择越来越大的文本块。例如,如果你有“blah(foo [bar'ba | z'])”那么它会首先选择'baz'。如果你af再次按下它,然后选择[bar'baz'],如果你第三次这样做,它会选择“(foo [bar'baz'])”。
  • gh - 相当于将鼠标悬停在光标所在的任何位置。方便查看类型和错误消息而无需鼠标!

vim 命令状态颜色配置

{
  "vim.statusBarColorControl": true,
  "vim.statusBarColors.normal": ["#8FBCBB", "#434C5E"],
  "vim.statusBarColors.insert": ["#BF616A", "#434C5E"],
  "vim.statusBarColors.visual": ["#B48EAD", "#434C5E"],
  "vim.statusBarColors.visualline": ["#d0af70", "#434C5E"],
  "vim.statusBarColors.visualblock": ["#A3BE8C", "#434C5E"],
  "vim.statusBarColors.replace": ["#D08770", "#434C5E"],
}

Visual Studio

配置相关文件

参考本文末尾相关内容

VS设置

单词联想时,使用上下键切换联想菜单选择比较麻烦,使用VSCode的方式(使用<C+p>,<C+n>来切换)切换就很高效。

1.切换键盘映射方案

选项>环境>键盘
切换键盘映射方案到 Visual Studio Code

2.vim中使用C-n,C-p来切换智能感知,做如下修改。

编辑.上移行(英文:Edit.LineUp) 添加Ctrl+P快捷键
编辑.下移行(英文:Edit.LineDown) 添加Ctrl+N快捷键

XCode

使用插件XVim2

安装教程参考本站另一篇文章:

[Xcode]使用Vim-XVim2

Xcode13与Vim

Rider

新IDE,使用IDEA的配置文件就好


配置Vim文件

一般情况下如果使用配置文件的Vim插件,配置文件标准是按Vim本身的配置文件规则来的,所以配置文件的内容基本是通用的,嫌麻烦的直接复制,修改文件就好。

Vim配置文件地址

VS的配置位置: C:\Users\用户名\_vsvimrc
IDEA的配置位置: C:\Users\用户名\.ideavsvimrc

配置文件参考

let mapleader=","

set easymotion
set surround 
set multiple-cursors
set keep-english-in-normal

set nu
set relativenumber
nmap <c-n> <Plug> NextWholeOccurrence 

"插入模式退出
inoremap jj <Esc>

"插入模式的移动
inoremap <C-h> <Left> "插入模式下使用Ctrl+h光标左移
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <C-d> <Delete>

"行首行尾映射
nnoremap H ^
nnoremap L $
vnoremap H ^
vnoremap L $

"复制粘贴
"inoremap <C-v> <leader>p
"复制当前所选
vnoremap <leader>y "+y 
"粘贴替换所选
vnoremap <leader>p "+p 
"复制当前单词
nnoremap <leader>y b"+yw 
"当前位置粘贴
nnoremap <leader>p "+p

"多光标 相当于执行Alt+Shift+.
nnoremap gb :vsc Edit.InsertNextMatchingCaret<CR>
vnoremap gb :vsc Edit.InsertNextMatchingCaret<CR>

VSCode中设置

{
  // 绑定vim前导键
  "vim.leader": ",",
  // 启用easymotion插件
  "vim.easymotion": true,
  // 突出显示与当前搜索匹配的所有文本
  "vim.hlsearch": true,
   // 插入模式下的非递归按键绑定
  "vim.insertModeKeyBindings": [
    { "before": [ "j","j" ], "after": [ "<Esc>" ] }, // "插入模式退出
    { "before": [ "C-h" ], "after": [ "<Left>" ] }, // "插入模式下使用Ctrl+h光标左移
    { "before": [ "C-j" ], "after": [ "<Down>" ] },
    { "before": [ "C-k" ], "after": [ "<Up>" ] },
    { "before": [ "C-l" ], "after": [ "<Right>" ] },
    { "before": [ "C-d" ], "after": [ "<Delete>" ] },

  ],
  // 命令模式下的非递归按键绑定
  "vim.commandLineModeKeyBindingsNonRecursive": [ ],

   // 普通模式下的非递归按键绑定
  "vim.normalModeKeyBindingsNonRecursive": [
    { "before": [ "L" ], "after": [ "$" ] },
    { "before": [ "H" ], "after": [ "^" ] },
    { "before": [ "<leader>","y" ], "after": [ "v","i","w","\"","+","y" ] },
    { "before": [ "<leader>","p" ], "after": [ "\"","+","p" ] },
    // { "before": [ "<S-d>" ], "after": [ "\"","+","d","$" ] } // vscode中不需要
  ],

  "vim.operatorPendingModeKeyBindings": [ ],

  // 可视模式下的非递归按键绑定
  "vim.visualModeKeyBindings": [
    { "before": [ "H" ], "after": [ "^" ] },
    { "before": [ "L" ], "after": [ "$" ] },
    { "before": [ "<leader>","y" ], "after": [ "\"","+","y" ] },
    { "before": [ "<leader>","p" ], "after": [ "\"","+","p" ] },
  ],

  "editor.lineNumbers": "relative",
}

评论