vim - 1
vim-1
1.1 光标移动
命令 | 说明 |
---|---|
h | 光标左移 |
l | 光标右移 |
k | 光标上移 |
j | 光标下移 |
以上命令可以加数量词,表示移动几次
比如:向下移动三行
3j
1.2 按单词移动光标
命令 | 说明 |
---|---|
w | 下一个单词词首 |
W | 同上,以空白分隔为单词标记 |
b | 前一个单词词首,如果光标不在当前词首,则跳到当前单词词首 |
B | 同上,以空白分隔为单词标记 |
e | 下一个单词词尾,如果光标不在当前词尾,则跳到当前单词词尾 |
E | 同上,以空白分隔为单词标记 |
ge | 前一个单词词尾 |
gE | 同上,以空白分隔为单词标记 |
同样这些命令也支持数量词,可以移动n次。
1.3 行内移动
命令 | 说明 |
---|---|
^ | 行首第一个非空白字符 |
0 | 行首 |
$ | 行尾 |
fx | 光标位置向右查找x字符,找到光标跳到x字符 |
Fx | 光标位置向左查找x字符,找到光标跳到x字符 |
tx | 光标位置向右查找x字符,找到光标跳到x字符的前一个字符位置 |
Tx | 光标位置向左查找x字符,找到光标跳到x字符的前一个字符位置 |
fx, Fx, tx, Tx
支持继续查找和反向查找,;
继续查找, ,
反向查找, 同时这些命令也支持数量词,表示执行n次。
1.4 括号匹配移动
命令 | 说明 |
---|---|
% | 在([{}]) 上匹配移动 |
比如:
int main() { # 光标放在这个大括号上,按%跳到匹配的大括号上
printf("hello")
}
1.5 多行移动
命令 | 说明 |
---|---|
nG | 光标跳到第n行 |
G | 光标跳到最后一行 |
gg | 光标跳到第一行 |
n% | 光标跳到百分之n行 |
:n | 光标跳到第n行 |
H | 光标在当前屏幕中移动到首行 |
M | 光标在当前屏幕中移动到中行 |
L | 光标在当前屏幕中移动到尾行 |
其它相关操作:
ctrl + g
显示当前文件名,总行数和当前位置信息
:set ruler
, :set noruler
在状态栏位置显示或隐藏当前行号、光标位置等信息
:set number
, :set nonumber
显示或隐藏行号
1.6 翻页
就是滚屏,我习惯叫翻页。
命令 | 说明 |
---|---|
ctrl + d | 向前翻半页 |
ctrl + u | 往回翻半页 |
ctrl + f | 向前翻一页 |
ctrl + b | 往回翻一页 |
ctrl + e | 向上滚一行 |
ctrl + y | 向下滚一行 |
其它操作:
命令 | 说明 |
---|---|
zt | 光标所在行移到屏幕首行 |
zb | 光标所在行移到屏幕尾行 |
zz | 光标所在行移到屏幕中间行 |
1.7 全文查找
命令 | 说明 |
---|---|
/字符串 | 向下查找字符串,光标跳到字符串首字母 |
?字符串 | 向上查找字符串,光标跳到字符串首字母 |
n | 继续查找下一个 |
N | 反向查找上一个 |
* | 向下查找光标所在的单词(完整单词), g* 查找部分单词 |
# | 向上查找光标所在的单词(完整单词),g# 查找部分单词 |
这里说的完整单词和部分单词: the
是一个单独的,完整的单词,而they
中也含有the
,但只是字符串的一部分,并不是完整一个单词。
特殊字符串:
对于.*[]^%/\~?$
字符有特殊意义,查找他们需要进行转义,比如查找.
/\.
查找单词:
查找单词,而不是某个单词的一部分,需要指定单词边界:
/\<单词\>
忽略大小写:
:set ignorecase # 开启
:set noignorecase # 关闭
查找第n个单词:
n/word
命令历史:
# 在输入/的时候 ,可以按上下光标键可以查找以前输入过的单词
# 在命令中也适合,输入: 之后就可以按上下光标键查找以前输入过的单词
高亮匹配:
查找到的单词,以高亮显示
:set hlsearch # 开启
:set nohlsearch # 关闭
输入过程开始匹配:
不用输入完就开始匹配
:set incsearch # 开启
:set noincsearch # 关闭
1.8 正则查找
这里列举几个简单的,后期再整理:
命令 | 说明 |
---|---|
/^string | 查找以string开头的行 |
/string$ | 查找以string结尾的行 |
/a.b | 查找a中间是任意字符,后面跟一个 b |
.
表示任意字符,如果要查找字符点,需要转义 \.
1.9 标记跳转
命令 | 说明 |
---|---|
`` | 回到原来的位置,比如10G,之后回到原来的位置 |
`. | 打开文件后,上次最后修改的位置 |
`" | 打开文件后,上次最后跳转的位置 |
`a | 跳到自定义a的位置 |
ctrl + o | 跳到一个较老的位置 |
ctrl + i | 与上面相反,往回跳,跳到一个较新的位置 |
ctrl+o
与ctrl+i
是按列表跳的,在跳转过程中(行内的跳转或用jk移动的不算),会自动记录一个跳转列表,编号1,2,3…… 它们按这个顺序跳。
可以按:jumps
显示列表
自定义标记:
先跳到需要的行,之后输入mx
, x是大小写字母。
可以用:marks
查看所有标记,或用 :marks x
查看x所在的行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)