Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:仅当行长于窗口宽度时显示水平滚动条_Vim - Fatal编程技术网

Vim:仅当行长于窗口宽度时显示水平滚动条

Vim:仅当行长于窗口宽度时显示水平滚动条,vim,Vim,使用set GUI OPTIONS+=b可以强制显示水平滚动条,该滚动条可用于快速滚动长行。但总是在窗口底部显示水平滚动条,即使不需要,也是浪费屏幕空间 因此,我想知道当一行长度超过窗口宽度时,Vim是否可以动态显示滚动条?您可以尝试使用autocmd。我能想到的只有CursorMoved和CursorMovedI:您可以检查当前行或文件中每行的长度,并相应地设置guioptions+=b 要检查文件中一行的长度/最长行/所有行,可以查看超级用户问题。一些建议是使用vim正则表达式或通过wcun

使用set GUI OPTIONS+=b可以强制显示水平滚动条,该滚动条可用于快速滚动长行。但总是在窗口底部显示水平滚动条,即使不需要,也是浪费屏幕空间

因此,我想知道当一行长度超过窗口宽度时,Vim是否可以动态显示滚动条?

您可以尝试使用autocmd。我能想到的只有CursorMoved和CursorMovedI:您可以检查当前行或文件中每行的长度,并相应地设置guioptions+=b

要检查文件中一行的长度/最长行/所有行,可以查看超级用户问题。一些建议是使用vim正则表达式或通过wcunix工具过滤缓冲区的内容

为了检查当前行的长度,vim正则表达式应该很好,并且应该足够快,以避免任何类型的延迟。 对于获取文件中最长行的长度,我认为wc应该是最快的选择,我不是100%确定


请注意,CursorMoved和CursorMovedI的触发频率非常高,因此您必须仔细观察在autocmd中执行的任何操作。

您是否想知道是否有内置选项,或者是否可以编写脚本?@romainl,只要它可以解决我的问题。您真的需要这个吗?滚动条意味着使用鼠标,这在Vim中是不受欢迎的;有几个命令可以水平移动光标/视图。