vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂。vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法。

首先vim打开文件的三种方式:

    vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行。

    vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示

    vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示

    多个文件间跳转:键入ctrl+w后:→向左、←向右、↑向上、↓向下

vim打开文件后分为三种模式:编辑模式、输入模式、末行模式。编辑模式跟输入模式可互转、编辑模式跟末行模式可互转,输入模式跟末行模式不可互转。

下面分别记录一下每个模式的常用用法:

  • 编辑模式

    打开文件后的默认模式,此模式下敲击键盘上的按键表示对文本的编辑、对光标的控制

    1. 对文本的编辑:复制、粘贴、删除、修改、替换、撤销、恢复,类似于图形界面下的文本编辑工具中的“编辑”菜单的功能。

      复制:y+(y、l、w、(、)、{、})分别表示复制(当前行、字符、单词、上一句、下一句、上一段、下一段)

      粘贴:p粘贴到光标下一行或者后一个字符、P粘贴到光标上一行或者前一个字符

      删除:d+(d、l、w、(、)、{、})分别表示删除(当前行、字符、单词、上一句、下一句、上一段、下一段)

      更改:c+(c、l、w、(、)、{、})分别表示更改(当前行、字符、单词、上一句、下一句、上一段、下一段)

      下面借用一个图能更看得更清楚:

       Linux学习日志2-vim使用基础 _vim 

      x删除光标后一个字符,X删除光标前一个字符

      #x删除光标后如干字符,#X删除光标前若干字符(#表示数字)

      r替换光标所在处字符,R替换光标所到处字符

      u撤销操作、ctrl+r恢复撤销

    2. 对光标的控制

    字符间跳转:h左跳、j下跳、k上跳、l右跳(为了便于记忆j、k也记在字符间)

    单词间跳转:w下个单词词首、e下个单词词尾、b当前单词或前一个单词的词首

    句子间跳转:)下一句、(前一句

    行间跳转:#G某行(#表示数字)

    行内跳转:#h左跳、#j下跳、#k上跳、#l右跳(#表示数字。为了便于记忆#j、#k也记在行内)、^行首非空字符、0绝对行首、$行尾

    段落间跳转:{前一段、}后一段

    屏间跳转:ctrl+b上一屏、ctrl+f下一屏、ctrl+u上半屏、ctrl+d下半屏

    文件内跳转:1G或gg转文首、M转文中部、G转文尾

    文件间跳转(如果vim -o或者vim -O在同一屏打开多个文件的话):ctrl+w后:→向左、←向右、↑向上、↓向下

    保存后退出:ZZ            

  • 输入模式

    此模式下敲击键盘上的按键表示输入相应的文本字符

    在编辑模式下通过键入i、I、a、A、o、O转入输入模式,再键入Esc键退出输入转入编辑模式。

    i光标前插入

    I光标所在行首插入

    a光标后插入

    A光标所在行尾输入

    o光标下面新起一行并接受输入

    O光标上面新起一行并接受输入

  • 末行模式

    编辑模式下输入冒号转入末行模式,键入:

    w保存

    q退出

    !强制

    wq!强制保存后退出

    x保存退出

    qall退出打开的所有文件

    first跳到第一个文件

    next到下个文件

    last到最后一个文件

    prev到前一个文件

    set nu设置显示行号

    set nonu取消显示行号

    help查看帮助(依次键入Esc、冒号、q退出帮助)

    /xxx向下查找xxx,n下一个匹配、N上一个匹配

    ?xxx向上查找xxx,n下一个匹配、N上一个匹配

    两个Esc键退出末行模式重返编辑模式