`
searun
  • 浏览: 174161 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

[Hacking VIM]之定制:自定义状态栏

    博客分类:
  • VIM
阅读更多

在Vim编辑器的底部,你可以发现两个东西:一个是命令行缓冲(可以输入命令),另外一个是状态栏。在默认情况下,Vim显示的信息是很简短的,只是在右边显示当前光标所在的行和列以及当前打开的文件(如果有的话)。

当你执行一个命令的时候,状态栏将会被命令行替代,如果命令执行后输出了信息,则也会显示在状态栏的右边。

如果只是为了简单和快速的编辑,则这个状态栏也已经足够了,但是如果你每天使用Vim来编辑许多不同类型的文件,则最好使用一个信息丰富的状态栏。在这个技巧中,我们将看到状态栏如何显示丰富的文件信息。

设置状态栏如何显示可以简单的调用命令:

: set  statusline format


这里的format是一个类似printf的字符串(从c语言中借鉴过来),用来描述状态栏如何显示。

如果你使用 :help 'statusline' 来查看Vim帮助,你可以看到状态栏包含大量的信息,可能有些在你日常工作中还有用。

我的状态栏中总是包含下面的信息:

  • 正在编辑的文件名
  • 正在编辑的文件格式(DOS, Unix)
  • 当前文件的类型
  • 当前光标下字符的ASCII和16进制值
  • 当前光标所在的行和列
  • 文件的长度(包括行数)

下面的命令可以使得状态栏显示上面所有的信息

:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]


我在其中加了'[]'用来分割各个类型的信息,这仅仅是为了显示加入的,如果需要的话可以去掉。


 
尽管如此,我们可以看到在默认情况下状态栏还是会显示旧的状态栏,这是因为Vim默认根本就不显示状态栏,而仅仅显示命令缓冲区的一些信息。为了告诉Vim你真的需要一个状态栏,可以将下面的语句加入到vimrc中,这个命令将保证状态栏显示在编辑器窗口的倒数第二行。

: set  laststatus = 2


可以看到现在命令缓冲区总是在编辑器窗口的最下边,而状态栏则也总是显示在下面。当然,状态栏确实会占据一些编辑空间,但是你随时可以决定是否需要显示状态栏。你可以在Vim中执行下面的命令来隐藏状态栏:

: set  laststatus = 0
  • 大小: 4.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics