vimtutor
通过vimtutor来入门vim
第一课
1.1 移动光标
使用小写 hjkl
四个键来左下上右式地移动一个字符的位置。
提示:h键在左边, 可以向左移动。l 键在右边, 可以向右移动。j 键可以向下移动(k键向上移动)。
1.2 退出vim
q!
: 命令模式下输入 :q!
强制退出vim。(这一招会强制退出vim到命令行终端, 同时放弃所有没有保存的修改)
1.3 文本编辑 - 删除
x
: 正常模式下, 按一下 x
删除当前光标下一个字符。
1.4 文本编辑 - 插入
i
: 正常模式下, 按一下 i
进入插入模式, 之后每一次按下的键对应的字符都会被插入到光标所在位置。
1.5 文本编辑 - 追加
A
: 正常模式下, 按一下 A
, 光标移动到该行末尾, 并进入插入模式。
1.6 编辑一个文件
:wq
: 保存一个文件并退出
vi filename
: 在命令行终端中, 输入命令 vi filename
并回车, 将进入vim, 打开文件名为 filename
的文件, 同时进入正常模式。
第二课
2.1 删除命令
dw
:删除一个单词。
2.2 其他的删除命令
d$
:删除到当前行末尾。
2.3 操作符和移位
有些命令由操作符和移位字符组成, 例如: d motion
。
常用移位字符有:
w
:移动到下一个单词开始位置。e
:移动到当前单词的末尾。$
:移动到当前行的末尾。
例子: dw
删除一个单词(包括空格), de
删除一个单词(不包括空格), d$
从光标处开始删除内容直到该行结尾。
2.4 定量移位
#motion
:在移位字符前加上一个数字, 表示移位指定数目次。
例子: 2w
移位两个单词, 到第三个单词开始字符, 2e
移位两个单词, 到第二个单词最后一个字符, 0
移位到当前行首, $
移位到当前行尾。
2.5 移位删除
d[[#]motion]
:结合删除操作符、数字、移位字符来删除指定数量的内容。
例子: d2w
删除两个单词(包括空格)。
2.6 删除行
[#]dd
:整行删除太常见了, vim设计dd来删除一整行。
例子: dd
删除当前行, 2dd
删除当前行在内的连续两行。
2.7 撤销命令
u
:撤销上一次操作。
U
:把当前行恢复到修改前(再按就整体恢复到修改后), 是一个新的操作, 并不是撤销操作。
CTRL+r
:重做被撤销的命令。
第三课
3.1 粘贴命令
p
:把之前删除的或者拷贝的内容粘贴到当前光标后或下一行。
3.2 替换命令
r[x]
: 把当前字符替换为 [x]
, 但是不进入插入模式。
3.3 修改命令
ce
: 删除从当前字符直到到当前单词末尾的地方, 不包括空格, 同时进入插入模式。
3.4 更多修改命令
c[#]motion
: 删除指定数目的内容, 同时进入插入模式。
第四课
4.1 光标位置和文件状态
CTRL+g
: 显示文件名, 光标在文件中的位置以及文件状态。
G
: 跳转到文件最后一行第一个字符。
gg
: 跳转到文件第一行第一个字符。
[#]G
: 跳转到指定行。
4.2 搜索命令
/
: 在正常模式下, 直接输入 /
, 然后在最后一行第一个字符会显示 /
, 表示vim要搜索, 接下来键盘上输入的字符都是搜索字符串, 回车后vim立刻从当前光标处开始, 搜索并跳转到第一个匹配点。
?
: 同 /
但是从文件末尾往文件开始逆向搜索。
n
: 跳转到下一个搜索匹配点。
N
: 跳转到上一个搜索匹配点。
CTRL+o
: 跳转到前一次跳转开始的地方(除了上下左右移动以外的移动都是跳转)。
CTRL+i
: 跳转到后一次跳转开始的地方。
4.3 搜索括号
%
: 在正常模式下, 直接输入 %
, vim会搜索并跳转到与当前行第一个括号相匹配的下一个括号位置(可能匹配点在之后几行), 包括大括号, 小括号, {}
, ()
, []
。
4.4 (另一种)替换命令
:s/old/new
: 把old
换成new
, 只替换当前行且光标以后第一次出现的地方。:s/old/new/g
: 把old
换成new
, 只替换当前行光标以后所有出现的地方。:#,#s/old/new
: 把old
换成new
, 只替两个#指定的行之间所有出现的地方。:%s/old/new
: 把old
换成new
, 替换整个文件所有出现的地方。:%s/old/new/gc
: 把old
换成new
, 替换整个文件所有出现的地方并提示是否替换。
第五课
5.1 执行外部命令
:!CMD
:在命令行终端里执行CMD命令, 并且挂起vim, 显示命令结果, 按回车返回vim。
5.2 保存文件
:w
: 保存当前文件。
:w [filename]
: 将当前文件内容另存为 filename
命令的文件。
5.3 选择要保存的文本
v
: 正常模式下, 按 v
进入可视化模式, 然后移位选择一些文本, 此时可以按 d
删除选择的文本, 也可以按 y
复制选择的文本, 还可以按 :
结束可视化选择并进入命令模式, 再输入 w TEST
可以把可视化选择的文本保存为名为 TEST
的文件。
5.4 提取文件内容与合并文件
:r TEST
: 将 TEST
文件内容拷贝到当前光标处。
:r !ls
: 将当前目录下所有文件名称一个文件名一行地插入到当前光标下。
第六课
6.1 打开命令
o
: 在当前行以下另起一行并进入插入模式。
O
: 在当前行以上另起一行并进入插入模式。
6.2 追加命令
a
: 把光标移动到当前光标字符后, 并进入插入模式。
A
: 把光标移动到该行末尾, 并进入插入模式。
6.3 (另一种)替换命令
R
: 进入替换模式, 之后输入的每一个字符都会替换掉原内容的一个字符, 按一下 Esc
键退出替换模式到正常模式。
6.4 拷贝粘贴文本
y
: 进入可视化模式, 选择一些文本, 按 y
保存选择的文本, 并退出可视化模式到正常模式。
p
: 将刚刚用 y
保存的文本粘贴插入到当前光标处, 但不进入插入模式。
yy
: 拷贝整行。
yw
: 拷贝一个单词。
6.5 设置选项
:set option
: 设置vim的配置选项。
常用的option配置选项有:
hls
高亮显示搜索命中ic
忽略大小写is
增量搜索
配置选项前加上no表示取消此配置选项, 例如: /ignore\c
第七课
7.1 查看帮助文档
<HELP>
键, <F1>
键, :help
命令都可以查看帮助。
CTRL+w
: 在vim中不同的窗口间跳转。
:q
: 退出当前vim窗口。
:help subject
: 查看subject的帮助, 如: help w
, :help c_CTRL-D
, :help insert-index
。
7.2 创建启动脚本
~/.vimrc
: 当前用户默认的vim启动脚本, 可以在脚本里启用或停用特定功能。
$VIMRUNTIME/vimrc_example.vim
: 参考启动脚本。
:help vimrc-intro
: 查看启动脚本的帮助。
7.3 自动完成
CTRL+d
: 自动将可能的命令或参数在vim界面最下方临时显示出来。
<TAB>
: 按顺序将这些可能性补全在当前命令上。