NeoVim 插件篇

2022.04.26

主题

iterm2 和 Vim 都是使用的是 spring-night 的主题,字体使用的是 Monolisa 可以在官网获取试用字体,这里还用了 Neovim 7.0 版本的 global status line 特性。

文件系统

使用老牌插件 nerdtree 实现文件系统的管理。

  1. 使用 m 唤起操作菜单,实现对文件系统的增删改查。
  2. 使用 r 来刷新菜单。
  3. 使用 <C-e> 来 toggle 菜单。
  4. 使用 ,e 打开菜单同时定位到当前文件所在位置。

移动

你可以使用 ss 以及 sv 进行 vim 的分屏,使用 <prefix-%> 以及 <prefix-"> 进行 tmux 的分屏。

  1. Vim splits 之间的移动可以使用 <C-hjkl>
  2. Tmux splits 之间的移动可以使用 <prefix-hjkl> 或者 <prefix-Tab>
  3. Vim Tabs 之间的移动可以使用 <Shift-h> 或者 <Shift-l>
  4. Tmux Tabs 之间的移动可以使用 <prefix-p>, <prefix-number> 等。
  5. % 可以用在匹配的括号和 html 标签等之间移动。
  6. <C-w-T> 可以将 vim split 移到新的 tab。
  7. 使用 <prefix-z> 可以 toggle 一个 tmux splits 的全屏。

文件/文本 搜索/替换

使用了 Telescope 插件替换了 FZF 插件来搜索文件。Telescope 的搜索默认和 Vim 的 ignorecase 加上 smartcase 选项一样。

  1. 使用 ;f 进行文件的搜索。<C-p><C-n> 上下移动文件,对于选中的文件可以使用 <C-u><C-d> 来滚动查看内容,使用 <C-t> 来在新的 tab 打开。
  2. 使用 ;r 进行文件内容的搜索。
  3. Tmux 可以使用 <prefix-[> 进入查看模式,使用 <Space> 开始选择,之后使用 <CR> 完成选择并退出查看模式,然后就可以直接粘贴了。在查看模式里可以使用 / 进行搜索。
  4. 全替

注解

使用 nerdcommenter 插件。

  1. <leader>cu 可以进行取消注解。
  2. JSX 的可以使用 <leader>cm 命令进行注解,插件会使用配置的 leftAltrightAlt 指定的格式。
  3. 正常的注解使用 <leader>ci 进行 toggle 注解,插件会使用配置的 leftright 指定的格式。

Git

使用 fugitive 这个插件,取名也很有意思,就是说这个插件太牛逼了而应该被禁止,所以取名为逃亡者(fugitive)。

我们可以使用 :G 命令查看 git 的状态,相当于 git status,一般我会使用 te 新建一个 vim buffer,然后使用 :G,commit 完成之后使用 tq 关闭当前的 buffer。

  1. 使用 :G后,对列表项使用 a 进行 stage,u 进行 unstage,X 进行 resotre。
  2. 使用直接敲击 dv 命令就可以以分屏的方式查看 :G 里的列表项的 diff 变更。
  3. 使用 gb 来查看 git blame,使用 gq 来关闭 git blame。
  4. 使用:0Gllog 或者 :0Gclog 来查看当前 buffer 的历史版本,你可以配合 dv 来和上一个 commit 进行 diff。
  5. Git 冲突。使用 dv 后使用 <C-w-_> 全屏,然后使用 <leader-fx> 来找到 git 冲突的标记,然后解决一个冲突后,使用 n 继续搜索下一个冲突标记。都解决完了使用 ;t 调出底部的命令行进行 git commit。

其他

  1. 使用 <prefix-c> 命令创建一个 tmux tab 运行后台服务,比如 webpack 服务器。
  2. 使用 COC 的 gr 命令跳转到引入该组件的地方,使用 gd 来查看组件定义,查看完想要跳转回原来的地方可以使用 <C-i>
  3. 使用 <C-h> 删除光标前面的字母,使用 <C-d> 删除光标后面的字母。
  4. zc 关闭折叠,zo 打开折叠和当前光标所在位置行有相同缩进的行( 使用 zRzM 关闭或打开所有折叠)。
  5. 进入 Vim visual mode 然后,使用 < 或者 > 然后可以配合 . repeat 键。
  6. 使用 K 或者 :h 来查看定义。比如,查看 <M 或者 :h copilot 的定义。
  7. 使用 tmux 来管理多个项目,使用 <prefix-s> 来查看 session 列表。
  8. Vim command line mode 下可使用 <C-d> 来调出备选命令,以及使用 <Tab> 来进行补全,当然 iterm2 也可以使用 <C-d><Tab>
  9. 可以使用 <C-[> 来替代 vim 的 ESC 键。
  10. 使用 <C-\><C-n> 可以切换到 vim 集成的 terminal 的 normal mode,使用 i 进入 terminal 的 insert mode。
  11. 浏览器也有 Vim 插件。

写在最后,对 Vim 感兴趣的朋友一定不要错过 《Practical vim》这本书,里面讲了很多实用的 Vim 操作。

TODO

  1. Debugger
  2. SSH

参考

  1. how-to/option-key-mac-3462401/