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 操作。