Vi 、Vim与Emacs 文本编译器
1、vi、vim
vi是一种文本编辑器,是Visual interface的简称;
而vim则是vi的强化版vi plus,专业全称Vi improved。
为什么要学习vi ?
1)所有的Unix like系统都会内建vi文本编辑器,而其他的文本编辑器则不一定存在
2)许多个别软件的编辑接口都会主动呼叫vi 3)vim具有程序编辑的能力,可以主动的以字体颜色来辨别语法的正确性,方便设计程序
4)因为程序简单,编辑速度相当快速。
2、vi拥有5种编辑模式
- 命令模式(其他模式进入命令模式—其他模式下按ESC)
- 输入模式(命令模式下进入输入模式—按a、 i、 o、 A、 I、 O (注意输入模式下左下角会出现INSERT))
- 末行模式(命令模式进入末行模式下按----shift+: 此时左下角会出现:)
- 可视化模式(命令模式进出可视化模式按—v)
- 查询模式(在命令模式下查询时按—?(从后往前) /(从前往后))
3、模式之间的切换
- 命令模式
- 输入模式
1、新增
a:从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动
A:从光标所在列最后面的地方开始新增资料
2、插入
i :从光标所在位置前面开始插入资料,光标后的资料随着新增资料向后移动
I:从光标所造列的第一个非空白字元前面开始插入资料
3、开始
o:在光标所在列下新增一列并进入输入模式
O:在光标所在列上方新增一列并进入输入模式 - 末行模式
在编辑模式下退出(ZZ保存并退出)
4、在编辑模式下移动光标
- 逐字符移动
h:左
l:右
j:下
k:上
#h:移动#个字符
按下4h 就会向左移动4个字符
- 以单词为单位移动
w:移至下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或下一个单词的词首 - 行内跳转
0:绝对行首
^:行首的第一个非空白字符
$:绝对行尾 - 行间跳转
#G:跳至第#行
G:最后一行
注意:在末行模式下,直接给出行号即可
:5 直接跳到第5行
5、删除
- x:删除光标所在处的单个字符
- #x:删除光标所在处及向后的共#个字符
- dd删除光标所在行在
- #dd:删除包括当前光标所在行内的#行
- dw删除光标所在字节内之后的内容(包括光标位置)
- de剪切删除光标所在字节内之后的内容(包括光标位置),可配合p命令使用
6、复制命令y
yy:复制一行
#yy:复制包括当前行往下的#行
7、粘贴命令p
- p:如果删除或复制为整行内容,则粘贴在光标所在行的下面,若为非整行,则粘贴在光标所在字符的后面
- P:如果删除或复制为整行内容,则粘贴在光标所在行的上面,若为非整行,则粘贴在光标所在字符的前面
8、撤销
- u:撤销前一次的编辑操作,按几次u就撤销几次操作
- #u:撤销此前的#次操作
- Ctrl+r 撤销最近一次的撤销操作
9、查找并替换
- s:末行模式的命令
- 使用格式:s/要查找的内容/修饰符
- 修饰符:
i:忽略大小写
g:全局替换,一行中若匹配到多次,则都替换
练习:
10、使用vim编辑多个文件
vim file1 file2 file3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
退出:qa 全部退出
总结:vi 的命令都是一些需要记的,要多练习 ,需要理解的不多,所以要多练。