vi + filename
vi 分为2种模式,输入模式和命令模式
i 进入输入模式 esc 进入命令模式
退出 ::q :q! 直接退出 :wq!或:x 存盘退出
指令模式进入输入模式
新增 (append)
a : 从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A: 从光标所在列最後面的地方开始新增资料。
插入 (insert)
i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I : 从光标所在列的第一个非空白字符前面开始插入资料。
开始 (open)
o : 在光标所在列下新增一列并进入输入模式。
O: 在光标所在列上方新增一列并进入输入模式。
取代 (replace)
r : r 会取代光标所在的那一个字符 。
R : R会一直取代光标所在的文字,直到按下 ESC 为止 。
基本的编辑
删除与修改文件的命令:
x: 删除光标所在字符。
dd : 删除光标所在的行。
r : 修改光标所在字符,r 後接著要修正的字符。
R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。
s: 删除光标所在字符,并进入输入模式。
S: 删除光标所在的行,并进入输入模式。
光标的移动指令
ctrl+f 屏幕向前移动一页
ctrl+b 屏幕向后移动一页
ctrl+d 屏幕向前移动半页
ctrl+u 屏幕向后移动半页
n(space) 按下数字在按下空格,光标会移动到这一行的n个字符
0 移动到这一行最前面的字符
$ 移动到这一行最后边的字符
H 移动到这个屏幕最上方的那一行
M 移动到这个屏幕最*的那一行
L 移动到这个屏幕最下方的那一行
G 移动到文档的最下边一行
nG 移动到这个文档的第n行 配合着set nu
n <enter> 光标向下移动到第n行
搜索和取代
/word 向光标之后寻找字符串名称为word的字符串
?word 向光标之前寻找字符串名称为word的字符串
:n1,n2s/word1/word2/g 在第n1 和n2 行之间寻找word1 并修改为word2
:1,$s/word1/word2/g 从第一行到最后一行寻找word1 并修改为word2
:1,$s/word1/word2/gc 从第一行到最后一行寻找word1 并修改为word2 并提示使用者是否需要修改
删除 复制和粘贴
x,X x为向后删除一个字符 X为向前删除一个字符
nx 向后删除n个字符
dd 删除光标所在的一行
20dd 删除从光标开始向下的20行
d1G 删除光标所在到所在行的所有数据
dG 删除光标所在到最后一样的所有数据
yy 复制光标所在的一行
nyy 复制光标向下n行的数据
y1G 复制光标到所在行的数据
yG 复制光标到最后一行的数据
p,P p为复制数据在光标上一行 P 复制数据在光标下一行
J 将光标所在行与下一行结合成一行
c 重复删除多个数据
u 复原前一个动作
指令列命令
:e! 将文档还原到最原始的状态
ZZ 若文档没有更动,不存储离开。若文档已经改动,保存离开
:w filename 将文档另存为一个文档 相当于另存为
:r filename 在编辑中读取另外一个文档 添加到光标所在的后边
:set nu 显示文档行数
:set nonu 取消行数
n1,n2 w filename 将n1-n2的内容保存到filename 这个文档中
:!command 暂时离开vim 到指令模式下执行command的显示结果 例如[:! ls /home]
本文转自岁月丶倾城博客51CTO博客,原文链接http://blog.51cto.com/alca0126/1341411如需转载请自行联系原作者
laihuadongcto