通过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删除当前⾏,2d d 删除当前⾏在内的连续两⾏。
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 创建启动脚本
linux系统vim编辑器~/.vimrc:当前⽤户默认的vim启动脚本,可以在脚本⾥启⽤或停⽤特定功能。
$VIMRUNTIME/vimrc_example.vim:参考启动脚本。
:help vimrc-intro : 查看启动脚本的帮助。
7.3 ⾃动完成
CTRL+d:⾃动将可能的命令或参数在vim界⾯最下⽅临时显⽰出来。
<TAB>:按顺序将这些可能性补全在当前命令上。
完结
以上就是我的vimtutor之旅。
更全⾯深⼊且系统的学习vim,可以在vim命令模式下,:help user-manual查看最系统详细的⽂档。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论