vim - 在Vim脚本中获取 "usable"窗口宽度

标签 vim

如何在vim脚本中获得3的宽度(在图像中标记为绿色)?

如果没有signs列,并且没有其他“特殊列”,我可以通过
winwidth(0) - (max([len(line('$')), &numberwidth-1]) + 1)

最佳答案

我认为,您应该可以使用以下方法获得该宽度:

:set virtualedit=all
:norm! g$
:echo virtcol('.')

或者,您可以检查是否存在符号列(例如,使用redir)
:redir =>a |exe "sil sign place buffer=".bufnr('')|redir end
:let signlist=split(a, '\n')
:let width=winwidth(0) - ((&number||&relativenumber) ? &numberwidth : 0) - &foldcolumn - (len(signlist) > 1 ? 2 : 0)

关于vim - 在Vim脚本中获取 "usable"窗口宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315925/

相关文章:

Vim 复制和粘贴

vim - 通过腻子在 Vim 中选择多页文本 block 时向上/向下滚动

vim - 如何在 Vim 中缩进光标上方的多行?

Vim 中用于 c 编程的代码完成插件

vim - 在 Vim 中阻止注释然后取消突出显示

vim - 为什么像 Vim 和 Emacs 这样的老编辑器会在界面中暴露 File 和 Buffer 之间的区别?

regex - 什么是正确的 VIM 正则表达式来搜索以获得 = 而不是 ==?

vim - Vim中行号的背景的方案名称是什么?

javascript - Vim 错误格式多行字符串

vim - 在vim中写入后如何在状态栏上显示时间?