今天突然发现vi虽然用了些日子了,但是常用的一些命令之外,还是有些命令比较生疏,简单总结了一下,然后自己在vi里面编辑了一把,效果还不错。
对于大家比较熟悉且常用的命令就没有再列举。欢迎大家拍砖,我来做一些汇总。
选项 作用
) 移动光标到下一个句子。
( 移动光标到上一个句子。
{ 在第一列插入{来定义一个段落
[[ 回到段落的开头处
]] 向前移到下一个段落的开头处
H 移动光标到屏幕上面
M 移动光标到屏幕中间
L 移动光标到屏幕下面
J 将光标所在行与下一行合并为一行
fx 移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。
tx 和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)
Fx 和 fx 类似,不过是往回找。使用 , 来重复上一个F命令。
Tx 和 tx 类似,不过是往回移动到 x 的右边一个位置
<Ctrl-f> 向下移动一屏。
<Ctrl-d> 向下移动半屏。
<Ctrl-b> 向上移动一屏。
<Ctrl-u> 向上移动半屏
<Ctrl-r> 重做上一个操作,这个操作和回退操作U很实用
`. 到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
:n1,n2 w filename :把文件n1到n2行的内容都写入文件filename中
:wq或ZZ或:x 保存文件并退出vi
:set ic 查找时忽略大小写
:.= 打印当前行的行号
:= 打印文件中的行数
:set nu 显示行号
:set nonu 不显示行号
:set fileformat 显示文件格式,unix还是dos格式,对于格式的问题还是比较有效的。
一些额外的补充
这些功能是在vi的使用中比较实用,但是解释半天还不如上个图直接。
块选择是一个比较常用的场景,可以通过ctrl+v或者V来实现选择复制。
<Ctrl-v> 选择复制的效果如下:
使用V的效果如下:
最后使用y或者d就可以选择复制或者删除了。
最后一个可能看起来比较花哨的功能就是vi的显示布局格式。
可以选择横向,纵向,实现的效果看起来还是不错的。
多个视图之间可以通过ctrl+w来进行切换。