November 2009 Archives

FreeNAS

|

 

2009-11-10_10-58-24.jpg

 FreeNAS 是一个基于 FreeBSD NAS系统

下载Live CD 版,光盘启动后,选择安装至记忆体,我是安装在128M CF卡上的.我总共八个硬盘,500G x 4 做的 RAID 5, 320G x 4 做的 RAID 0.一个用来给用户放一些重要的文件,一个用来做共享资料.刚开始运作

默认的状态行,左侧显示当前打开的文件名,右侧显示当前所处的行列位置。当你执行Vim命令时,状态行将消失并显示命令输入及输出。

通常状态行用反色显示。你可以通过修改highlight选项中的s字符来改变。例如,sb设置为粗体字。如果状态行没有启用高亮 (sn),那么字符^表示当前窗口,字符=表示其它窗口。如果支持鼠标并且已经通过设置mouse选项使之启动,那么你可以用鼠标拖动状态行以改变窗口的大小。

定制状态行

我们可以使用以下命令来定义状态行:

:set statusline format

例如下面的命令:

:set statusline=The file is"%f"

其中,%用来指明一个特殊区域。例如%f,将在状行中包含文件名。

选项包含printf风格的%项目,中间可以间杂普通文本。内容默认为右对齐,如果希望左对齐,那么可以在%后面加上-。数字内容是忽略开头0显示的,如果需要显示前导0,那么可以在%后加上一个"0"。单个百分号可以用"%%"给出。最多可给出80个项目。

如果此选项以 "%!" 开始,它用作表达式。计算此表达式的结果用作选项值。

参数列表
%(...%)定义一个项目组。
%{n}*%对其余的行使用高亮显示组Usern,直到另一个%n*。数字n必须从1到9。用%*或%0*可以恢复正常的高亮显示。
%<如果状态行过长,在何处换行。缺省是在开头。
%=左对齐和右对齐项目之间的分割点。
%字符%
%B光标下字符的十六进制形式
%F缓冲区的文件完整路径
%H如果为帮助缓冲区则显示为HLP
%L缓冲区中的行数
%M如果缓冲区修改过则显示为+
%N打印机页号
%O以十六进制方式显示文件中的字符偏移
%P文件中光标前的%
%R如果缓冲区只读则为RO
%V列数。如果与%c相同则为空字符串
%W如果窗口为预览窗口则为PRV
%Y缓冲区的文件类型,如vim
%a如果编辑多行文本,这个字行串就是({current} of {arguments}),例如:(5 of 18)。如果在命令行中只有一行,这个字符串为空
%b光标下的字符的十进制表示形式
%c列号
%f缓冲区的文件路径
%h如果为帮助缓冲区显示为[Help]
%l行号
%m如果缓冲区已修改则表示为[+]
%n缓冲区号
%o在光标前的字符数(包括光标下的字符)
%p文件中所在行的百分比
%r如果缓冲区为只读则表示为[RO]
%t文件名(无路径)
%v虚列号
%w如果为预览窗口则显示为[Preview]
%y缓冲区的文件类型,如[vim]
%{expr}表达式的结果

显示状态行

即使已经使用以上命令设置选项,状态行还是保持原样,这是因为Vim在默认情况下是不显示状态行的,而仅显示命令缓冲区等极少的信息。我们可以使用以下命令,将状态行显示在窗口底部倒数第二行:

:set laststatus=2

你也可以使用以下命令,移去状态行:

:set laststatus=0

状态行实例

利用以下命令,可以在状态行中显示:当前文件名,文件格式(DOS, Unix),文件类型 (XHTML),当前位置和文件总行数。

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

实际效果如下图所示:

statusline_1

除了显示的内容,你还可以使用以下命令定义显示的颜色。

:set statusline=%2*%n%m%r%h%w%*\ %F\ %1*[FORMAT=%2*%{&ff}:%{&fenc!=''?&fenc:&enc}%1*]\ [TYPE=%2*%Y%1*]\ [COL=%2*%03v%1*]\ [ROW=%2*%03l%1*/%3*%L(%p%%)%1*]\

需要使用以下命令,自定义高亮显示颜色。

hi User1 guifg=gray

hi User2 guifg=red

hi User3 guifg=white

实际效果如下图所示:

statusline_Color

你还可以通过在_vimrc文件中包括以下命令,使状态行根据状态的不同,显示不同的颜色。

function! InsertStatuslineColor(mode)

if a:mode == 'i'

hi statusline guibg=peru

elseif a:mode == 'r'

hi statusline guibg=blue

else

hi statusline guibg=black

endif

endfunction

au InsertEnter * call InsertStatuslineColor(v:insertmode)

au InsertLeave * hi statusline guibg=orange guifg=white

hi statusline guibg=black

如下图所示,状态行的文件名部分,在插入状态时显示为橘色背景,这样就能很明显地提醒我们所处的状态:

statusline_Mode

命令小结
:set statusline format定制状态行
:set laststatus显示/取消状态行

Technorati Tags: ,,

About this Archive

This page is an archive of entries from November 2009 listed from newest to oldest.

October 2009 is the previous archive.

December 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.31-zh-cn