第一讲 编辑
1.1 移动光标
使用 h、j、k、l 键可以使光标实现左、下、上、右的移动。
也可以使用 ↑ ↓ ← → 进行上下左右的移动。
1.2 VIM的进入和退出
进入:vim 文件名
退出:按Esc键进入正常模式,之后按:进入末行模式,:q!<回车>强制退出
1.3 文本编辑之删除
将光标移至错误字符上,之后按 x 键删除光标处字符。
删除错误字符后如图:
1.4 文本编辑之插入
进入插入模式:
在正常模式下,将光标移动至需要插入文本的位置,按 i 键进入插入模式,在光标前插入文本。
插入文本字符后:
1.5 文本编辑之添加
行尾添加:
正常模式下,按 A 键进入插入模式,行尾插入。
添加后如图:
1.6 编辑文件
编辑文件后使用 :wq 保存并退出。 使用 :q! 是强制退出,不保存编辑内容。
1.7 第一讲小结
-
光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。 h (左移) j (下行) k (上行) l (右移)
-
欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>
-
欲退出 Vim 编辑器,请输入 :q! <回车> 放弃所有改动。 或者输入 :wq <回车> 保存改动。
-
在正常模式下删除光标所在位置的字符,请按: x
-
欲插入或添加文本,请输入:
i 输入欲插入文本, 在光标前插入文本
A 输入欲添加文本, 在一行后添加文本
-
按下< ESC> 键会回到正常模式或者撤消一个不想输入或部分完整的命令。
第二讲 删除
2.1 删除类命令
输入 dw 可以从光标处删除至一个单词的末尾。
删除后:
2.2 更多删除类命令
输入 d$ 从当前光标删除到行末(包含光标处字符)。
删除后:
2.3 关于命令和对象
d 的删除命令格式:
d motion
动作列表:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。
2.4 使用计数指定动作
正常模式下,
- w 使光标向后移动一个单词,按 2w 使光标向后移动两个单词。
- 按 e 使光标向后移动到下一个单词末尾,按 3e 使光标向后移动到第三个单词的末尾。
- 按 0 (数字零) 移动光标到行首。
2.5 使用计数以删除更多
使用计数删除,命令格式:
d number(数字) motion
d2w 删除相邻的2个单词; d3w 删除相邻的3个单词。
删除后:
2.6 操作整行
整行删除:
- dd 删除所在行。
- 2dd删除连续两行。
- 8dd删除连续八行。依次类推。
删除后:
2.7 撤消类命令
按 u 撤消最后执行的(一次)命令。
按 U 撤消对整行的修改。
CTRL-R,重做被撤消的命令,也就是撤消掉撤消命令。
使用 x 修改后的语句:
使用 U 撤销对该行的修改,恢复到该行的原始状态。
2.8 第二讲小结
-
欲从当前光标删除至下一个单词,请输入:dw
-
欲从当前光标删除至当前行末尾,请输入:d$
-
欲删除整行,请输入:dd
-
欲重复一个动作,请在它前面加上一个数字:2w
-
在正常模式下修改命令的格式是:
operator [number] motion其中:
operator - 操作符,代表要做的事情,比如 d 代表删除。
[number] - 可以附加的数字,代表动作重复的次数。
motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),$ 代表行末等等。
-
欲移动光标到行首,请按数字0键:0
-
欲撤消以前的操作,请输入:u (小写的u) 欲撤消在一行中所做的改动,请输入:U (大写的U) 欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R
第三讲 更改
3.1 置入类命令
正常模式下,
输入 dd 将该行删除,这样会将该行保存到 Vim 的一个寄存器中。
输入 p 将最后一次删除的内容置入光标之后。
使用 dd 和 p 修正后的语序:
3.2 替换类命令
使用 r 键和一个字符替换光标所在位置的字符,每次替换单个字符。
替换后如图:
3.3 更改类命令
使用 ce 或 cw,从光标处修改文本直到一个单词的末尾。
修改后如图:
3.4 使用c更改更多
操作格式:
c [number] motion
使用 c$ 修改至行尾。
修改后如图:
3.5 第三讲小结
-
要重新置入已经删除的文本内容,请按小写字母 p 键。该操作可以将已删除 的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置 于当前光标所在行的下一行。
-
要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字 符即可。
-
更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。 比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当 前光标到行末的内容。
-
更改类命令的格式是:
c [number] motion
第四讲 查找替换
4.1 定位及文件状态
CTRL-G:显示当前编辑文件中当前光标所在位置,以及文件状态信息。
G:跳到文件最后一行。
gg:跳到文件第一行。
3G:跳到文件的第三行。
4.2 搜索类命令
正常模式下,
/字符串 —— 按回车后可以搜索相应字符串。匹配到的字符串会高亮显示。
n —— 向下匹配。
N —— 向上匹配。
搜索到的字符串会高亮显示:
4.3 配对括号的查找
将光标放在任何一个 (、[ 或 { 处,之后按 % 可以查找到配对的括号。
4.4 替换命令
操作格式:
:[range] s/{pattern}/{string}/[flags]
- range 表示范围,比如:10,20 表示10-20行,%表示全部。
:1,10 s/AB/CD/g //替换1-10行
:% s/AB/CD/g //替换全部
-
pattern 是要替换的模式,string是替换后的文本
-
flags替换标志位
- g (global)表示全局范围内执行。不加g则只替换每行第一个匹配项。
- i 忽略大小写。
- c (confirm)表示确认,可以确认或者拒绝修改。
- n (number)报告匹配到的次数不做替换。
替换后如图:
4.5 第四讲小结
-
CTRL-G 用于显示当前光标所在位置和文件状态信息。
G 用于将光标跳转至文件最后一行。
先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。
gg 用于将光标跳转至文件第一行。
-
输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。
CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。
-
如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。
-
在一行内替换头一个字符串 old 为新的字符串 new,输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 标志 :%s/old/new/gc
第五讲
5.1 在 VIM 内执行外部命令的方法
输入 :! command,可以执行该外部命令。
输入:!ls,按回车后会列出当前目录内容:
输入:!hostname,可以查看主机名:
输入:!date,可以查看当前时间:
5.2 关于保存文件的更多信息
输入 :w FILENAME,可以将对文件的改动保存到另一文件中。
输入:!ls,可以看到目录中多了一个TEST的文件。
输入:!rm TEST,会删除TEST文件。
5.3 一个具有选择性的保存命令
要保存文件的部分内容,请输入 v motion :w FILENAME。
操作步骤:
-
1)按 v 键进入可视化模式
-
2)使用光标选中部分内容
-
3):'<,'>w 文件名,将选中的内容保存到另一文件中。
:'<,'>d,可以删除选中的内容。
5.4 提取和合并文件
要向当前文件中插入另外的文件的内容,请输入 :r FILENAME。
插入结果:
5.5 第五讲小结
-
:!command 用于执行一个外部命令 command。
示例:
:!ls - 用于显示当前目录的内容。
:!rm FILENAME - 用于删除名为 FILENAME 的文件。
-
:w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文 件中。
-
v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件 FILENAME 中。
-
:r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置 后面。
-
:r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。
第六讲
6.1 打开类命令
正常模式下,
按 o 键进入插入模式,在光标下一行插入。
按 O 键进入插入模式,在光标上一行插入。
6.2 附加类命令
正常模式下,
按 a 键将可在光标之后插入文本。
按 i 键将可在光标之前插入文本。
按 A 键将可在行尾插入文本。
插入文本后如图:
6.3 另外一个置换类命令的版本
输入大写的 R 可连续替换多个字符。之后按Esc回到正常模式,再移动光标至另一个单词,按R键修改。
注意: 替换模式与插入模式相似,不过每个输入的字符都会删除一个已有的字符。
6.4 复制粘贴文本
操作步骤:
- 1)按 v 键进入可视化模式,光标选中指定内容后,按 y 键进行复制;
- 2)移动光标到指定位置(按 j$ 可直接移动到下一行的行尾),按 p 键将内容粘贴到光标后方。
复制粘贴后如图:
6.5 设置类命令的选项
搜索时忽略大小:
- 搜索时忽略大小写,输入 :set ic。
- 禁用忽略大小写,输入 :set noic。
搜索后高亮匹配项:
- 高亮匹配项,输入 :set hls 。
- 显示所有匹配项,输入 :set is。
- 移除匹配项的高亮显示,输入 :nohlsearch。
6.6 第六讲小结
-
输入小写的 o 可以在光标下方打开新的一行并进入插入模式。
输入大写的 O 可以在光标上方打开新的一行。
-
输入小写的 a 可以在光标所在位置之后插入文本。
输入大写的 A 可以在光标所在行的行末之后插入文本。
-
e 命令可以使光标移动到单词末尾。
-
操作符 y 复制文本,p 粘贴先前复制的文本。
-
输入大写的 R 将进入替换模式,直至按 键回到正常模式。
-
输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:
ic 或 ignorecase —— 查找时忽略字母大小写
is 或 incsearch —— 查找短语时显示部分匹配
hls 或 hlsearch —— 高亮显示所有的匹配短语
选项名可以用完整版本,也可以用缩略版本。
-
在选项前加上 no 可以关闭选项: :set noic
第七讲
7.1 获取帮助信息
:help <回车> 查看帮助信息
:help w <回车>
:help c_CTRL-D <回车>
:help insert-index <回车>
:help user-manual <回车>
7.2 创建启动脚本
启用 Vim 的特性:
- 1) 开始编辑 vimrc 文件,具体命令取决于您所使用的操作系统,输入 :edit ~/.vimrc
- 2) 接着读取 vimrc 示例文件的内容,输入:r $VIMRUNTIME/vimrc_example.vim
- 3) 保存文件,输入:write
下次启动 Vim 时,编辑器就会有了语法高亮的功能。
7.3 补全功能
使用 CTRL-D 和 < TAB > 可以进行命令行补全。
步骤演示:
- 1)例如输入 :e
- 2)接着按 CTRL-D 键,Vim 会显示以 e 开始的命令的列表。
- 3) 然后按 < TAB > 键,Vim 会补全命令为 :edit 。
7.4 第七讲小结
- 输入 :help 或者按 < F1 > 键或 < Help > 键可以打开帮助窗口。
- 输入 :help cmd 可以找到关于 cmd 命令的帮助。
- 输入 CTRL-W CTRL-W 可以使您在窗口之间跳转。
- 输入 :q 以关闭帮助窗口
- 可以创建一个 vimrc 启动脚本文件用来保存偏好的设置。
- 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。按 < TAB > 可以使用一个补全。