Vim 学习步骤。

  • 阅读教程。
  • 坚持使用。
  • 随时查阅。

而我觉得,在CS中,学习任何一样东西都是这个步骤,不断回顾,才会熟悉
无它,唯手熟尔。

模式

vim 编辑器有以下三种模式:

  • 命令模式(默认):刚进入vim的时候,默认就是 命令模式,可以复制行,删除行等。
  • 输入模式:可以输入内容。
  • 末行模式:在最下边,除编辑模式,可以输入诸多管理员命令


三种模式间的转换:

  • 命令模式→输入模式:

     i:在当前光标所在字符的前面,转为输入模式  a:在当前光标所在字符的后面,转为输入模式  o:在当前光标所在行的下方,新建一行,并转为输入模式

  • 输入模式→命令模式

    1. ESC
  • 命令模式→末行模式

         输入:即可转为末行模式(即冒号)
    




使用举例:**

  • “vim + 路径/文件名” 进入到文件中, 如果文件不存在,那么会新创建一个空文件。
  • 使用 a、i、o 进入编辑模式,然后对Shell 脚本的编写
  • 编写完成后,键入ESC,回到命令模式
  • 键入 “:”,并输入 wq (写入退出)

下面介绍一下三种模式一些常用指令。

命令行模式:

组合键(命令) 含义
dd 删除光标所在的那一行
u 撤销上一步操作
Ctrl+r 恢复上一步操作
ndd n为数字,删除光标所在的向下n行
yy 复制光标所在的那一行
nyy n为数字,复制光标所在的向下n行
p 将已复制的数据在光标的下一行粘贴
实现剪切操作: dd+p
G 光标移动到这个文件的最后一行
nG 移动到文件的第n行
gg 移动到文件的第一行

编辑模式:

组合键(命令) 含义
i: 在当前光标所在字符的前面,转为输入模式
a: 在当前光标所在字符的后面,转为输入模式
o: 在当前光标所在行的下方,新建一行,并转为输入模式
r: 替换光标处字符

末行模式:

image.png

  • :e {文件名} 打开要编辑的文件
  • :ls 显示打开的缓存
  • :help {标题} 打开帮助文档

Vim 的接口其实是一种编程语言

移动

  • 基本移动: hjkl (左, 下, 上, 右)
  • 词: w (下一个词), b (词初), e (词尾)
  • 行: 0 (行初), ^ (第一个非空格字符), $ (行尾)
  • 屏幕: H (屏幕首行), M (屏幕中间), L (屏幕底部)
  • 翻页: Ctrl-u (上翻), Ctrl-d (下翻)
  • 文件: gg (文件头), G (文件尾)
  • 行数: :{行数} 或者 {行数}G ({行数}为行数)
  • 杂项: % (找到配对,比如括号或者 / / 之类的注释对)
  • 查找: f{字符}, t{字符}, F{字符}, T{字符}
    • 查找/到 向前/向后 在本行的{字符}
    • , / ; 用于导航匹配
  • 搜索: /{正则表达式}, n / N 用于导航匹配

计数

数字 + 名词/动词 。执行若干次操作

  • 3w 向前移动三个词
  • 5j 向下移动5行
  • 7dw 删除7个词

修饰语

修饰语有 i 表示“内部”,和 a 表示”周围“。

  • ci( 改变当前括号内的内容
  • ci[ 改变当前方括号内的内容
  • da’ 删除一个单引号字符窗, 包括周围的单引号

Vim 进阶

搜索和替换

:s (替换)命令(文档)。

  • %s/foo/bar/g
    • 在整个文件中将 foo 全局替换成 bar
    • 最后一个/g是global的缩写

多窗口

  • :sp / :vsp 来分割窗口
  • 同一个缓存可以在多个窗口中显示,里面做的修改也会同步。

后言

vim的学习需要练习20小时,并且需要保持一定的使用,对于我来说,可能用到vim的地方不多,现在基本知道一些使用方式就够了。等到后面需要用到再来学习。

对了,vim有一个“手册”,叫做vimtutor,完成它就可以熟练掌握vim。