【问题标题】:Changing vim's status line's "file modified" flag to be more noticeable将 vim 的状态行的“文件已修改”标志更改为更明显
【发布时间】:2012-09-18 14:53:48
【问题描述】:

我一直这样做:

编辑一个文件,返回终端并执行我正在编写的脚本……才意识到我还没有将它写入磁盘。

我怎样才能让 vim 在文件未写入时基本上对着我的眼睛大喊大叫?那个微小的 [+] 还不够好。理想情况下,我想要么增加显示的红色加号的数量,要么增加一些更激烈的东西。

例如,我正在使用电力线(纯粹是为了获得更明显的“文件已被修改”通知程序)。我认为如果在文件未保存时更改栏底部的主要颜色会非常棒。

有什么想法吗?

【问题讨论】:

    标签: vim statusline


    【解决方案1】:

    如果你愿意,你可以设置 vim 显示文件修改标志 5 次。

    set statusline+=%m
    

    这增加了一次。将“%m”的数量增加到您想要的任何数量。进一步的解释和技巧在这里:http://got-ravings.blogspot.co.at/2008/08/vim-pr0n-making-statuslines-that-own.html

    【讨论】:

    • 在那篇博文的深处,他们向您展示了如何在自定义区域上设置自定义突出显示。
    【解决方案2】:

    我为此写了StatusLineHighlight plugin。它将状态行的颜色更改为红色(可自定义)以用于修改后的缓冲区。

    不过,它不能与 Powerline 或其他花哨的状态线修改一起使用。

    【讨论】:

      【解决方案3】:

      这不是你所问问题的答案,但你为什么不这样做

      set autowrite
      

      解决你提到的问题(“回到终端并执行我正在编写的脚本......只是意识到我还没有将它写入磁盘”)消失:这个选项让 vim 保存你所做的更改当你挂起它时做了(注意:不是当你使用:shell 产生一个新的外壳时)。

      对于电力线,您唯一可以轻松做的事情就是编辑颜色方案以使突出显示更明显:将autoload/Powerline/Colorschemes/default.vim复制到~/.vim/autoload/Powerline/Colorschemes/my.vim,找到Pl#Hi#Segments(['fileinfo.flags'并在每一行中添加第二种颜色(背景颜色):transform @ 987654326@ 到['white', 'brightestred', ['bold']] 等等。然后添加

      let g:Powerline_colorscheme='my'
      

      到 vimrc 并运行 :PowerlineClearCache

      【讨论】:

      • 啊,但我喜欢一切都是明确的,所以自动写入已经结束。我尝试了你的建议——最全面和最准确的——但并没有太大的不同。很烦人,似乎没有一种直接的方法来修改该段 - 或者更确切地说,我似乎无法弄清楚 Powerline 是如何工作的。非常感谢您的回复。
      • @phillmv 这个段是在autoload/Powerline/Segments.vim中定义的,你可以在那里增加%M的数量。但是您需要使用 git 并让它关心您的更改,这不是您可以复制到 ~/.vim 并期望 Powerline 在下次更新后工作(除非您也复制默认主题)。它也可能与状态行项目的最大数量冲突(最多 80 个,但 powerline 使用了很多。AFAIR 我听说如果安装了所有必需的插件,默认主题确实使用了所有 80 个项目,不确定是否是真的:on我的系统只有 29 个)。
      • 使用修改后的颜色方案,在该段中添加一堆空格就可以了,所以我切换回电力线。这正是我想要的,谢谢!如果窗口尺寸减小,它会与我的其他部分混淆,但我并不总是需要知道文件类型和编码。电力线是各种vimscript voodoo;我什至不知道如何重新排序这些片段。
      猜你喜欢
      • 1970-01-01
      • 2016-03-08
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 2010-12-02
      • 2012-08-18
      相关资源
      最近更新 更多