我试图在vim中实现绝对和可变行编号之间的切换,我想做一个单行而不是编写if函数.
我目前的代码是:
nnoremap <F4> :( &rnu == 1 ? "set nu" : "set rnu" )<CR>
Run Code Online (Sandbox Code Playgroud)
这不起作用; 谁知道我怎么能让它运作?
这就是我要做到这一点的方法:
:nnoremap <f4> :setl <c-r>=&nu ? "rnu" : "nu"<cr><cr>
Run Code Online (Sandbox Code Playgroud)
对于未来的Google员工来说,较长的版本可能会更加清晰:
:nnoremap <f4> :setlocal <c-r>=&number ? "relativenumber" : "number"<cr><cr>
Run Code Online (Sandbox Code Playgroud)
将<C-r>=告诉Vim使用表达式寄存器评估该行,VIM命令的其余部分.尾部双精度<cr>是必需的,因为第一个用于计算表达式,第二个用于执行:setlocal命令.
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |