vi 基础总结
vi 的工作方式
vi 的工作方式有3种:命令方式、文本输入方式和最后行方式。
命令方式
无论用户当前处于什么方式,只要按Esc键就可以进入命令方式。用户初始进入vi时即处于命令方式。文本输入方式
在命令方式下按Insert键或输入文本插入类命令即可进入文本输入模式,用来输入文本内容。最后行方式
在命令方式下输入某些特殊字符,如“:“、”/“、“?”,即进入最后行方式,此时用户输入的命令将会在最后一行上显示,并指导用户按Enter键vi才会去执行它。
退出vi 时使用的就是最后行方式。
进入vi
[root@localhost test]# vi sysinfo
vi 命令
执行外部命令
vi 编辑器允许用户在编辑文件的过程中不退出 vi 也能执行 shell 命令。比如,在vi编辑器中运行 date 命令,可以在命令方式下输入”:!date”,此时按 Enter 键,vi编辑器将返回到 shell ,执行 date 命令。按任意键可返回vi编辑器。
将 shell 命令的运行结果加入到正在编辑的文件中,可输入”:r!date”。在”!“的前面加上r。
环境设置
用户可以通过设置 vi 的环境来定制编辑器的行为。set 命令设置的都是临时的,格式为:
:set 选项
在 vi 命令方式下使用”:set all”可显示所有选项,常用的选项有:
autoindent(ai):文本的每个新行均与上一行对齐。
ignorecase(ic):在搜素过程中忽略大小写。
number(nu):对文本各行进行编号
readonly:对正在编辑的文件启用写保护,可以避免意外更改或破环文件内容
report:报告用户上一个命令所影响的行号。
showmatch(sm):输入右边的圆括号、花括号或方括号时,显示左边相应的圆括号、花括号或方括号。
showmode(smd):显示编辑器所处的模式
wrapmargin(wn) = n:更改右边距为n,n等于右边距中的空格数。
其中圆括号中时可以使用的缩写形式。例如“:set nu”对当前的文本各行进行编号,并在每行的开头显示行号。
宏功能
通过宏操作符 -map 来实现的,可以将一系列按键用一个键代替,给用户一个使用命令的捷径。使用 map 创建的宏只对当前编辑有效。例如:
“:map q 5yy”
表示按q键,会复制5行文本到缓冲区。
“:map #2 5yy”
将命令5yy指定给F2键。可以使用unmap取消一个设定的宏,如”:unmap q”
字串缩写
提供输入文本捷径的。通过缩写操作符 -ab 来实现的。也只对当前编辑会话起作用。比如:
“:ab ul UNIX/Linux”
表示在文本输入方式下输入ul 和空格的时候,vi 就会将 ul 扩展为UNIX/Linux,而ul 为另一个单词的一部分的时候不会扩展,vi 是通过ul 前后的空格来识别缩写字串的。使用”:ab”可以列出当前设置的所有缩写。
要取消缩写,可以使用unab操作符,如”:unab ul”则取消缩写ul。
环境文件
怎样将环境设置变为永久的,在每次使用vi 时都起作用。可以将这些设置保存到环境文件.exrc中。.exrc 是一个隐藏文件,vi编辑器每次被启用时,就会自动在当前工作目录中检查该文件,如果存在就根据该文件的内容来设置编辑环境。若没有找到.exrc 文件,就会到用户主目录中继续查找,进而进行设置。如果都没找到文件,就会使用缺省值进行设置。
例如文件这样设置:
set ai
set number
set sm
set showmode
set wn=5
map #2 5yy
ab ul UNIX/Linux
转载请标明出处:http://blog.csdn.net/renli2549/article/details/79106402