原创 VI编辑器常用功能

2008-12-15 16:48 3597 8 8 分类: 软件与OS

VI和VIM是UNIX中常用的文本编辑工具,不支持鼠标操作,以下为常用功能的键盘操作方式:


1 进入
    vi     file ...
编辑一至数个文件
    vi -ew file ...
阅读一至数个文件
    vi -r  file    
恢复曾被意外中断的文件并编辑<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


2 基本模式及相互转换
                        
命令模式
     ---------->AaCcIiOoRSs O...gBbDd...Zz+ -^$"'% /?:  <--------
    |        |                                     |             |
    |        |                                     |             |
    |        V                                     V             |
    |    
插入模式                              底线模式         |
     ------<ESC>                                  <ESC><CR>------


3 命令模式
   
1)光标移动
         h                             
左移
         j                             
下移
         k                             
上移
         l                             
右移
         |                             
到首列
         ^                             
到本行首个非空白字符
         $                             
至末列
         25|                           
25
         <CR>,+                        
至下行首
         -                             
至上行首
         G                             
至末行首
         25G                           
25行首
         <CTRL>f                       
下滚一幕
         <CTRL>b                       
上滚一幕
         <CTRL>d                       
下滚半幕
         <CTRL>u                       
上滚半幕
         b
B                           至字首,串首
         e
E                           至字尾,串尾
         w
W                           至下字首,下串首
         %                             
(.){.}之配偶
         H                             
至屏頂
         M                             
至屏中
         L                             
至屏底
         Z<CR>                         
本行升頂
         Z.                            
本行坐中
         Z-                            
本行下底
         mx                            
光标现处位置命名为x,其所在行亦称为x
         `x                            
x位置
         'x                            
x行的行首
         [[,]]                         
至上、下模块头
         {,}                           
至上、下邻近空行
         '',``                         
至光标先前所在行之行首或其先前所在位置     
   
2)搜索字符
                 
初次搜索                 继续搜索
                
右下方向  左上方向    原方向  反方向 
                    fx       Fx          ;       ,
        
行内找字符 tx       Tx          ;       ,         
   
3)小改
         rx                            
改本字符为x
         >>                            
行首插一平移量(相当于编辑状态的Tab键)
         <<                            
行首删一平移量
         J                             
合并下一行
        
                             英文字母改变大小写     
   
4)剪贴
         x                             
删本字符
         dd                            
删一整行
         yy                            
存一整行
         p                             
贴于右下
         "xdd                          
删本行存入x缓冲区
         "xyy                          
存本行入x缓冲区
         "xp                           
x缓冲区内容贴于右下
         X                             
删左字符
         D                             
删至行尾
         Y                             
存一整行
         P                             
贴于左上
        
"x有名缓冲区,用户指定)        
   
5)转换到插入模式
         i                             
插于左
         a                             
插于右
         o                             
下开行
         cc                            
先删去整行
         s                             
先删去一个字符
         r                             
逐字替换
         I                             
插于行首
         A                             
插于行尾
         O                             
上开行
         C                             
先删至行尾
         S                             
先删去整行         
   
6)其他
         .                             
重复修改命令
         u                             
取消前次变化
         U                             
整行复原
         <CTRL>g                       
显示本行在文中的位置
         <CTRL>r                       
刷新屏幕
         ZZ                            
存盘退出vi         
   
7)变化
        
大部分命令前可加数字,以示该命令所做动作的重复次数。
        
3h12dd5j4x6X13s7cc4>>2e3+4-,...等等。
        
         dd
yycc<<>>等双字符命令的第二个字符可用适当
        
的定位命令替换,以改变并限定该命令所晗动作的作用范围。
        
dbdGd1Gcec^c3-cfxy'xc%>'x<L...等等。
4
插入模式
    <DEL>
<BS>                    删一字符
    <CTRL>t                       
行首插一平移量
    <CTRL>d                       
行首删一平移量
    <CTRL>u                       
删至行首
    <CTRL>c                       
拷贝选中文字
    <CTRL>v                       
粘贴已拷贝文字
    <CTRL>z                       
取消前次变化
    <CTRL>y                       
重做前次取消的变化
    <ESC>                         
结束插入



5
底线模式
   
1)搜索字符串
                           
初次搜索              继续搜索
                     
右下方向     左上方向    原方向  反方向      
                        /str        ?str        n       N
            
文内找串   /\<str\>    ?\<str\>    n       N
            
\<,\>分别表示左、右不连,可单独使用)
      
   
2)行命令
            
:引导行命令,在底线输入一条完整的行命令
             <CR>
<ESC> 执行命令,返回命令模式
            
多数行命令需用行号说明本命令作用范围,范围说明示例
             3
3                        312 3行至第12
             .
本行                         .+5   自本行下数5
             $
末行                         $自末行上数6
             %
全文,即1,$之简写
            
            
行内特殊位置标志
             ^
行首                         $ 行尾
            
            
常用行命令示例
            
25                          25
            
.,$s/str1/str2/g            本行至末行,全部str1换为str2
            
%s/str1/str2/gc             全文中str1换为str2,末尾c表示需要逐一确认
             :.,.+5s/^/#/                 
本行至其下第5,行首均插入#
             :.-5,.s/;$//                 
本行上第5行至本行,行尾若有;均删之
            
kx                          命名本行为x
            
'x,.s/str//g                删去本行至本行中全部str
            
s/\<str\>//g                删去本行内全部左右不连的str
            
r file                      读入文件file,插域第0行下,即第一行上
            
.,$d                        删去本行至末行
            
u                           取消前次变化
            
f [file]                    显示正在编辑的文件名,或将其改名为file
            
n                           编辑下一个文件,本命令仅用于编辑多个文件
            
vi file                     编辑另一个文件file
            
vi                        编辑先前编辑的文件
            
w [file]                    存盘,可另指定存盘文件名file
            
wq [file]                   存盘并退出vi,可另指定存盘文件名file
            
qq

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条