其实我是Emacs的粉,偏爱Emacs(虽然也只是入门而已),网上有很多关于vi/Emacs的争论,其实我觉得没有必要,刀与剑哪有什么高下,取决于使用的大侠
在之前接触Linux的时候就了解过vi,很多教材,课程上都会讲vi的使用,只是后来碰到了Emacs,就渐渐用上了Emacs,最近在研究CloudStack,文本编辑器多是用来改配置文件,为此安装一个Emacs有点庞大,看了一下安装相关的包,差不多有200+M,既然vi也可以用,也是系统自带的编辑器,那就用它吧,轻巧一点,借此机会,重温一下vi
vi的三种基本模式
1、命令模式
2、末行模式
3、编辑模式
行末的命令如下
命令 |
功能 |
:w |
保存 |
:q |
退出,没有保存会提示 |
:q! |
不保存退出 |
:wq |
保存退出 |
:x |
保存退出 |
光标移动
h,j,k,l 左下上右
前面可以加数字,如3j向下移动3行
行内移动
命令 |
功能 |
w |
向后移动一个单词 |
W |
向后移动按空格分隔的词 |
b |
向前移动一个单词 |
B |
向前移动按空格分隔的词 |
0 |
行首 |
^ |
行首非空白字符 |
$ |
行尾 |
行间移动
命令 |
功能 |
gg |
文件起始位置 |
G |
文件结束行首 |
{数字N}gg |
跳转到N行 |
{数字N}G |
跳转到N行 |
屏幕移动
命令 |
功能 |
Ctrl + b |
向上翻页 |
Ctrl + f |
向下翻页 |
H |
定位到屏幕第一行 |
M |
定位到屏幕中间行 |
L |
定位到屏幕最后一行 |
HML是要区分大小写的哟
插入命令
命令 |
功能 |
i |
在当前字符前插入文本 |
I |
在行首插入文本 |
a |
在当前字符后面插入文本 |
A |
在行末插入文本 |
o |
在当前行后面插入空行 |
O |
在当前行前面插入空行 |
删除文本
命令 |
功能 |
x |
删除光标所在字符 |
d(移动) |
删除移动命令hjkl对应的内容,如dl删除右边字符 |
dd |
删除光标所在行 |
D |
删除至行尾 |
文本修改
命令 |
功能 |
r |
替换当前光标字符 |
R |
替换当前行光标后的字符 |
cw |
修改当前词,光标到词尾部分 |
cnw |
修改接下来的n个词,从光标处开始 |
先记这些吧,多了一下子也消化不了,vi还有很多功能,如块标记,分屏等,后面有用到时再补充
网友评论