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 的灵活性是其他编辑器无法比的。
我只介绍了基本的操作,命令都是英语单词首字母,容易记忆,多用就熟了。
更多高级的,等我有了体会再写吧。
请拍砖或者补充。