vi 编辑器的使用

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

上一篇:【12c新特性】多LGWR进程SCALABLE LGWR "_use_single_log_writer"


下一篇:[Oracle] opiodr aborting process unknown ospid (***) as a result of ORA-609