我有一个Vim命令进入“无分心”模式:
command! DistractionFreeMode set guioptions-=r gfn=Cousine:h12 showtabline=0 fullscreen laststatus=0 noruler wrap linebreak nolist linespace=5 foldcolumn=3 nonumber columns=80
另请注意我使用的是MacVim。命令排序有效,但似乎没有触发某些设置。其中包括columns=80
和nolist
。我总是必须在执行此命令后单独设置它们才能使它们正确。我也尝试将这些设置放在我用命令调用的函数中并且遇到了同样的问题。这个问题的根源是什么?
编辑:这是我瞄准的外观的截图。据我所知,有必要一起使用fullscreen
和columns
来实现这一目标:
答案 0 :(得分:2)
根据全屏帮助(:h fullscreen
)可以选择定制进入全屏模式时所发生情况的行为fuoptions
在我的MacVim上,fuoptions设置为
fuoptions=maxvert,maxhotz
当我们查看:h fuoptions
maxvert When entering fullscreen, 'lines' is set to the maximum number
of lines fitting on the screen in fullscreen mode. When
leaving fullscreen, if 'lines' is still equal to the maximized
number of lines, it is restored to the value it had before
entering fullscreen.
maxhorz When entering fullscreen, 'columns' is set to the maximum number
of columns fitting on the screen in fullscreen mode. When
leaving fullscreen, if 'columns' is still equal to the maximized
number of columns, it is restored to the value it had before
entering fullscreen.
这意味着当您进入全屏模式时,MacVim会调整到最大行数和列数。 (忽略你设定的值)
要解决此问题,您可以添加set fuoption-=maxhorz
以删除违规选项,也可以添加set=maxvert
以强制它仅使用maxvert,无论是否设置了其他选项。这会阻止MacVim在水平方向上覆盖您的设置。
所以你的固定命令看起来像
command! DistractionFreeMode set guioptions-=r gfn=Cousine:h12 showtabline=0 fuoptions-=maxhorz fullscreen laststatus=0 noruler wrap linebreak nolist linespace=5 foldcolumn=3 nonumber columns=80