Vim编辑器的使用

Vim简介

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具

Vim的工作模式

基本上 vi/vim 共分为三种模式,分别是一般模式、编辑模式与指令列命令模式。 这三种模式的作用分别是:

  1. 一般模式:
    以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据
  2. 编辑模式:
    在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式
  3. 指令列命令模式:
    在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的
    简单的说,我们可以将这三个模式想成底下的图标来表示:
Vim按键说明
  1. 一般模式可用的按钮说明,光标移动、复制粘贴、搜寻取代等
    vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
    「ctrl」+「b」:屏幕往“后”移动一页
    「ctrl」+「f」:屏幕往“前”移动一页
    「ctrl」+「u」:屏幕往“后”移动半页
    「ctrl」+「d」:屏幕往“前”移动半页
    「ctrl+$」:移动到光标所在行的“行尾”
    「ctrl+^」:移动到光标所在行的“行首”
    「w」:光标跳到下个字的开头
    「e」:光标跳到下个字的字尾
    「b」:光标回到上个字的开头
    「#l」:光标移到该行的第#个位置,如:5l,56l
    查找关键字:
    「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止
    「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止
    跳到文件中的某一行:
    「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行
    删除:
    「x」:每按一次,删除光标所在位置的“后面”一个字符
    「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符
    「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
    「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
    「dd」:删除光标所在行
    「#dd」:从光标所在行开始删除#行
    复制与粘贴:
    「yw」:将光标所在之处到字尾的字符复制到缓冲区中
    「#yw」:复制#个字到缓冲区
    「yy」:复制光标所在行到缓冲区
    「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字
    「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能

  2. 一般模式切换到编辑模式的可用的按钮说明
    [i]:进入插入编辑模式,用户可以对文件进行编辑修改
    [ESC]:退出编辑模式,进入一般模式

  3. 一般模式切换到指令列模式的可用的按钮说明
    「w」:在冒号输入字母「w」就可以将文件保存起来
    「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi
    「qw」:保存文件并退出,搭配「w」一起使用,这样在退出的时候还可以保存文件
    [q!]:若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案

  4. vim 环境的变更,在一般模式下输入[:]再输入
    [set nu]:显示行号,设定之后,会在每一行的前缀显示该行的行号
    [set nonu]:与 set nu 相反,为取消行号!

坚持原创技术分享,您的支持将鼓励我继续创作!