vim 和 vscode 的 “ 智能 ” 相对行号
vim 的 “智能” 相对行号
为了能够通过 10j 或者 20k 来切换到后几行或者前几行,又不想计算行号,那就需要设置相对行号了。
可以通过
:set relativenumber
设置 vim 的显示为相对行号(如下图)

但是当前行显示为 0 了,我想要显示当前行的绝对行号,那就再设置一下绝对行号
:set number

因为移动光标的时候只能在 normal 模式,那我想要在进入 insert 模式之后显示绝对行号,就可以设置一下 “智能” 的相对行号。在 .vimrc 文件添加自动命令(参考了这里):
augroup numbertoggle
autocmd!
autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu && mode() != "i" | set rnu | endif
autocmd BufLeave,FocusLost,InsertEnter,WinLeave * if &nu | set nornu | endif
augroup END
这样,在进入 insert 模式之后就能显示绝对行号,而退出到 normal 模式就恢复上面说的相对行号的显示了。

vscode 的 “智能” 相对行号
在 vscode 里也安装了 vim 插件,在 settings.json 文件写了 vimrc 的设置:
"vim.vimrc.path": "/path/to/your/vimrcpath/.vimrc",
"vim.vimrc.enable": true,
给小白提个醒,上面的
/path/to/your/vimrcpath要替换成你的 vimrc 文件所在的目录
但是却不能跟 vim 一样应用到那个 “智能” 相对行号。
但是在设置页面有一个项 Smart Relative line:

勾选上之后,把上面的 Controls the display of line Numbers 设置为 relative 就能跟 vim 的效果一样啦。
可以搜索
linenumbers来快速找到这两个设置
浙公网安备 33010602011771号