如何在 Vim 中设置 ‘nowrap’ 时启用水平滚动条弹出?

问题描述 投票:0回答:1

有人可以帮我找到以下不便的解决方案吗?我希望每当我设置

nowrap
选项时就会出现水平滚动条,反之亦然,当我将其设置回
wrap
时。

目前我单独使用这些设置来简化我的工作:

nnoremap <silent> <F3> :if &guioptions=~#'b'<Bar>set guioptions-=b<Bar>else<Bar>set guioptions+=b<Bar>endif<CR>
map <F2> :set nowrap! <CR> 

有没有办法同时切换它们,保持一致?

vim
1个回答
43
投票

让我们构造一个命令来相应地切换两个选项 立刻。首先,它应该切换

wrap
选项:

:set wrap!

然后,

guioptions
应根据是否包装而改变 在命令执行时启用。如果文本被换行,则 应显示底部滚动条,为
wrap
做好准备 残疾人:

:set guioptions+=b

或者,如果文本换行被关闭,它应该隐藏底部 滚动条:

:set guioptions-=b

为了使上述三个命令中的一个命令,我们可以使用 表达映射

:nnoremap <silent><expr> <f2> ':set wrap! go'..'-+'[&wrap].."=b\r"

变成按键序列

:set wrap! go+=b
输入

当设置

wrap
选项(且计算结果为 1)时,或进入

:set wrap! go-=b
输入

否则(当

&wrap
计算为零时)。

© www.soinside.com 2019 - 2024. All rights reserved.