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

使用老牌插件 nerdtree 实现文件系统的管理。
m 唤起操作菜单,实现对文件系统的增删改查。r 来刷新菜单。<C-e> 来 toggle 菜单。,e 打开菜单同时定位到当前文件所在位置。你可以使用 ss 以及 sv 进行 vim 的分屏,使用 <prefix-%> 以及 <prefix-"> 进行 tmux 的分屏。
<C-hjkl>。<prefix-hjkl> 或者 <prefix-Tab>。<Shift-h> 或者 <Shift-l>。<prefix-p>, <prefix-number> 等。% 可以用在匹配的括号和 html 标签等之间移动。<C-w-T> 可以将 vim split 移到新的 tab。<prefix-z> 可以 toggle 一个 tmux splits 的全屏。使用了 Telescope 插件替换了 FZF 插件来搜索文件。Telescope 的搜索默认和 Vim 的 ignorecase 加上 smartcase 选项一样。
;f 进行文件的搜索。<C-p> 和 <C-n> 上下移动文件,对于选中的文件可以使用 <C-u> 和 <C-d> 来滚动查看内容,使用 <C-t> 来在新的 tab 打开。;r 进行文件内容的搜索。<prefix-[> 进入查看模式,使用 <Space> 开始选择,之后使用 <CR> 完成选择并退出查看模式,然后就可以直接粘贴了。在查看模式里可以使用 / 进行搜索。<leader-rn> 来重命名变量名(symbol)。:%s/old/new/gc 来进行无语义的替换,flag c 是用来替换的时候确认每次替换的行为。s/old/new 来进行范围性替换。<C-v> 进入 visual block mode 用来解决纵向的替换(类似多光标模式,删除表格的列会很方便)。;r 进行关键词搜索,使用 <C-q> 将所有的匹配发送到 Vim 的 quickfix list 中,使用 :cdo 命令进行 per entry 的替换,或者使用 :cfdo 进行 per file 的替换,替换完成使用 :cdo update 或者 :cfdo update 进行 buffer 的写入。 :cdo 后面跟着的命令可以是简单的 s/old/new/ 或者使用 macro(宏)的复杂命令(例如使用 norm @a)。 使用 nerdcommenter 插件。
<leader>cu 可以进行取消注解。<leader>cm 命令进行注解,插件会使用配置的 leftAlt 和 rightAlt 指定的格式。 <leader>ci 进行 toggle 注解,插件会使用配置的 left 和 right 指定的格式。使用 fugitive 这个插件,取名也很有意思,就是说这个插件太牛逼了而应该被禁止,所以取名为逃亡者(fugitive)。
我们可以使用 :G 命令查看 git 的状态,相当于 git status,一般我会使用 te 新建一个 vim buffer,然后使用 :G,commit 完成之后使用 tq 关闭当前的 buffer。
:G后,对列表项使用 a 进行 stage,u 进行 unstage,X 进行 resotre。dv 命令就可以以分屏的方式查看 :G 里的列表项的 diff 变更。gb 来查看 git blame,使用 gq 来关闭 git blame。:0Gllog 或者 :0Gclog 来查看当前 buffer 的历史版本,你可以配合 dv 来和上一个 commit 进行 diff。dv 后使用 <C-w-_> 全屏,然后使用 <leader-fx> 来找到 git 冲突的标记,然后解决一个冲突后,使用 n 继续搜索下一个冲突标记。都解决完了使用 ;t 调出底部的命令行进行 git commit。<prefix-c> 命令创建一个 tmux tab 运行后台服务,比如 webpack 服务器。gr 命令跳转到引入该组件的地方,使用 gd 来查看组件定义,查看完想要跳转回原来的地方可以使用 <C-i>。<C-h> 删除光标前面的字母,使用 <C-d> 删除光标后面的字母。 zc 关闭折叠,zo 打开折叠和当前光标所在位置行有相同缩进的行( 使用 zR 和 zM 关闭或打开所有折叠)。< 或者 > 然后可以配合 . repeat 键。K 或者 :h 来查看定义。比如,查看 <M 或者 :h copilot 的定义。<prefix-s> 来查看 session 列表。<C-d> 来调出备选命令,以及使用 <Tab> 来进行补全,当然 iterm2 也可以使用 <C-d> 和 <Tab>。<C-[> 来替代 vim 的 ESC 键。<C-\><C-n> 可以切换到 vim 集成的 terminal 的 normal mode,使用 i 进入 terminal 的 insert mode。写在最后,对 Vim 感兴趣的朋友一定不要错过 《Practical vim》这本书,里面讲了很多实用的 Vim 操作。