Linux文本编辑器之vim

     博客荒废了好久,最近在一本书中看到这样一段话,“再普通的事件一经记录就成为历史,一成为历史就将价值连城”。虽然我正在做的课后笔记远远谈不上是历史,但于准备学以致用的我而言,这种记录必定价值连城。不记录,既放弃了绝佳的深入理解知识点的机会,同时每次学习投入的精力也很快付之东流。深知自己于记录文字信息这块的拖拉,不敢放下大话,但且从此博文开始,先做到补齐前面课程的知识点内容,加油!

   

    这里仅就课程内容做了相应记录,未常用的高级或扩展功能,自己暂时未用到,也就没有去查阅相关书籍及做记录。

 

一、简介

    vim(vi improved),Linux中功能十分强大的文本编辑器。

    Linux下输入vim,会直接进入该程序,进行文本编辑。也可以使用# vim [options] /path/to/somefile,这种格式,直接打开指定的文本文件。

   

二、模式转换

    打开vim,程序界面下,vim默认处于编辑模式;需要编辑文本需要转换到输入模式;退出程序、保存修改等操作需要转换到末行模式。

    编辑模式——>输入模式:

    i:insert,当前光标所处字符前转换为输入模式;

    a:append,当前光标所处字符后转换为输入模式;

    o:当前光标所在行的下方新建空白行转换为输入模式,且停留在新建行行首;

    I:当前光标所在行的行首转换为输入模式;

    A:当前光标所在行的行尾转换为输入模式;

    O:当前光标所在行的上方新建空白行转换为输入模式,且停留在新建行行首;

 

    输入模式——>编辑模式:

    按“Esc”键;

 

    编辑模式——>末行模式:

    键入冒号“”;

 

    末行模式——>编辑模式:

    按两次“Esc”键;

    注:三种模式仅能按照以上顺序转换。

 

三、相关功能快捷键

    光标跳转:

    h:向左单个字符移动;

    i:向右单个字符移动;

   j:向下单个字符移动;

    k:向上单个字符移动;

    可以结合数字实现多个字符间跳转,例如5h,即向左跳转5个字符距离;

 

    单词间跳转:

    w:跳转至后一个单词的词首;

    e:跳转至当前或下一个单词的词尾;

    b:跳转至当前或下一个单词的词首;

 

    句子间跳转:

   ):跳转至下一句行首;

   (跳转至下一句行首;

 

    段落间跳转:

    }跳转至下一段行首;

    {跳转至下一段行首;

 

    行间跳转:

    1G或者gg:跳转到第一行;

    G:跳转到最后一行;

    #G:结合数字,跳转到指定行;

   

    行内跳转:

    ^:跳转至行首的第一个非空白字符;

    $:跳转至绝对行尾;

    0:跳转至绝对行首;

 

    关闭文件:

    末行模式:

    :w 保存;

    :q 退出;

    :! 强制;

    :wq! 强制退出保存;

    :x 保存退出;

    :qall 编辑多文件时,退出所有正在编辑的文件;

  

    编辑模式:

    ZZ:保存退出;

 

    打开文件:

    vim [options] /path/to/somefile

    vim +# /path/to/somefile      打开文件,光标处在第#行的行首;

    打开多个文件:

    vim /path/to/somefile1 /path/to/somefile2 /path/to/somefile3                

    next:跳转至下一个文件;

    prev:跳转至上一个文件;

    first:跳转至第一个文件;

    last:跳转至最后一个文件;

    -O:垂直分割窗口;

    -o:水平分割窗口;

    ctrl+w松开后,根据水平或垂直界面,按上下左右光标键或wsad键,切换编辑文件;

   

    x:删除单个字符;

    #x:删除光标所在处像右#个字符;

    d:删除命令;

    dw:删除光标处至后一个单词的词首的内容;

    db:删除光标处至当前或下一个单词的词首的内容;

    de:删除光标处至当前或下一个单词的词尾的内容;

    d):删除光标至句尾的内容;

    d(:删除光标至句首的内容;

    d^:删除光标处至行首的内容;

    d$:删除光标处至行尾的内容;

    dd:删除光标所在行;

    #dd:删除光标所在行及向下#行;

 

    末行模式下亦可以使用d命令:

    1,7d:删除第1到7行的内容;

   

    末行模式支持地址定界:

    格式:起始地址,结束地址,例如:

    $:最后一行;

     .:当前光标所在行;

     %:全文;

   

    1,$:表示第1到最后一行;

    1,+6:表示第1行再往下6行;

    1,$-2:表示第1行至倒数第3行;

    .,+3:当前光标所在行再往下3行;

 

      

    撤消操作

    u:vim默认会保存最近50次的操作,u命令可以逐一撤消此前的操作;

 

    未保存修改前,编辑操作可撤销

    Ctrl+r:撤消此前撤消的操作;

    粘贴:paste,put

    p:最后一次删除操作可以使用p,相当于windows中的剪切;

    删除的是整行:

      小写p:在当前光标所在行的下方粘贴;

      大写P:在当前光标所在行的上方粘贴;

    删除的不是整行:

      小写p:在当前光标所处字符的后方粘贴;

      大写P:在当前光标所处字符的前方粘贴;

 

    复制:yank

    y:删除功能;

    yy:复制光标所在行;

    #yy:复制含光标所在的#行内容;

    y$:复制光标处至行末的内容;

    y^:复制光标处至行首的内容;

 

    查找:

    /pattern:向后搜索字符串pattern ;
    ?pattern: 向前搜索字符串pattern;

    查找到对应字符后,使用n,N在匹配字符间跳转

    n:下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个) ;
    N:上一个匹配(同上);

 

    替换:

    :%s/old/new/g:搜索整个文件,将所有的old替换为new;
    :%s/old/new/gc:搜索整个文件,将所有的old替换为new,每次都要你确认是否替换;

 

    linux中有一个vim教程,输入vimtutor回车即可跟着练习


本文出自 “Arvin Lau” 博客,请务必保留此出处http://64314491.blog.51cto.com/2784219/1624453

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。