博客迁移,迁移前原文: 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 |
设置可选终端类型 |