vim的使用方法

记录vim的使用方法和技巧 主要在Linux上

Posted by zzreo on January 4, 2019

vim的使用方法和技巧

1.vim介绍

说起vim就不得不先说一下vi。vi是大部分类Unix系统都会内建的一种文本编辑器, 而vim则是有vi发展而来的更加方便开发者使用的文本编辑器。相比vi,vim将代码补全 编译、错误跳转等等功能实现的更加丰富。
在shell中只需要使用vim命令加文件名,即可实现对文件的编辑。有些使用者可能习惯vi命令(大部分情况是将vim别名为vi)。
vim 文件名

别名的实现

通过编辑shell配置文件来,编写需要别名的命令,如将vim别名为vi。
配置文件各种shell名称不同,通常为.加shell名rc。
vim .bashrc

    alias vi=vim

注意等号两边不要有空格(空格为变量写法),保存退出后使用source命令重新加载配置文件。
source .bashrc

2.vim的三种操作模式

在使用vim编译的时候,离不开他的三种操作模式:命令模式、输入模式和底线命令模式。

命令模式

在使用vim编辑打开一个文件之后,便进入到了vim的命令模式。在这个模式中,所有的键盘操作都将成为一个命令。
常用的命令有:

  • i命令切换到输入模式,进行文件编辑。
  • :命令切换到底线命令模式,进行更多的命令,如wq(写入退出)、!q(强行退出)等。 **
    具体的键盘图如下(图片来自菜鸟教程): vim键盘图

输入模式

命令模式下使用i命令进入输入模式。输入模式可以对文本进行编辑操作,使用esc可以退出输入模式回到命令模式。

底线命令模式

在命令模式下使用:命令进入底线命令模式。再对文本进行编辑操作后可以进行退出保存等操作。

  • w命令对文件写入自己的修改。
  • q命令退出vim编辑模式。
    输入相关命令后敲回车执行。

3.vim的更多使用技巧(持续补充更新)

vim新建文件

在使用vim命令时,如果vim后面的文件名参数不存在,vim将会自己动新建一个该文件名的文件,写入保存之前将会以临时文件形式存在。
vim test_new.txt

进入输入编辑模式

除了使用i命令进入输入模式外,还可以使用a命令或者o命令,这之外还有s命令。

  • i:在光标所在字符前开始插入
  • a:在光标所在字符后开始插入
  • o:在光标所在行的下面另起一新行插入
  • s:删除光标所在的字符并开始插入
    拓展:
  • I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
  • A:在光标所在你行的行尾开始插入
  • O:在光标所在行的上面另起一行开始插入
  • S:删除光标所在行并开始插入
    当然选用哪种模式进入输入模式都可以,之后使用方向键和退格键组合就能操作,这些命令指示为了更便捷。
    光标移动

    关于光标的移动可能使用方向键是最常见的了,但是vim命令模式中有着更前大的光标移动,只是刚开始的记忆会有点难度。

  • h或(方向键←)光标向左一个字符。
  • j或(方向键↓)光标向下一个字符。
  • k或(方向键↑)光标向上一个字符。
  • l或(方向键→)光标想有一个字符。
    在以上的光标命令前加数字,可以实现移动指定字符数的字符,如1h、2j、3k、4l。
    —- 光标在行之间移动
  • $命令将光标移动到行尾。
  • ^命令将光标移动到行首。
  • G命令移动到最后文本最后一行。
  • 数字加G命令移动到指定行数。
  • H命令移动到当前窗口的首行。
  • M命令移动到当前窗口的中间行。
  • L命令移动到当前窗口的末行。 ****
    *以单词为单位移动(可有数字参数)
  • b命令移动到前一个单词的词首。
  • w命令移动到下一个单词词首。
  • e命令光标移动到下一个单词的词尾。

    以句子为单位移动(可有数字参数)

  • ):命令向下移动一句。
  • (:命令向上移动一句。
  • 2):向下移动两句。
    ** 以段落为单位移动(可有数字参数)
  • }:命令向下移动一个段落。
  • {:命令向上移动一个段落。
  • 3{:向上移动三段。

    翻页

  • Ctrl+b或者PgUp上一页(backword)。
  • Ctrl+f或者PgDn下一页(forword)。
    ** 更多的光标操作
    标记
    使用(m+字母单词)标记位置,使用(’子母单词)回到标记位置,可以同时设置多个标记。
    命令(:delmarks)可以删除指定标记。
    命令(:marks)列出所有的标记。

跳转
使用命令ctrl+o让光标回到之前的位置,使用ctrl+i取消光标的回撤跳转。