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
来快速找到这两个设置