当我进入可视模式时,我正试图让Vim切换到相对行编号,然后回到绝对编号.我注意到有InsertEnter和InsertLeave autocmd事件,我可以像这样使用:
autocmd InsertEnter :set rnu autocmd InsertLeave :set nu
问题是,我似乎无法找到视觉模式的等效物.
解决方法
视觉模式没有此类事件(尚未实施;您可以提交补丁).要进入可视模式,您只需覆盖进入可视模式的少数命令:
:nnoremap <silent> v v:<C-u>set nonu rnu<CR>gv :nnoremap <silent> V V:<C-u>set nonu rnu<CR>gv :nnoremap <silent> <C-v> <C-v>:<C-u>set nonu rnu<CR>gv
“数字”的恢复更加困难,因为除了通过< Esc>明确退出之外,还有许多命令会停止视觉模式.我能想出的最好的是CursorMoved上的触发器:
vnoremap <Esc> <Esc>:set nu<CR> :autocmd CursorMoved * if mode() !~# "[vV\<C-v>]" | set nu | endif
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。