vi编辑器的学习使用(二十七)[3]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

;没以参数
-nargs=1    1个参数
-nargs=*    任何个数的参数
-nargs=?    零个或是一个参数
-nargs=+    一个或是更多个参数
在命令的定义中,参数是由关键字<args>指定的.例如:
:command -nargs=+ Say :echo "<args>"
然后我们输入:
:Say Hello World
命令的执行结果为:
Hello World
一些命令是指定一个范围作为其参数.告诉Vim我们在定义这样的一个命令我们需要指定-range选项.选项的值如下:
-range    允许的范围,默认为当前行.
-range=%    允许的范围,默认为当前文件(while file)
-range=count    允许的范围,但是他只是一个单一的数字,默认下为count.
当我们指定了一个范围以后,我们就可以用关键字<line1>和<line2>得到这个范围的第一行和最后一行.
例如下面的命令定义了一个SaveIt命令,这个命令可以将指定范围的文件写入文件save_file:
:command -range=% SaveIt:<line1>,<line2> write! save_file
其他的一些选项和关键字如下:
-count=number
这个命令指定一个数量,默认为number.数量的结果保存在关键字<count>中.
-bang    我们可以使用!修饰符.如果指定了,!将会被存放在关键字<bang>中.
-register
我们可以指定一个寄存器,默认为未命名寄存器.寄存器的定义放在关键字<reg>中.
关键字<f-args>含有与关键字<args>相同的信息.所不同的只是函数的调用方式不同.例如:
:command -nargs=* DoIt :call AFunction(<f-args>)
:DoIt a b c
执行下面的命令:
:call AFunction("a","b","c")
最后我们还有<lt>关键字,他包含字符<.
基本的功能函数:
Vim编辑器有许基本的功能函数.这一部分将会列出所有的功能函数:
append({line_number},{string})
作用:在line_number行后新增一行加入string
参数:
line_number
某行的行号,将会在其后插入文本.0将会使得在文件的开始处插入文本.
string    在指定行后将插入的文本.
返回值:整数标记.或为0则没有错误,1则是由于line_number超出范围所产生的错误argc()
作用:计算参数列表中的参数个数.
返回值:整数.参数个数.
argv({number})
作用:返回参数列表中的参数.
参数:
number:    参数索引.0则为参数列表中的第一个参数.
返回值:字符串.返回请求的参数.
browse(save,title,initial_directory,default)
作用:显示一个文件查看器,允许用户选择文件.这个只是在GUI版本中工作.
参数:
save:一个整数用来表明这个文件是否被读入或是保存.如果save为非0,则查看器选择一个文件写入.如果为0,则这个文件用于读取.
title:对话框的标题.
initial_directory:开始查看时的目录.
default:默认的文件名.
返回值:字符串.选择的文件名.如果用户选择了关闭或是有错误发生,则会返回一个空字符串.
例如下面的命令:
:call browse(0,"Hello","/home/mayuelong/Documents","Shell.txt")
bufexists(buffer_name)
作用:检查一个缓冲区是否存在.
参数:
buffer_name:要检查的缓冲区的名称.
返回值:整数标记.若存在则返回真(1),否则为假(0)
bufloaded(buffer_name)
作用:查看一个缓冲区是否被装入
参数:
buffer_name:查看是否装入的缓冲区的名称.
返回值:整数标记.若存在则返回真(1),否则为假(0)
bufname(buffer_specification)
作用:查看指定的缓冲区
参数:
buffer_specification:指明缓冲区的标号或是字符串.如果指定缓冲区标号,那么buffer_specification返回缓冲区标号.如果指定了字符串,他就会被作为一个常规的表达式并且会列出查找得到并且匹配的缓冲区.这里有三个特殊的缓冲区:%当前缓冲区,#交换缓冲区,$列表中的最后一个缓冲区.
返回值:字符串.包含缓冲区全名的字符串或是有错误发生或是没有匹配时则会返回空串.
bufnr(buffer_expression)
作用:得到缓冲区的标号.
参数:
buffer_expression:与函数bufname中的相类似.
返回值:整数.缓冲区的标号.若有错,则返回-1.
bufwinnr(buffer_expression)
作用:得到一个缓冲区的窗口号
参数:
buffer_expression:与bufname功能函数的参数相同
返回值:整数.与缓冲区相匹配的第一窗口的标号.或是有错误或是没有匹配的窗口时返回-1
byte2line(byte_index)
作用:将字节索引转换为行号
参数:byte_index    在当前缓冲区的字符索引
返回值:整数.包含由byte_index所指定的字符的行号或是byte_index超出范围时返回-1
char2nr(character)
作用:将字符转换成相应的数字
参数:
character:转换单一的字符.如果指定了一个长的字符串,只使用第一个字符.
返回值:整数.与字符相对应的数字标号.例如:char2nr("A")的值为65(即其相对应的ASCII码)
col(location)
作用:返回指定位置的列号
参数:
location:标记的描述(如"x)或是"."得到当前光标所在处的列号
返回值:整数.返回标记或是光标的所在的列号.当有错误发生时则返回0
confirm({message},{choice_list},[default],[type])
作用:显示一个对话框可以使得用户一系列的选择并返回用户的选择.
参数:
{message}在对话框中显示的提示信息.
{choice_list}包含选择列表的字符串.每一个新行("\n")来分隔每一个选择.用&来表明加速字符.
[default]表明默认选择的索引.第一个按钮为#1.如果没有指定这个参数,则第一个按钮为默认的.
[type]要显示的对话框的类型.可用的选择如下"Error","Question","Info","Warning","Generic".默认情况下"Generic"
返回值:整数.选择的数字(从1开始).如果用户按<ESC>或是CTRL-C来退出则返回0
如下面的一些例子:
echo confirm("Choose one","&One\n&Two\n&Three",2,"Error")
echo confirm("Choose one","&One\n&Two\n&Three",1,"Question")
echo confirm("Choose one","&One\n&Two\n&Three",0,"Warning")
echo confirm("Choose one","&One\n&Two\n&Three",0,"Info")
echo confirm("Choose one","&One\n&Two\n&Three",0,"Generic")
delete({file_name})
作用:删除文件
参数:
{file_name}要删除的文件名
返回值:整数.0表明文件已被删除,非0则表示错误.
did_filetype()
作用:检测FileType事件是否发生.这个命令在用自动命令时显得更为有用.
返回值:整数.如果自动命令正在执行并且至少有一个事件已发生则返回非0,否则返回0
escape({string},{character_list})
作用:将{string}字符串的字符转换成转义字符.{character_list}则为要进行转义的字符列表.
返回值:字符串
例如下面的命令:
:echo escape("This is a 'test'"," '")
其执行结果为:
This\ is\ a\ \'test\'
exsits({string})
作用:检测由{string}所指定的内容是否存在.
参数:
{string}要检测的内容.这个可以用来指定一个选项('&autoindent'),环境变量('$VIMRUNTIME'),基本的函数名('*escape')或者是一个简单的变量('var_name')(注:在这里我们要指定定这个引号标记,因为我们是在字符串中传递这些值)
返回值:整数.如果存在则返回1,否则返回0
expand({string},[flag])
作用:返回与{string}匹配的文件列表.这个字符串可以包含通配符或是其他的描述.在这里我们要注意

本文关键:vi编辑器的学习使用(二十七)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top