博客迁移,迁移前原文: https://www.cnblogs.com/smstars/archive/2013/05/18/3085329.html

编辑一个文件

语法:

vi 【-rR】 【file……】

常用命令:

命令 说明
vi file 启动vi,编辑指定的文件
vi -R file 以只读模式启动vi
view file 以只读模式启动vi (vi -R file等同于view file)
vim file 启动vim,编辑指定的文件
vim -C file 以兼容模式启动vi

编辑技巧

命令 说明
vi +[num] file 打开文件,并将光标置于第n行首
vi + file 打开文件,并将光标置于最后一行首
vi +/pattern file 打开文件,并将光标置于第一个与pattern匹配的字符串
vi +?pattern file 编辑工作从匹配pattern的最后一行开始
vi -r file (-r 即recover,恢复)

文本插入

命令 说明
i 在当前光标位置前插入数据
a 在当前光标位置后插入数据
I 在当前行开头处插入数据
A 在当前行末尾处插入数据
o 在当前行下面出入一行
O 在当前行上面插入一行

写入文件

命令 说明
:w 将数据写入到原始文件
:w file 将数据写入到指定文件
:w >> file 将数据追加到指定文件
:r [filename] 在编辑的数据中,读取另一个档案的数据,亦将档案内容加到游标所在行的后面
:n1,n2 w [filename] 将n1到n2的内容存储成另一个档案。

退出文件、停止vi

命令 说明
:q 退出文件
:q! 不保存数据,强制退出
:wq 保存退出文件
shift+ZZ 停止vi
ZQ 无条件退出

多档编辑

通常用法:语法:

vi a.txt b.txt c.txt,切换文件: :next

命令 说明
:n 编辑下一个档案
:2n 编辑下两个档案
:N 编辑前一个档案
:e 在不离开当前vim窗口的情形下,在编辑其它档案
:e# 编辑前一个档案
:e! 放弃目前正在编辑的档案
:r 在游标所在处插入一个档案内容
:9r 将档案插入到9行之后
:f 显示当前正在编辑的档名,相当于^g
:f filename   改变编辑中的档名。
:files     列出目前buffer中的所有档案,相当于:ls 或 :buffers
:bn   移至下一个buffer
:bl    移至前一个buffer
:b 档名    移至该档名

vi与vim命令行常用选项

命令 说明
-b 以二进制模式编辑文件
-c command 启动后立即运行给定的ex命令
-d 以diff模式运行
-o[num] 启动vim时打开num个窗口
-O[num] 启动vim时打开num个水平排列
-r 恢复模式
-R 于只读模式中编辑文件
-t tag 编辑包含tag的文件,并将光标置于tag位置
-T type 设置可选终端类型