添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

❗️没有特别说明本文中的代码都是放在 .vimrc 中的.

很有帮助的命令

在vim使用过程中自行查阅帮助文件以及阅读调试信息是很重要的, 利用 :h [keyword] 可以按关键词查看帮助文档.

:checkhealth 查看模块, 插件状态.

:file [file name] 在vim中创建文件.

:edit 可以在外部改动了文件时刷新当前文件.

Ctrl f 下翻一页
Ctrl b 上翻一页
Ctrl d 下翻半页
Ctrl u 上翻半页

原本展开代码和折叠代码是绑定在了 zo (z open) 和 zc (z close), 不过我重新映射到了空格键, normal模式下按一次展开, 再按一次折叠, 感觉更方便一些.

1
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

另外 zn 为全部展开, zN 为全部折叠.

1
2
set spell
set spellfile=~/.vim/spell/en.utf-8.add

]s 跳往下一错误拼写, [s 往前跳.

zg 将当前光标所在单词记录到字典 (指出当前word 是 good word), zw 将当前单词从字典删除 (指出当前word为wrong word)

vim允许同时使用多个字典, 通过输入 :set spellfile+=path/to/dic/en.utf-8.add 来添加, 但要注意这个文件后缀名一定是 .[encoding].add

这之后你可以输入 set spellfile? 来查看当前在使用哪些字典, 要将单词添加到第一个字典就按 1zg , 添加到第二个就按 2zg . 很好的一点是spellfile这个变量只在当前缓冲区有效, 即每个文件可以使用不同的spellfile值. 这给保存单词到当前工作区带来了可能. 因此我设置了一个快捷键:

1
nnoremap <leader><C-z> :exe "setlocal spellfile+=" . <C-r>=shellescape(fnamemodify("en.utf-8.add", ":p"), 1)<CR><CR>

这样每次按 Ctrl , z 就会添加一个当前文件所在文件夹的字典到spellfile

在vim中, 多文件编辑主要涉及三个概念: 窗口 , 标签页 , 缓冲区

相关参考:

🔗 Vim 多文件编辑:窗口
🔗 Vim 多文件编辑:标签页
🔗 Vim 多文件编辑:缓冲区

💡 Ctrl w 开头的都是与窗口有关的快捷键, w指window

在窗口间移动

Ctrl w 接 hjkl上下左右在各窗口间移动光标
Ctrl w t 移动光标至最左上窗口
Ctrl w b 移动光标至最右下窗口

宽度调整:

Ctrl w [n] > 右移边界
Ctrl w [n] < 左移边界

💡默认增减1个字符宽度, 可以在Ctrl w和+/-间加数字来指定增减宽度. 不是最右边的窗口调整的是右边界, 最右边的窗口调整的是左边界.

高度调整:

Ctrl w [n] + 增加高度
Ctrl w [n] - 减小高度

通过设置以下几个键映射我可以十分方便地调整窗口大小

1
2
3
4
nnoremap <F2> <C-w>+
nnoremap <F3> <C-w>-
nnoremap <F4> <C-w><
nnoremap <F5> <C-w>>

Ctrl w 接HJKL移动窗口至最上下左右并且宽度或高度为最大. Ctrl w r 顺时针移动窗口
Ctrl w R 逆时针移动窗口

vim是能够进行高度个性化的编辑器, 因此每个人肯定都会添加一些自己顺手的快捷键, 因为我是从VSCode转来vim的, 因此我的快捷键设置一定程度上参考了VSC的快捷键设置. 用以在 .vimrc 中设定快捷键的命令有好几个, 我的vimrc里比较常用的是 nnoremap map . 以下是我常用的命令及其含义.

vim-plug

我用 vim-plug 来管理我的vim插件, 使用很简单, 写法可以参照我的vimrc. 每次要下载插件时在vim中输入 :PlugInstall 即可. 超好用😆

NERDtree

NERDtree是一个不错的文件资源管理器, 体验和VSC的explorer差不多. 觉得每次输 :NERDTreeToggle 太麻烦的话可以键绑定一下:

1
nnoremap <leader><C-e> :NERDTreeToggle<CR>

我绑定到了 Ctrl , e , 和本来想绑的VSC里的 Ctrl shift e 不同. 因为在终端中 Ctrl shift 字母 Ctrl 字母 的输出没有区别.

以下是几个我比较常用的NREDtree命令

切换NERDtree根目录到光标所在文件夹 刷新根目录 刷新光标所在目录 水平分屏打开 竖直分屏打开