设置vim折行显示的方法,很多人都知道

set wrap 折行
set nowrap 不折行

但是如果仅仅是折行,不改变jk键的移动方式,则会显得很奇怪。因为直接使用jk移动,移动的单位是文件中的行而不是折行后视觉显示的行。为此我们需要使用gjgk在折行后的移动。

为了方便,我们可以自定义函数和命令,方便折行后自动映射jkgjgk,取消折行后为了规避影响其他脚本,取消映射。在.vimrc中写入下列配置,可以在执行WrapToggle命令后切换折行模式。

command WrapToggle call WrapToggle()
func WrapToggle()
    if !exists('g:is_wrapped')
        let g:is_wrapped=0
    endif
    if g:is_wrapped==0
        nmap j gj
        nmap k gk
        set wrap
        let g:is_wrapped=1
    else
        "使用unmap系列命令,后面不要有空格
        nunmap j
        nunmap k
        set nowrap
        let g:is_wrapped=0
    endif
endfunc

rwxe
91 声望5 粉丝

no tengo trabajo.


引用和评论

0 条评论