VI编辑器操作命令整理

  一、进入vi的命令
     vi + file          打开文件,并定位光标到末行行首。
     vi + /keyword file     打开文件,并定位光标到第一个与keyword匹配的串处。
     vi -r file          在上次编辑file时,发生系统崩溃,此次恢复file。
    
二、移动光标类命令
     k或nk               光标上移一行或n行。         
     j或nj               光标下移一行或n行。         
     h或nh               光标左移一个或n个字符。
     l或nl               光标右移一个或n个字符。
     space或nspace          光标右移一个或n个字符。
     w或nw               光标右移一个或n个短单词(已空格和符号为界)。
     b或 nb               光标左移一个或n个短单词。
     e                       光标移动到后一个单词(短单词)最后一个字母。E 光标移动到后一个单词(长单词)最后一个字母。
     W或nW               光标右移一个或n个长单词。
     B或nB               光标左移一个或n个长单词。
     0     光标定位到行首                 
     $     光标定位到行末。
     Ctrl+f或PgDn          向下翻一整页          
     Ctr+b或PgUp          向上翻一整页
     gg (小写)              跳转到首行    
    GG(大写)               跳转到末行 
     1G或nG                跳到第一行或第n行。
     gg (小写)             跳转到首行    
    G(大写)                跳转到末行  
    数字n 向上箭头      向上移n行
    数字n 向下箭头      向下移n行

三、保存和编辑
     Ctrl+ W    窗口切换。            
    Ctrl +w   [s|v]
     x               删除当前光标处的字符。        
     u               撤消操作
     dd或ndd     删除当前一行,或删除当前行开始的n行。
     d               可配合任何移动命令,如dw, d}等。
     dw             删除从光标当前位置到下一个短单词开始处的内容。
     rc               将光标位置的字符替换为字符c。
     J                将下一行连接到本行末尾。
     .                重复前一个编辑命令,如“dd...”会删除四行文字。
四、插入模式
     i     进入插入模式,从当前字符前开始插入。     I     进入插入模式,从当前行的开始处插入。
     a     进入插入模式,从当前字符后开始插入。     A     进入插入模式,从当前行的行尾处插入。
     o     进入插入模式,在当前行下方,新建一空行     O     进入插入模式,在当前行上方,新建一空行
     c     与d命令类似,可配合任何移动命令,完成文本修改。如cW、ce、c)等。
     cc     用空白行替换当前整行文字。
     c0     用空白行,替换掉当前位置到行开始处。c$     用空白行,替换掉当前字符到行尾结束。
小p 粘贴在当前行下    大P 粘贴在当前行上
五、复合命令
     d和c命令可以与数字或移动命令形成组合命令,如:
     d3w               删除后面3个单词。
     d2j               删除后面两行文本。
六、复制、剪切、粘贴
1、命令行模式
命令行模式下,按v(会有VISUAL提示)。然后,用移动命令控制光标。可以反白一段文字,此时就可以对此段文字进行复制、剪切操作了。如:v 3j,产生如下效果。
y          复制反白文字。
d          剪切反白文字。
P或p          在光标之后或光标之前插入文本。
2、底行模式(即按“:”进入的模式)
:set number或者set nu          显示行号。        :Set nonu 隐藏行号
:x copy y     将x行复制到y行之后。
:x,y copy z     将x行到y行,复制到z行之后。
:x move y     将x行移动到y行之后(即剪切到)。
:x,y move z     将x行到y行移动到z行之后(即剪切到)。
         
八、文本替换
1.替换
:s/old/new/     将当前行第一次出现的字符串old替换为字符串new(只替换当前行且只替换第一个)。
:s/old/new/g     替换当前行的所有匹配之处,即将当前行所有的old都替换为new。
:n,$s/a/b/ 替换第n行开始到最后一行中每一行的第一个a为b
:n,$s/a/b/g 替换第n行开始到最后一行中每一行所有a为b(n为数字,若n为.,表示从当前行开始到最后一行)
:%s/old/new/g     替换文件中所有匹配的位置。
:%s/old/new/gc     替换文件中所有匹配的位置,替换前提示。
         
2.可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:s#a/#b/# 替换当前行第一个a/为b/
:%s+/a/b/+/c/d+ (使用+来替换/)    /a/b/替换成/c/d/
3.下面是回车(0A)来表示。这样讲window上文件考到unix上时,总会出现^M,请写个unix下的过滤window文件的换行符(0D)的shell或c程序。
使用命令:cat filename1 | tr -d "^V^M" > newfile
使用命令:sed -e "^V^M//" filename > outfilename
需要注意的是1,2两种方法中,^V和^M指的是ctrl+V和ctrl+M
必须要手动进行输入,而不是粘贴。
在VI中处理:首先使用VI打开文件,然后按ESC键,接着输入命令:
:%s/^V^M//
:%s/^M$//g
如果上述方法无用,则正确的解决办法是:
tr -d "\r" dest
tr -d "\015" dest
strings A>B

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26366371/viewspace-2062327/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26366371/viewspace-2062327/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值