前言
能够查看官方文档的,请以官方文档为准。
终端中使用
$ vimtutor
即可阅读官方教程,本文所有内容全部来自该教程,方便我不时阅读巩固。
Vim光标移动、插入和退出
光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h
(左移)j
(下行)k
(上行)l
(右移)欲进入 Vim 编辑器(从命令行提示符),请输入
vim 文件名
<回车>
-
欲退出 Vim 编辑器
- 请输入 <ESC>
:q!
<回车>
放弃所有改动。 - 或者输入 <ESC>
:wq
<回车>
保存改动。
- 请输入 <ESC>
在正常模式下删除光标所在位置的字符,请按
x
-
欲插入或添加文本,请输入:
- i 输入欲插入文本 <ESC> 在光标前插入文本
- A 输入欲添加文本 <ESC> 在一行后添加文本
- a 输入欲插入文本 <ESC> 在光标后插入文本
特别提示:按下 <ESC> 键会带您回到正常模式或者撤消一个不想输入或部分完整
的命令。
移动、删除类命令
- 欲从当前光标删除至下一个单词,请输入
dw
- 欲从当前光标删除至当前行末尾,请输入
d$
- 欲删除整行,请输入
dd
- 欲重复一个动作,请在它前面加上一个数字
2w
- 在正常模式下修改命令的格式是:
```vim
operator [number] motion
```
其中:
`operator` - 操作符,代表要做的事情,比如 d 代表删除
`[number]` - 可以附加的数字,代表动作重复的次数
`motion` - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),
`$` - 代表行末等等。
欲移动光标到行首,请按数字0键
0
欲往后移动一个word,请输入w
欲移动到当前单词最有一个字符处,请输入e
欲撤消以前的操作,请输入
u
(小写的u)
欲撤消在一行中所做的改动,请输入U
(大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入CTRL
+R
高级命令
学习完上面的命令,基本上已经可以满足正常的编辑工作。下面的高级命令能够更高效的完成输入工作
置入类命令
p
将上一次删除的内容置入光标之后
替换类命令
r
输入r和一个字符来替换光标所在位置的字符
R
进入连续替换模式
更改类命令
ce
更改文本从当前位置直到单词的末尾
ce
在删除文本的同时,也会进入插入模式
定位命令
G
去到文件最后一行
gg
去到文件第一行
Ctrl
+ g
控制台最下面将显示当前的状态信息,以及光标所在的行号
line
+ g
返回到指定的行号
搜索类命令
/
+ words
在当前文章中搜索该字符串
n
继续往后搜索当前字符串
N
往前搜索当前字符串
?
直接往前搜索字符串
Ctrl
+ o
回到上一个位置
Ctrl
+ i
前进到较新的位置
括号的配对
%
将光标移动到任意的{[()]}
处,按下%
光标会跳到成对的括号处
替换命令
:s/old/new/g
可以替换光标所在行的old为new
最后一个命令g
表示替换该行所有的匹配项,使用gc
表示找到当前行的所有匹配项目,并对每一个匹配项提示是否进行替换。
多行匹配
:#,#s/old/new/g
#,#
代表的是替换操作的若干行中的首尾两行的行号。
:%s/old/new/g
:%s/old/new/gc
新增行
o
将在光标所在行的下方增加一行并进入插入模式
O
大写的'o'将在光标所在行的上方增加一行并进入插入模式
可视化选择命令
v
进入选择模式,移动光标就可以选择你想要的文字
复制命令
y
使用该命令配合v
命令,选择一段文字进行复制,然后移动光标到需要的地方p
粘贴文本
其他命令
执行外部命令
在Vim内部也可以执行外部的shell命令,只需要执行
:!command
补全功能
在:
模式下,输入一个字符
接着按下Ctrl
+D
,Vim会显示 以该字符开始的命令列表
然后按TAB
键,Vim会补全命令
在输入的过程中,只需要不停的尝试
Ctrl
+D
和TAB
组合。
原文见我的博客wluo.me