你现在已经学会了控制光标、打开文件、切换文件、并在文件中查找内容,这些操作都是在 vim 的 normal 模式下进行的。现在,是时候进入 vim 的另外一种模式 —— insert 模式,学习一下如何修改文件了。
插入
i
当前字符前插入a
当前字符后插入I
行首插入A
行尾插入o
在下一行插入O
在上一行插入
注意:以上任何一个命令都会使 VIM 进入 insert 模式,进入该模式后光标会发生变化,这时输入的 文字会直接出现在文档中,按 Esc
键或 Ctrl-[
或 Ctrl-C
退出 insert 模式。
删除(并保存到 VIM 剪贴板)
s
删除当前字符,并进入INSERT
模式S
删除当前行并保存到 VIM 剪贴板,同时进入INSERT
模式(等同于cc
)x
删除当前字符,相当于 insert 模式下的Delete
X
删除前一个字符,相当于 insert 模式下的Backspace
dd
删除当前行,并将删除的内容保存到 VIM 剪贴板d<X>
删除指定内容并保存到 VIM 剪贴板cc
删除当前行并保存到 VIM 剪贴板,同时进入INSERT
模式c<X>
删除指定内容并保存到 VIM 剪贴板,同时进入INSERT
模式
说明: `` 部分是对操作内容的描述,如果要删除一个单词,就输入 dw
或者 de
,要复制当前 位置到行尾的内容,就输入 y$
,要删除后面 3 个字符并插入,就输入 c3l
诸如此类。
复制
yy
复制当前行到 VIM 剪贴板y<X>
复制指定内容到 VIM 剪贴板
粘贴
p
在当前位置后粘贴P
在当前位置前粘贴
合并
J
将当前行与下一行合并
尝试在下面的文本中进行复制粘贴练习
删除这一行
粘贴到这一行下面
剪切 ABC 并把它粘贴到 XYZ 前面,使这部分内容看起来像
剪切 并把它粘贴到 ABC XYZ 前面。
替换
r<X>
将当前字符替换为 Xgu<X>
将指定的文本转换为小写gU<X>
将指定的文本转换为大写:%s/<search>/<replace>/
查找 search 内容并替换为 replace 内容
尝试修改下列文本的大小写
Change this line to UPPERCASE, THEN TO lowercase.
还有个更好玩的命令
g~<X>
,先将光标定位到上面那行文本,执行0g~$
看看发生了什么。
撤销、重做
u
撤销Ctrl-r
重做
保存文件
:w
保存当前文件:wa
保存全部文件:wq
orZZ
保存并退出:q!
orZQ
强制退出,不保存:saveas <new filename>
文件另存为:w <new filename>
文件另存一份名为<new filename>
的副本并继续编辑原文件
下一节:“工欲善其事,必先利其器”。尽管 Vim 非常强大,但默认配置的 Vim 看起来还是比较朴素的,为了适合 我们的开发需求,要对 Vim 进行一些简单的配置。