星期三, 十月 28, 2009

VIM学习笔记 状态行(statusline)

默认的状态行,左侧显示当前打开的文件名,右侧显示当前所处的行列位置。当你执行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: ,,

星期五, 十月 23, 2009

在Mac下选取PDF

在Mac内置的预览(Preview)程序中,点击工具栏上的“文字工具”,就可以像普通的文字编辑工具那样利用鼠标拖动选择文字。如果你只想选取某些列,而不是整行的文字,那么只需要按住Option键的同时拖动鼠标。

Crop_Column

点击工具栏上的“选择工具”,可以选取PDF文件中的特定部分,然后拷贝并生成图片。

Crop_Image

开源的PDF阅读程序Skim,不但可以分列选择文字,而且还可以组合这些分开的文字。

点击工具栏上的“Text Tool”按钮,按住Option键的同时拖动鼠标以选择某个区域中的文字;然后点击“Add New Highlight”按钮,高亮显示选中的文字。重复以上操作,就可以高亮显示多段文字。

Select_Skim_Highlight

按住Shift键的同时,逐一单击高亮显示区域,就可以组合这些区域;然后双击鼠标,查看和复制连接后的文字。这样很方便你摘录不同段落中的文字,然后经过组合再用于别处,省去了多次复制粘帖的烦琐。

Select_Skim_Highlight_Join

Tags: , , , ,

星期日, 十月 18, 2009

在Mac下隐蔽PDF

你可能并没有意识到,当你创建PDF文档时,可能正在泄露自己的隐私。因为在保存PDF文档的同时,也将存储一些元数据(metadata):比如你的姓名、文档由何种程序创建、创建和修改日期等。而这些信息也将在PDF阅读器中一览无遗。比如在预览程序中,选择“工具”菜单下的“显示简介”。

Preview_GetInfo

为避免泄漏隐私信息,我们可以创建压缩的PDF文档。在打印生成PDF时,选择“Compress PDF””菜单项。

注意:在10.4 (Tiger)的打印对话框中默认存在“Compress PDF”选项,而在10.5 (Leopard)中却没有直接显示出来。因此,我们需要安装Compress PDF Workflow,以重新激活此功能。

Print_to_PDF_Compress

经过压缩的PDF文档将不会包含个人信息。

Get_Less_Info

jPdf Tweak是一个用Java编写的跨平台的开源软件。她可以说是一把PDF的瑞士军刀,提供了组合、拆分、旋转、排序、水印和加密PDF等多种功能。我们可以用它来修改PDF文档中的隐私信息。

jPDFTweak_DocumentInfo

首先,在“Input”页里选择PDF文档;然后,在“Document Info”页里加载文档信息,并增加、删除或修改其中的重要隐私;最后,在“Output”页里生成新的文件。

Tags: , , ,