vi 是一个古老而有名的编辑器了,尽管现在有现代的编辑器,不过似乎仍然有学习 vi 的必要,一来是方便,Linux 和 Mac 默认都会安装。其次显得比较专业。
我的目标是简短地介绍每天会用到东西,好了闲话不多说,进入正题。
vi play.txt
强制退出::q!
保存退出::wq
一开始 vi 似乎难以理解,也许都不知道怎么退出。理解了两个模式就简单了,命令模式和编辑模式。刚启动的时候是命令模式,i 就切换到编辑模式,ESC 按键切换到命令模式。
命令我理解有两种,底行命令用:
开头,会显示在底部。操作文本的常用命令就直接输入。有的书介绍是三种模式,我这里统一成两种模式,都是命令。
除了输入文本外,通常是在命令模式下,适应了就很简单了。
i 进入编辑模式,就可以输入了,光标按键也是可以的。很简单吧。
删除行:命令模式下,dd
。3dd
就删除 3 行。
到此就可以简单使用 vi 了。
文件头:gg
文件尾: G
段移动:^f
, ^b
行头:0
, g0
行尾: $
, g_
好了,就这么多了,几个命令需要操作适应一下。
查找::/example
, n 继续下一个。?example
,/example
也可以的。由此可以看出:,/,?三个符号都可以开启底行命令。
替换: :s/old/new
全文替换::%s/old/new/g
, 注意末尾的 g,这个实际是正则表达式。
逐个替换,这个比较麻烦点,具体的命令可按如下顺序执行:
/which 查找
cwwhat[ESC] chang word
n 下一个,无需替换
n 继续下一个,需要修改
. 点是用来重复上一次操作,即cwwhat[ESC]
粘贴:p
复制:yy
,yank,大概是快的意思吧。
undo: u
redo: U
,^r
v
进入块状态,国标按键就可以选择块了。d 就可以删除块了。
^v
是列块。
^v
选好列块后,I, 注意是大写,输入#,然后两次 ESC,就可以块注释了。
反注释,同样选好列块,d 就可以了。
当然,这个不如现代编辑器的一键操作方便,不过 vi 的灵活性是其他编辑器无法比的。
我只介绍了基本的操作,命令都是英语单词首字母,容易记忆,多用就熟了。
更多高级的,等我有了体会再写吧。
请拍砖或者补充。