博客主页:https://tomcat.blog.csdn.net
博主昵称:农民工老王
主要领域:Java、Linux、K8S
期待大家的关注💖点赞👍收藏⭐留言💬
目录
- 模式介绍
- 指令概览
- 启动退出
- 移动光标
- 插入
- 删除
- 复制
- 替换
- 撤销
- 搜索
- 信息
- 设置
- 外部命令
- 技巧
模式介绍
Vim有以下四种主要模式:
- 正常(normal)模式(也称为普通模式),缺省的编辑模式;如果不加特殊说明,一般提到的命令都直接在正常模式下输入;在任何其他模式中,都可以通过键盘上的Esc键回到正常模式。
- 插入(insert)模式,输入文本时使用;比如在正常模式下键入 i(insert)或 a(append)即可进入插入模式。
- 可视(visual)模式,用于选定文本块;教程中已经提到可以用键v(小写)来按字符选定,Vim里也提供其他不同的选定方法,包括按行和按列块。
- 命令行(command-line)模式,用于执行较长、较复杂的命令;在正常模式下键入冒号(:)即可进入该模式;使用斜杠(/)和问号(?)开始搜索也算作命令行模式。命令行模式下的命令要输入回车键( Enter)才算完成.
按下 ESC 键会带您回到正常模式或者撤消一个不想输入或部分完整的命令。
此外,Vim也有个选择(select)模式,与普通的Windows编辑器行为较为接近,选择内容后再输入任何内容,将会替换选择的内容。在以可视模式和选择模式之一选定文本块之后,可以使用Ctrl-G切换到另一模式。这个模式主要是为了模拟 Windows 编辑器的行为,并不是Vim的主要用法,使用它反而会给Vim里的自动化带来麻烦,所以我们也就不多作介绍了。
指令概览
基础指令
完全指令
启动退出
- 进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>
- 退出 Vim 编辑器,请输入
:q!
<回车> 放弃所有改动。或者输入:wq
<回车> 保存改动。
移动光标
h
:左移
j
:下行
k
:上行
l
:右移
0
(数字零): 移动光标到行首。- 数字+w:如
2w
,使光标右移两个单词,以单词后的空格为计数的标准,计数包括光标本身的单词,光标将停在目标单词的第一个字符。
- 数字+e:如
2e
,使光标右移两个单词,以单词本身为计数的标准,计数包括光标本身的单词,光标将停在目标单词的最后一个字符。
G
:可以使得当前光标直接跳转到文件最后一行。
gg
:光标直接跳转到文件第一行。
%
:查找配对的括号,包含( )、[ ]、{ }。
插入
i
:在光标所在字符前开始插入
a
:在光标所在字符后开始插入
o
:在光标所在行的下面另起一新行插入
s
:删除光标所在的字符并开始插入
I
:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A
:在光标所在你行的行尾开始插入
O
:在光标所在行的上面另起一行开始插入
S
:删除光标所在行并开始插入
删除
以下所有删除实际上是剪切,删除的内容会被存储在剪切板中。可以通过p进行粘贴。
x
:删除光标所在位置的字符
de
:删除 [ 光标所在位置,光标所在单词的最后一个字符)
dw
:删除 [ 光标所在位置,下一个单词的第一个字符)
d$
:删除 [ 光标所在位置,本行最后一个字符]
dd
:删除该行。
cw
/ ce
:删除 [ 光标所在位置,光标所在单词的最后一个字符),然后在光标所在位置进入编辑模式。
c$
:删除 [ 光标所在位置,本行最后一个字符],然后在光标所在位置进入编辑模式。
复制
按v进入可视模式。
移动光标,以选中需要复制的文本。
按y复制。
将光标移动到目标位置
按p粘贴
替换
r
:替换光标所在字符,输入替换后的字符后,立刻退出编辑模式。
R
:替换光标所在字符,输入替换后的字符后,光标向右移动一个位置,准备替换下一个字符,按才退出替换的状态。
: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
:会找到整个文件中的每个匹配串,并且对每个匹配串,提示是否进行替换。
撤销
u
(小写的u):撤消以前的操作。
U
(大写的U):撤消在一行中所做的改动。
CTRL-R
:撤消以前的撤消命令,恢复以前的操作结果。
搜索
- 在正常模式下输入
/
字符。您此时会注意到该字符和光标都会出现在屏幕底部,这跟 : 命令是一样的。 - 接着输入 待查找的字符串,然后按回车键。
- 按
n
键查找下一个。按N
查找上一个。 - 如果您想逆向查找字符串,请使用
?
代替/
进行。
信息
CTRL-G
:显示当前编辑文件中当前光标所在行位置以及文件状态信息。
设置
set number
: 显示行号,可简写为set nu
。
set nonumber
:关闭行号,可简写为 set nonu
。
set list
:把制表符显示为^I ,用$标示行尾。
set readonly
:设置只读。
set tabstop=4
:设置 tab space 为4个空格,可简写为set ts=4
,此处的4可以换为任意正整数。
外部命令
输入!
然后紧接着输入一个外部命令可以执行该外部命令。
技巧
Vim的行内编辑可以归纳为[n]at
- [n]是可选的量词,表示处理对象的数量。
- a表示action,可以是c(change),y(yank),d(delete)。
- t表示target,可以是w(word),e(end),$(行尾),0(行首)。
- c是change,执行c动作后会进入编辑模式,d是delete,执行d动作后不会进入编辑模式,注意二者区别,灵活使用。
- w和e的区别在于如何处理空格,w把空格当做当前word的一部分,e则不处理空格。
- 关于word间空格的一个例外是,c不处理,所以cw和ce是一样的,而y,d则会处理空格,所以yw,ye,或dw,de不一样。
- W或E则表示在action处理时包括标点。
如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。