关闭

第三节VI编辑器的使用

167人阅读 评论(0) 收藏 举报
分类:

1.VI编辑器的基本使用

  1.VI的启动
     在系统提示符下输入命令vi,后面接着输入想要创建或编辑的文件名
     常用命令::::
    
     后面跟 -R是以只读方式打开
            -x对文件进行加密
           
  2.VI的工作模式
       VI有三种工作模式:普通模式,编辑模式,命令模式。
      
        1。普通模式
             普通模式下没有任何提示符,当输入命令立即执行,不需要按回车 ,和SHELL间切换用ZZ
        2. 编辑模式
             主要用于文本的输入,在普通模式下,输入a(附加命令)、c(修改命令)、i(插入命令)、o(另起新行)、r(取代命令)以及
             s(替换命令)都将进入编辑模式,若要返回普通模式,只需要按esc即可。
        3. 命令模式
       尽管普通模式下的命令可以完成很多功能,但要执行一些如字符串查找替换等操作还是必须要进入命令模式。
       普通模式切换命令模式秩序:即可,回到普通模式,按两次esc或者Backspace。
       
   3.文件的保存和退出
       1.保存退出
       保存退出是将缓冲区的内容写入文件,可以使用的命令为wq和x。
       2.强行退出
       是指无条件退出,不把缓冲区中的内容写入文件,所使用的命令为q!。其中感叹号“!”表示不管文件是否被修改,放弃所修改内容强行退出。
       3.直接退出
       与强行退出的区别是如果文件内容有修改则给出提示。直接退出使用的命令为q。
   
   4.光标移动
   vi编辑器中的光标移动全部由键盘完成的。
  
      1.向前移动一个字符
      1或可以使用空格键或者右箭头
      
      2.向前移动一个字符
      h或space或者←
      
      3.移动到下一行
      +、enter键、j、ctrl+n、或↓
      4.移动上一行
      -、k、ctrl+p或↑
      
      5.移至行首
      将光标移到当前行的行首可以使用的命令为0和^,命令0是将光标移到当前行的第一个字符,不管它是否为空白符;而命令^将光标移到第一个非空白符。
      
      6.移至行尾
      将光标移到当前行的行尾可以使用的命令为$。如果在命令前加数字,则光标将下移到n-1行的行尾。
      
      7.按词前移
      将光标按词向前移动的命令为w和W。
      
      8.按词后移
      将光标按词向后移动的命令为b和B,
      
      9.移至词尾
      将光标移至当前字符所在单词词尾的命令为e和E.
      
      10.移至指定行
      将光标移至指定行的开头可以使用的命令如下:
      :行号
      行号G
      第一个命令在命令模式下才可以,第二个在普通模式下
      
      
   5.屏幕滚动
   在vi编辑器中,尽管可以使用键盘上的page up和page down键来完成这些操作
  
       1.向后滚动一屏ctrl+f
       
       2.向后滚动半屏ctrl+d
       
       3.向前滚动一屏ctrl+b
       
       4.向后滚动半屏ctrl+u
         
       5.屏幕定位
       zz屏幕定位正中央,zt当前行置于屏幕顶端,而zb将当前行置于屏幕底端,gg将屏幕定位于第一屏,G定位最后一屏。
       
       6.文本输入、删除与修改
         1.插入命令
            文本插入的命令为i和I,i是将其后输入的字符插入到当前光标位置之前,光标后的文本相应向后移动,命令I是将其后输入
            的字符插入到当前光标所在行的行首。
            
         2.附加命令
            附加文本的命令为a和A,其中a是将其后输入的字符插入到当前光标位置之后,而命令A是将其后输入的字符追加到当前光标
            所在行的行尾。
            
         3.另起新行
            另起新行的命令为o和O,其中命令o是在当前行的下面另起一行,命令O是在当前行的上面另起一行。
            
         4.删除字符
            删除字符的命令为x和X,其中x删除光标所在处的字符,而命令X删除光标前面的那个字符,如果前面给出一个数值n,则删除
            由光标所在字符开始向右的n个字符。
            
         5.删除文本对象
            命令dd删除光标所在的行,命令D删除从光标所在位置开始到行尾的所有字符。
            
         6.修改命令
            修改文本的命令为c、C和cc,它们的作用是用新输入的文本代替原来的文本,这等阶于将原来的文本删除后,利用命令i插入
            新的文本。
            
         7.取代命令
            取代文本的命令为r和R,其中r是用其后输入的单个字符取代光标所在处的字符。
     
     7.复制与粘贴
        1.粘贴
        粘贴缓冲区文本的命令为p和P,这两个命令之间的区别是:命令p将文件放在当前行之下或当前光标之后,而命令P将文本放在当前行
        之上或者光标之前。
        
        2.复制
        命名缓冲区是指以字母a~z命名的缓冲区,利用命名缓冲区可很好的
        复制文本的命令有两种格式:
        yy    复制整行
        y<光标移动命令>
  
        3.不使用缓冲区的复制与移动
        不使用缓冲区完成文本行复制和移动的命令为co,格式如下:
         :<开始行>,<结束行> co <目标行>   //必须在命令模式下执行
         同样文本的移动可以使用m命令,格式如下:
         :<开始行>,<结束行> m <目标行>   //必须在命令模式下执行
         
     8.替换与查找
     
        1.查找
        按下“/”跳到光标的最后一行,然后输入要查找的字符串,完成后按enter开始搜索,按n向下移动
        按下“?”搜索反方向,
        
        如果全字符匹配  例如::/<字符/>
        要匹配一行开头和结尾需要使用^和$字符,例如big$
  
        在搜索命令中,不区分大小写查找:
        :set ignorecase
        
        :set incsearch
        
        2.替换命令
        文本替换的命令为s和S,其中命令s用随后输入的文本替换光标所在处的字符。
        
        命令S将新输入的文本替换当前行,即S命令相当于将原来的文本删除后,重新插入。
        
        3.全局替换
        将包含字符串s1的所有行中用字符s2替换s1的首次出现,即如果在当前行中包含两个或更多,只有一个头被替换。
             g/s1/s//s2/
        如果要将文件中的所有字符s1都替换为s2,则使用如下命令:
             g/s1/s//s2/g
  
     9.其他功能
        1.还原
        命令u和U可以用来撤销刚执行命令的作用
        u是单步的撤销
        2.重复
        重复命令“.”用来重复刚才的插入或删除命令。
        3.挂起与恢复
        vi编辑器可以使用ctrl+z来挂起回到SHELL,之后用户可以使用fg回到vi编辑器中。
2.VI编辑器之程序编辑
    1.括号之间的跳转
    命令% 可以实现括号之间的跳转,转到与当前光标下的括号相匹配的哪一个括号上,
    
    2.局部变量和函数名的跳转
    命令gd可以在当前文件中对局部变量名或函数名进行搜索,并将光标定位在第一次出现的位置。
  
    3.查找全局标示符
    [I 会列出所有包含该标示符的行,不光在当前文件中,也查找当前文件所包含的头文件,以及被头文件所包含的文件。
    
    
 程序编辑过程中的关键字补全
    相应的命令为ctrl+p和ctrl+n,这两个命令之间的差别只是在于搜索的顺序。
    
    
 源代码的缩进
    1.自动缩进
      命令模式下输入:set cindent shiftwidth=2
    2.手动缩进
     
    
    
    
    
    
    
 
  
    

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:80791次
    • 积分:1739
    • 等级:
    • 排名:千里之外
    • 原创:70篇
    • 转载:175篇
    • 译文:0篇
    • 评论:1条
    最新评论