通过vimtutor来入门vim
介绍
最近发现Linux中自带了一个命令可以入门vim,今次就来探讨一下这个东西。
本文绝大部分是人工翻译来的,面向对象是英语能力不强,但是又想稍微学习下vim的人,(毕竟,vim是Linux操作系统自带的,不需要安装别的乱七八糟的东西,keep it clean)。
在Linux命令行中输入man vim 并回车,可以进入vim的手册(手册就是详细介绍软件的说明书)。
在vim手册最下方有个SEE ALSO段落:
SEE ALSO
vimtutor(1)
我们看看这个vimtutor是个啥东西,竟然让vim官方手册来背书。
输入q 并回车来退出vim的手册,在命令行终端中输入vimtutor 并回车,可以打开vimtutor(其实就是拷贝了一份写好的文档到临时文件,然后用vim打开该临时文件)。
vimtutor解释说:
vim这个强大的工具有太多命令了,多到无法用像vimtutor这样的小教程来说明怎么使用。vimtutor会介绍使用一些vim的命令,让人能够轻松的把vim当成通用编辑器来使用(通用的意思是不会有语法高亮显示,自动完成等等这些特定于某些语言的功能)。
读完vimtutor需要大概25~30分钟,不包含其中穿插的练习。
vimtutor会备份当前文本,所以大胆用vim的命令修改文本,不要担心破坏了原文件。
劝退part
其实,直接打命令vimtutor zh 就会调出中文版的vimtutor。但是有些时候,可能排版、显示之类的会有问题。也可能根本看不懂中文里写的是啥。
总之接下来我会翻译并总结vimtutor的主要内容。
正文
vimtuor共有7课,970行,主要内容如下:
第一课:
1.1 移动光标
使用小写hjkl 四个键来左下上右式地移动一个字符的位置。
k 提示:h键在左边,可以向左移动。
h l l 键在右边,可以向右移动。
j j 键可以向下移动(k键向上移动)。
加料:vim有若干种模式:正常模式,命令模式,插入模式,替换模式,可视化模式。进入这些模式的一种 方式如下:
- 正常模式:按
Esc键。 - 命令模式:正常模式下,按
:键,vim的左下角会有-- INSERT --字样。 - 插入模式:正常模式下,按
i键,vim的左下角啥都没有,空空如也。 - 替换模式:正常模式下,按
R键,vim的左下角会有-- REPLACE --字样。 - 可视化模式:正常模式下,按
v键,vim的左下角会有-- VISUAL --字样。
1.2 退出vim
q! : 命令模式下输入:q! 强制退出vim。(这一招会强制退出vim到命令行终端,同时放弃所有没有保存的修改)
1.3 文本编辑 - 删除
x : 正常模式下,按一下x 删除当前光标下一个字符。
1.4 文本编辑 - 插入
i : 正常模式下,按一下i 进入插入模式,之后每一次按下的键对应的字符都会被插入到光标所在位置。
1.5 文本编辑 - 追加
A : 正常模式下,按一下A ,光标移动到该行末尾,并进入插入模式。
1.6 编辑个文件
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 替换命令
rx : 把当前字符替换为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 保存的文本粘贴插入到当前光标处,但不进入插入模式。
6.5 设置选项
:set option : 设置vim的配置选项。
常用的option配置选项有:
hls高亮显示搜索命中ic忽略大小写is增量搜索
配置选项前加上no表示取消此配置选项,例如:/ignore\c
第七课
7.1 查看帮助文档
<HELP> 键,<F1> 键,:help 命令都可以查看帮助。
CTRL+w 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> : 按顺序将这些可能性补全在当前命令上。
完结
以上就是我的vimtutor之旅。
更全面深入且系统的学习vim,可以在vim命令模式下,:help user-manual 查看最系统详细的文档。

浙公网安备 33010602011771号