vi编辑器的使用(翻阅和编辑代码)

一,文字的粘贴复制与移动删除

  1>,粘贴与复制

    -----------------------------基本操作----------------------------------------------------

    在命令模式下,以光标所在位置为参考

    复制n个字符  --  nyl

    复制n个字     --  nyw

    复制n行        --  nyy

    粘贴出复制的内容  --  p

 

    -----------------------------寄存器相关---------------------------------------------------

    复制n行到寄存器?    --  ?nyy

    复制n个字到寄存器?   --  ?nyw

    复制n个字符到寄存器?  --  ?nyl

    粘贴出寄存器?中的内容    --  ?p

    (注,?为寄存器名字,用字母表示)

    例,h10yy 复制10行到寄存器h,hp 将寄存器h中的内容粘贴到光标处。

 

    ----------------------------VISUAL模式下复制选中内容--------------------------------------

    在命令模式下按‘V’进入VISUAL模式,方向键移动光标选中任何内容后

    y 复制

    d 剪切

    例,选中后的效果

    

    注,VISUAL模式中命令y或d后,会退回到vi的命令模式

    然后再命令模式下 p 粘贴到指定位置

    

    ----------------------------复制内容到指定行-----------------------------------------------

    复制n1n2行间的内容到n3行  --  :n1,n2 co n3

    

  2>,移动

    移动n1n2行间的内容到n3行  --  :n1,n2 m n3

  3>,删除

    在命令模式下,以光标所在位置为参考

    删除一个字 --  dw

    删除一字节   --  dl

    删除一字符   --  x

    删除一行  --  dd

    删除 n行  --  ndd

    删除n1到n2之间的内容(包括n1,n2)  --  :n1,n2 d   

    注,ndd删除n行时,删除的内容放到了1号寄存器中,可以使用命令 1p 将删除的内容粘贴出来。 

二,字符查找与替换

  搜索---------------------------------------------------------------------------------------

    向后搜索  --  /pattern

    向前搜索  --  ?pattern

    搜索与光标所在字符串相同的字符串  --   *

    pattern为匹配模式,可以为正则表达式。

    n 查找下一个,N查找上一个。

  替换----------------------------------------------------------------------------------------

    :s/p1/p2/      --当前行的第一个p1替换为p2

    :s/p1/p2/g    --当前行的所有p1替换为p2

    :%s/p1/p2/g   --每一行的所有p1替换为p2

    :n1,n2s/p1/p2/g   --n1,n2行之间的p1替换为p2

    :n:$s/p1/p2/g   --从第n行到最后一行的所有p1替换为p2

  

三,光标转跳与翻页

  在命令模式下,

  转跳到行首  --  gg

  跳转到第n行  --  :n

  转跳到最后一行  --  :$

  转跳到与光标所在括号相匹配的反括号  --  %

  转跳到光标所在行的行末        --  $

  前翻半屏  -- ctrl + u

  后翻半屏  -- ctrl + d

  打开文件并定位到第n行  --  vi path/file +n

四,多文件编辑

   vi file1 file2 在一个视窗中打开两个文件

  :n 显示下一个文件,:N显示上一个文件。

    CWW=ctrl+w+w

  按CWW可以在当前显示文件和ToolBar之间切换,如图:  

  

  当切换到ToolBar时,可以按TAB键在不同文件上切换,并按ENTER可以选择进入。

   vi file 在视窗中打开一个文件

   :sp file2

   :vsp file2

  分别以水平分割或者垂直分割的方式在同一个窗口显示file2,效果如图

  可以使用CWW命令在文件间切换,或者使用CW+k ,CW+j ,CW+h ,CW+l 切换到当前文件的上、下、左、右方向的文件窗口。

五,常用命令

  FF 查看光标所在的函数

  :set nu    --显示行号

  :set nonu  --不显示行号

  :set nohls  --退出搜索标记

  :set hls    --添加搜索标记

  :ls      --查看当前缓冲区里的文件

  V       --进入行块选择模式

  ctrl+V    --进入列块选择模式

  esc      --进入命令模式

六,高级技巧

  -------------------------------多行的缩进方法-------------------------------------------------------

  光标所在行右移一个TAB  --  >>

  光标所在行左移一个TAB  --  <<

  光标所在的后n行右移一个TAB  --  n>>

  光标所在的后n行左移一个TAB  --  n<<   (注,包括光标所在行)

 

  -------------------------------编辑模式下的“自动补齐”------------------------------------------------

  说明,CX=ctrl +x  ,  CL=ctrl +l  以此类推......

  补全一个词  CP

  例子,编辑到第4行,写入一个f 后,CP命令,结果如图,自动列出之前出现过的以f开头的字符串,此时可以通过上下键移动选中想要输入的单词并按ENTER键

  完成输入。(此例选择flower)

  

  补全一行   CX+CL = ctrl +x+l

  例,编辑到第12行,输入if,CX+CL,如图,其余操作同上。

  

 

  抄写上一行对应的字符  --  CY

  抄写下一行对应的字符  --  CE

  

  -------------------------------------添加和移除多行注释-----------------------------------------------

  添加注释 ctrl+v +I+//(注释符)+esc

  ctrl+v  --开始选定注释内容,如图选中227行到250行。

  

  接着,命令 I  (注,大写I)进入insert模式,然后输入 注释符 “//”,最后按 esc。 结果如图

  

 

  删除注释  ctrl+v    +   d

  ctrl+v 选中多行注释符,d完成删除。

  -------------------------------------十六进制编辑模式-----------------------------------------------------------

  :%!xxd      切换到十六进制显示

  :%!xxd -r  切换回文本状态

  在十六进制显示下编辑时,只有同时改动右侧文本列和左侧对应的十六进制列后,再切换回文本状态,此时的改动才会生效,并通过:wq命令保存。

  这是通过调用外部程序xxd完成的。

posted @ 2012-10-19 16:19  Ray.floyd  阅读(1747)  评论(0编辑  收藏  举报