vim是一个非常强大的编辑器,有非常多的命令可以运行。vimtutor是用来简单介绍一些足够你把vim当做一款全能编辑器来使用的教程。
完成vimtutor大概需要话费你25-30分钟,这取决于你对于命令的联系次数。
本文将vimtutor中每一个lesson的总结记录下来。
第一课总结
光标移动
(left)/h: 向左移动光标
(down)/j: 向下移动光标
(up)/k: 向上移动光标
(right)/l: 向右移动光标
注:h、j、k、l命令移动光标仅在常规模式(Normal mode)下有效。启动vim
在终端运行:
vim filenamrepeat a motion prepend it with a number.e <ENTER>
若文件存在,直接通过vim打开。若文件不存在,则直接创建“filename”文件并通过vim打开。
注:vim打开文件默认进入常规模式(Normal mode),在常规模式下按<ESC>将会进入命令模式(Command mode)。
退出vim
按<ESC>之后, 输入:q! <ENTER> 。 退出并撤销所有改动。
按<ESC>之后, 输入:wq <ENTER>。 退出并保存所有改动。
注:按<ESC>进入命令模式(Command mode),该模式中执行命令需要以" : "作为开始。删除字符
按 x 删除光标所在位置的字符。插入和附加
按 i 在光标前面插入内容。
按 A 在行尾添加内容。
注:上述两个命令都将进入插入模式(Insert mode)。
第二课总结
注:本节课所有命令均始于光标位置,且均为常规模式下操作(Normal mode)。
dw: 删除一个单词,光标移动到下一个词的首字母位置。
d$: 删除至行尾。
dd: 删除光标所在整行。
2w: 按照输入数字重复操作。
例如:d2w相当于执行两次dw命令。更改命令(change command)的格式为:
命令符(d)+数字+动作(w)
0(数字零): 移至行首。
u: 撤销前一个操作。
U: 撤销当前repeat a motion prepend it with a number.行的所有操作。
CTRL-R: 撤销前一个撤销,即重做。
第三课总结
p: 将上一次删除的内容复制到光标之后。
注:若上次删除的是一整行,该命令将删除行复制到当前行之下。rx: 用'x'替换光标所在位置的字符。
注:'x'可以为任意字符。c: 更改命令,允许你从光标位置更改到其后动作(motion)所至位置。
注:执行c命令之后,将进入插入模式(Insert mode)。接3, c与d的命令格式相同:
c [number] motion
例如:
ce(end of word)删除至单词末尾,光标停留在下一个单词首字母前。
c2w(word)删除两个单词。
c$(end of line)删除至行尾。
与d命令不同之处在于,c命令会进入插入模式。
第四课总结
CTRL-G: 显示光标当前所在位置以及文件状态。
1). G: 移动至文件末尾。
2). [number] G: 移动至该数字行。
3). gg: 移动第一行, 即文件顶部。/phrase: 向下查找"phrase"。
?phrase: 向上查找"phrase"。
执行一词/phrase或?phrase命令后, n命令将沿相同方向查找,N命令将沿相反放下查找。%: 当光标位于括号'('、')',中括号'['、']',花括号'{'、'}'时,该命令自动查找与之对应的括号。
:s/old/new: 把光标之后第一个"old"替换成"new"。
:s/old/new/g: 把当前行的所有"old"替换成"new"。
:#.#s/old/new/g: #,#设定需要替换的行的范围。
:%s/old/new/g: 把文件中所有的"old"替换成"new"。
:%s/old/new/gc: 动作同上,但每次替换前会请求确认。
注:c动作可以跟在其他动作后面,以便替换之前请求确认。
第五课总结
:!command: 执行外部命令。
linux的一些例子:
1). :!ls: 显示当前文件夹的全部文件及文件夹。
2). :!rm FILENAME: 删除FILENAME文件。
注:windows中也有对应的命令,执行方法相同。:w FILENAME: 将当前vim打开的文件以FILENAME的文件名保存到硬盘。
v motion :w FILENAME: 保存视图模式选中的内容保存为FILENAME文件。
:r FILENAME: 从硬盘中提取FILENAME文件并将其复制到光标之下行。
:r !ls: 将ls命令结果复制到光标之下行。
第六课总结
o(小写字母): 在光标所在行之下创建新的一行。
O(大写字母): 在光标所在行 之上创建新的一行。
注:以上两个命令执行完毕后,都会进入插入模式(Insert mode)。a: 在光标之后插入文本。
A: 在当前行尾插入文本。移动至光标所在单词的最后一个字母。
y: 复制文本。
p: 粘提文本。
注:CTRL-V进入视图模式(Visual mode),移动光标将从光标起始位置选中文本。之后可以进行以上两个命令的操作。R: 进入替换模式(Replace mode),直至按<ESC>终止。
:set xxx: 设置可选项"xxx"。
例如:
'ic' == 'ignorecase': 查找时,忽视字符的大小写。
'is' == 'incsearch': 查找单词时,选中匹配单词。不打开该模式时,查找必须等待<ENTER>才能锁定到匹配结果。:set noxxx: 关闭6节中的相关设置。
第七课总结
:help或者<F1>或者<HELP>: 在新窗口打开帮助文档。
注:<F1>可能在系统中存在冲突,deepin os在终端中按下弹出的是终端的帮助文件。<HELP>多数键盘并没有这个按键。:help cmd: 查找cmd命令的帮助文档。
CTRL-W CTRL-W(两次): vim从一个窗口切换到另一个窗口。
:q: 关闭帮助文档,该操作与之前关闭文档的操作相同。
vimrc文件是vim的配置文件,对vim进行个性化设置在本文件中进行。
: commad, 按CTRL-D查看全部可补全命令。按<TAB>可切换补全命令。
以上为最基本的vim相关命令,进一步学习前可以对vimtutor多练习练习,并熟练掌握。
不得不说,学习vim到现在,我依然觉得sublime更顺手一些。看来vim的学习曲线的确不是虚的,各位加油!