Vim-vimtutor学习整理

在了解到Vim编辑器的强大的功能后,对于喜爱键盘想要摆脱鼠标的我来说是一个非常大的诱惑。而Vim自带的vimtutor无疑是一个入门的非常好的教程,该教程适合边学边用,很快就能了解最基本的Vim编辑器操作。本文将整理摘录vimtutor中的前六章内容,方便查阅。

第一讲

1.1 移动光标

在正常模式(Normal)下(使用键可以进入正常模式),使用h j k l键进行光标的移动,刚开始觉得这个设定极为反人类,但熟练其操作后会发现这个设定极为巧妙,能更快第在屏幕内四处移动光标。
h: 光标向左移动;
l: 光标向右移动;
j: 光标向下移动;
k: 光标向上移动.

1.2 VIM的进入和退出

在 Normal 模式下,
:q! : 退出编辑器,这种方式将会丢弃所有未写入的改动。
wq: 保存文件并退出。

1.3 文本编辑

在 Normal 模式下,
x: 删除光标所在位置的字符;
i: 在光标所在位置之前插入字符;
a: 在光标所在位置之后插入字符;
A: 在光标所在行末尾插入字符。

第二讲

2.1 动作

动作列表

w: 从当前光标位置移动到下一个单词起始处,不包括它的第一个字符;
e: 从当前光标位置移动到单词末尾,包括最后一个字符;
$: 从当前光标位置移动到当前行末。

计数指定动作

  1. 在动作前输入数字会使该动作重复多次,e.g. :
  • 2w 将光标向后移动两个单词
  • 3e 使光标移向后移动到第三个单词末尾
  1. 0:移动光标到行首

2.2 删除类命令

改变文本的命令通常由一个操作符和一个动作构成:

operator [number] motion
  • operator 操作符
  • [number] 可选操作,附加数字表示动作重复次数
  • motion 动作,表示在所操作的文本上的移动
    例如删除类命令:
d [number] motion
  • d 删除操作符
    dw: 删除至下一个单词起始处,不包括下一个单词的第一个字符;
    de: 删除至当前单词末尾,包括最后一个字符;
    d$: 删除至当前行末尾;
    删除命令也可以搭配计数删除更多。
    dd: 删除当前行;
    dd 命令同样可以在之前插入数字进行计数删除多行。

2.3 撤销类命令

u: 撤销最后执行的命令;
U: 撤销对整行的修改。
CTRL-R: 撤销以前的撤销命令,恢复之前的操作结果

第三讲

3.1 插入类命令

p: 将最后一次删除的内容插入当前光标之后

3.2 替换类命令

r_: 输入 r 和一个字符替换光标所在位置的字符

3.3 更改类命令

c [number] motion
  • c 操作符
    cw: 更改文本直到该单词末尾;
    ce: 更改文本直到下一单词开始;
    c$: 更改文本直到行末。
    更改命令执行后直接进入 insert 模式。

第四讲

4.1 定位及文件状态

CTRL-g/G: 显示当前编辑文件中当前光标所在行位置以及文件状态信息;
G: 光标跳转到文件最后一行;
gg: 光标跳转到文件第一行;
G+number: 光标跳转到number表示的行号。

4.2 搜索类命令

/+string: 正向查找string表示的字符串;
?+string: 逆向查找string表示的字符串;
CTRL-O:回到前一个位置;
CTRL-I: 恢复到新的位置。

4.3 配对括号的查找

使用%可查找匹配对的括号) \ ] \ }
将光标移动到左括号处,按下%,光标将跳转到匹配的右括号处,再按下一次可跳回原来的左括号处。
(这对程序员来说真是个福音~)

4.4 替换命令

:s/old/new: 在光标所在行第一次出现的 old 表示的字符串替换为新的字符串 new ;
:s/old/new/g: 在光标所在行替换所有出现的 old 所表示的字符串替换为新的字符串 new ;
:#,#s/old/new/g: 在两行内替换所有的字符串 old 为新的字符串 new ;
:%s/old/new/g: 在文件内替换所有的字符串 old 为新的字符串 new ;
:%s/old/new/gc: 进行全文替换时询问用户确认每个替换。

第五讲

5.1 在VIM内部执行外部命令

:!+command: 执行command所代表的外部命令

5.2 保存文件

:w FILENAME: 将对文件的改动保存到一个文件中;
v motion: w FILENAME: 将文件的部分内容保存到文件中:
v 进入可视模式(Visual), motion 表示光标的移动,可选中文本,按下:后下方将出现'<,'>,输入w FILENAME将选中的文本保存在文件FILENAME中。可视选中后同样也可以进行批量删除操作。

5.3 提取合并文件

:r FILENAME: 提取磁盘文件 FILENAME 并将其插入到当前文件光标当前位置后;
:r !command: 读取command命令的输出插入到当前文件光标当前位置后。

第六讲

6.1 打开类命令

o: 在光标当前行下方创建新的一行,并进入插入模式;
O: 在光标当前行上方创建新的一行,并进入插入模式。

6.2 置换类命令

R: 连续替换多个字符,与插入模式类似,不过每个输入的字符会替代光标当前字符,与键盘使用了 insert 键进入改写模式的情况类似。

6.3 复制粘贴文本

进入 Visual 模式,
使用y进行复制,使用p进行粘贴

文本编辑部分整理至此。

顺便推荐一个网站:VIM Adventures,这是一个用VIM操作来进行的游戏,不过免费版只能练习最基本的移动操作~

参考资料

  • vimtutor

本文首发于个人博客Vim-vimtutor学习整理 | 不存在的貓,转载请注明出处

你可能感兴趣的:(Vim-vimtutor学习整理)