Vim 学习步骤。
- 阅读教程。
- 坚持使用。
- 随时查阅。
而我觉得,在CS中,学习任何一样东西都是这个步骤,不断回顾,才会熟悉
无它,唯手熟尔。
模式
vim 编辑器有以下三种模式:
- 命令模式(默认):刚进入vim的时候,默认就是 命令模式,可以复制行,删除行等。
- 输入模式:可以输入内容。
- 末行模式:在最下边,除编辑模式,可以输入诸多管理员命令
三种模式间的转换:
命令模式→输入模式:
i:在当前光标所在字符的前面,转为输入模式 a:在当前光标所在字符的后面,转为输入模式 o:在当前光标所在行的下方,新建一行,并转为输入模式
输入模式→命令模式
按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: | 替换光标处字符 |
末行模式:
: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。