文章目录
  1. 1. 一、常用模式
  2. 2. 二、基本操作
    1. 2.0.0.1.  1. 移动
    2. 2.0.0.2.  2. 删除
    3. 2.0.0.3.  3. 撤销和对撤销的撤销
    4. 2.0.0.4.  4. 改写
    5. 2.0.0.5.  5. 复制和粘贴
    6. 2.0.0.6.  6. 统计字数
    7. 2.0.0.7.  7. 其他操作
  • 3. 三、替换
  • 4. 四、宏命令
  • 5. 五、列操作
  • 6. 六、Vim乱码设置
    1. 6.0.0.1.  1. 文本乱码式
    2. 6.0.0.2.  2. vim菜单乱码
    3. 6.0.0.3.  3. vim提示信息乱码
  • 7. 七、总结
  •   之前有在同学的推荐下使用了Notepad++这一款软件,那会对于文本编辑类的软件还没有任何的概念,用了一段时间,感觉对于效率的提升没有多大的作用,也只是用一下其中的替换、宏命令和消除格式作用。奇怪的是,在文本编辑器中,小众软件里它是排在前面的,但我没有发现它有太多特别之处。邂逅了Vim之后,Notepad++被直接弃之。原因很简单 ,对于高效编辑和排版有需求,但是Notepad++已经无法满足目前的需求。
      对于刚接触Vim的人来说,上手确实需要耗费一定的时间和精力,尤其可能会被一些较长的命令串吓到,其实大可不必,长的命令串也只是一些简单的命令的组合而已,明白含义多用几次之后就习惯了。但不得不说,Vim的功能确实强大,花一点时间去学习和了解对于提高自己的效率十分有必要。

    一、常用模式

      一般而言,Vim的初始界面是Normal模式。在Noraml模式下,输入不同的命令进入不同的模式。按Esc键返回Normal模式。这是和其他普通编辑器区别很大的地方。以Notepad++来说,它只有一种模式——编辑模式,即输入什么就得到什么,比如输入“V”就显示“V”。而对于Vim来说,输入“V”不是得到“V”这一个字母,而是进入了Visual模式里面,在这个模式里面可以整行整块的编辑文本。再如输入J也不是得到J,而是合并行。这是模式之间的区别。除了这一模式,下来还有两种常用的模式:
      : (英文冒号)命令模式
      冒号之后输入不同的字母表示不同的命令,比如:w表示保存,又比如:X(大写)表示给文件加密,两次输入密码后即可给文件设定一个密码,若是TXT文件用Vim设定了密码,那么用自带的文本编辑器或者Notepad++打开就只能显示乱码,数字和字母也不正常显示,非常安全。
      a(A)、i(I)、o(O) 进入编辑模式
      进入编辑模式的方法有多种,这里主要指插入,大小写的字母分别代表了不同的含义:
      a 在光标之后插入文本
      A 在光标段末插入文本
      i 在光标之前插入文本
      I 在光标段首插入文本
      o 在光标下面插入新行
      O 在光标上面插入新行

    二、基本操作

     1. 移动

      在Normal模式下移动光标可以通过方向键进行操作,但更常用的是h、j、k、l四个按键,因为这几个键分布在右手常活动的区域。右手的食指、中指和无名指就可以搞定。这几个按键分别表示:
      h 左;j 下;k 上;l 右
      说明:后面的多数命令支持命令计数,命令计数指的是,在命令前面加上数值的话可以一次性进行多步操作。比如输入5j光标就向下移动5行,当然也可以通过输入jjjjj来实现的。

     2. 删除

      删除字符(汉字),输入x即删除光标对应的字符。如果想要删除3个字符,可以输入xxx,也可以输入3x。
      删除整行,输入dd即删除光标所在的行,同样的想要删除多行可以前面加上行数的数值。

     3. 撤销和对撤销的撤销

      在编辑的时候,如果误删除了一些内容,可以通过u进行撤销,这个有点类似于Office里面的Ctrl+Z的作用,但如果撤销多了也不要紧,还可以通过Ctrl+r进行反撤销,不用担心因操作失误而导致数据的丢失。

     4. 改写

      如果是对于其中的几个字符(或汉字)进行修改,那么直接用改写就很方便了。可以输入cw改写一个单词,也可以输入c3l改写3个汉字。另外,输入R进入替换模式,输入的每一个字符将替换掉光标上的一个字符。输入r是改写单个的字符,如果前面加上数值n,则表示输入n个同样的字符。

     5. 复制和粘贴

      y 复制字符或单词,比如y3l就表示复制了3个汉字(对于英文则是3个字母),英文一个单词一个单词的复制是y3w
      yy和Y 都表示复制了一整行
      y$ 复制当前光标到行尾
      p 基本充当的是粘贴的作用,对于用y复制的内容都可以粘贴到目标位置

     6. 统计字数

      gCTRL-G,g后面没有空格,后面的不分大小写

     7. 其他操作

      ZZ 表示退出
      .(英文句号)表示重复上一次的动作

    三、替换

      替换之所以单独拿出来,是因为它的作用远不仅仅局限于查找和替换,还有一次性删除目标字符串,包括空格、空行(\r)等等。
      输入命令行:%s/a/b/gc
      % 表示命令将作用在所有行上面,如果不输入%则命令只作用在当前一行上
      s 全称是substitute,一般缩写成s就可以
      s/a/b 表示把a替换成b
      g 表示一行中所有符合目标的字符串都会改变
      c 表示确认,请求用户确认
      输入上面的命令后得到下面的信息
      替换为 b (y/n/a/q/l/^E/^Y)?
      帮助里面的解释很详细,这里直接复制过来
      y 好吧,替换吧
      n 不,这个先留着
      a 别问了,全部替换吧(这个比较常用)
      q 退出,剩下的也不要管了
      l 把现在这个改完就退出吧
      CTRL-E 向上滚屏一行
      CTRL-Y 向下滚屏一行
      说明:1.如果b不输入即表示删除符合目标的字符串;2.也可以指定范围替换,前面的%实质上是等于1,$的命令,即替换范围是从首至尾,或者不用%,改用1,10或10指定前面10行替换都是可以的。

    四、宏命令

      使用Markdown语法的时候,需要在一级标题前添加一个#,然后习惯在一级标题下添加一行空行,尝试了一下宏命令,可以实现:

      按Esc键返回到Normal模式,按^将光标置于行首
      输入qa(q表示开始录制宏命令,a表示宏命令的名字,名字只能是a-z中间的一个字母)
      再按一下i(在光标之前插入文本),输入#,按Esc返回
      再按o(在下面插入一新空行),按Esc返回
      再按j^(把光标移动到下一行首)
      最后按q(结束宏命令的录制)
      使用宏命令的话,把光标移到目标位置,输入@a就可以了。如果是前面已经确定好了一级标题的框架,那么在其前面添加相应的数值就可以实现。比如5@a,就可以一次性把本文的以及标题确定好。

    五、列操作

      列操作(实际上是进入Visual模式进行整行整块处理)在编辑排版非常高效,比如中文习惯于段首空两格,使用Markdown语法的时候需要在段首添加两个全角的空格才可以,如果一段段添加任务太过繁琐,使用列操作就方便很多。另外在一些行前面添加无序编号也非常的方便。这里以在段首添加两个全角空格为例:


      将光标置于行首,按下Ctrl-q
      按jjj……(选择需要改变的部分)
      按I在行首插入,然后输入两个全角的空格
      按Esc退出即可执行完毕

    六、Vim乱码设置

      有时候用Vim在打开一些文件之后会出现乱码的情况,其实是Vim编码设置的问题。主要有四种:encoding(Vim的内部编码)、termencoding(Vim在于屏幕/键盘交互时使用的编码)、fileencoding(Vim当前编辑的文件在存储时的编码)、fileencodings(Vim打开文件时的尝试使用的编码)。解决办法是在_vimrc文件里面按照需求添加相应的代码即可

     1. 文本乱码式

      set encoding=utf-8
      set termencoding=utf-8
      set fileencoding=utf-8
      set fileencodings=ucs-bom,utf-8,chinese,cp936

     2. vim菜单乱码

      source VIMRUNTIME/delmenu.vim  sourceVIMRUNTIME/menu.vim

     3. vim提示信息乱码

      language messages zh_CN.utf-8

    七、总结

      知道Vim这一款软件也有一段时间了,但是长久以来对其不了解,迟迟没有投入自己的时间和精力去学习,一来是畏难心理的作用,二来是感觉没有需要,所以就误以为自己没有兴趣。现在看来,上手没有想象中的那么难,花一点时间学习使用一下就好了,不必追求技巧多么花哨,满足自己的需求就可以。即使不编程,单写作之后的编辑和排版就可以发挥其极高的效率。

    来自为知笔记(Wiz)
    文章目录
    1. 1. 一、常用模式
    2. 2. 二、基本操作
      1. 2.0.0.1.  1. 移动
      2. 2.0.0.2.  2. 删除
      3. 2.0.0.3.  3. 撤销和对撤销的撤销
      4. 2.0.0.4.  4. 改写
      5. 2.0.0.5.  5. 复制和粘贴
      6. 2.0.0.6.  6. 统计字数
      7. 2.0.0.7.  7. 其他操作
  • 3. 三、替换
  • 4. 四、宏命令
  • 5. 五、列操作
  • 6. 六、Vim乱码设置
    1. 6.0.0.1.  1. 文本乱码式
    2. 6.0.0.2.  2. vim菜单乱码
    3. 6.0.0.3.  3. vim提示信息乱码
  • 7. 七、总结