Vim使用方法
Awwwwww 😃
以下是关于使用vim和Powervim的一些技巧,熟能生巧,加油!
vim中的复制/移动/删除
方法1:复制或者移动一些行
- :17,33 copy 35 或者 :17,33 co 35
- :17,33 move35 或者 :17,33 m 35
方法2:全选复制或者删除
- 全部删除:按esc后,然后dG
- 全部复制:按esc后,然后ggyG
- 全选高亮显示:按esc后,然后ggvG或者ggVG
方法3:删除
- 删除光标所指的这一行:dd
- 删除光标之下的n行:ndd
- 删除光标之后的这行字符:D 或者 dw
- 删除两行:d+回车
行首行尾,第一行,末行
- 行首:数字0 或者 shift+^6 即 ‘^’符号 或者 Home键
- 行尾:shift+$4 即 ‘$’符号 或者 End键 ,$前面可以加行数
- 第一行:gg 或者 :0+回车
- 最后一行:shift+g 或者 G 或者 :$+回车
查找和替换
查找目标词
- normal模式下按下 / 即可进入查找模式,输入要查找的字符串并按下回车
- vim 会转跳到第一个匹配的
- 之后按n查找下一个,按N查找上一个
- 注意:查找回车应当用\n,而替换为回车应当用\r
- 大小写敏感
- 大小写不敏感查找 \小c
/myListNode\c
- 大小写敏感查找 \大C
/myListNode\C
- 大小写不敏感查找 \小c
查找光标所在的词
normal模式下按下 * 即可查找光标所在单词(word), 要求每次出现的前后为空白字符或标点符号。
这对变量查找非常有用。
替换 substitute
语法为
:{作用范围}s/{目标}/{替换}/{替换标志}
作用范围说明
作用范围可以大致分为当前行,全文,希望选中的区域
当前行
:s
全文
:%s
比如说想要在第2-7行中操作,作用范围设为
:2,12s
当前行与接下来两行
:.,2s
选区,在Visual模式下选择区域后输入:,Vim即可自动补全为 :'<,'>
:'<,'>s
替换标志说明
比如说可能有全局替换,替换匹配的第一个,大小写敏感,替换前确认...
- 默认空替换标志,表示只替换从光标开始目标的第一次出现
:%s/foo/bar
- 大小写敏感(不敏感)
/i
or/I
:%s/foo/bar/i
# 等效于模式中的 \c(不敏感)或\C(敏感)
:%s/foo\c/bar
- 替换前确认 用
/c
例如全局查找"index"替换为"Index"并且需要确认:
:%s/index/Index/gc
按下回车后Vim会将光标移动到每一次"index"出现的位置,并提示
replace with Index (y/n/a/q/l/^E/^Y)?
符号解释:
- y表示替换
- n表示不替换
- a表示替换所有
- q表示退出查找模式
- l表示替换当前位置并退出
- E和L是光标移动快捷键 ???
Vim 的 visual mode 使用
三种可视化模式
-
按下
v
进入字符可视化模式,即文本选择是以字符为单位的。 -
按下
V
进入行可视化模式,即文本选择是以行为单位的。 -
按下
ctrl + v
进入块可视化模式, 按键j/k/h/l进行选中多行多列,一个矩形内的文本
多行缩进或者缩出
- 在一行上,">>",或"<<"(连按两下),可以缩进或缩出,用"n>>","n<<"(n自然数),表示自动缩进从当前行起的下面n行。
- 在visual mode下选中多行,用“>或<”,进行缩进或缩出
- 或者使用命令
:起始行,终止行 < ”
例如 :112,119 >
表示112到119行向右缩进一个tab。
自动缩进排版代码
- 对全文
gg=G
- 对光标所在行
==
- 对多行
n==
多行注释
添加多行注释步骤
- 首先按esc进入命令行模式下,按下
Ctrl + v
,进入块模式; - 按0键光标移动到行首后, 选择需要注释的多行;
- 按下键盘(大写)“I” - input键,进入插入模式;
- 然后输入注释符(“//”、“#”等);
- 最后按下“Esc”键。(p.s.在按下esc键后,会稍等一会才会出现注释)
删除多行注释步骤
- 首先按esc进入命令行模式下,按下
Ctrl + v
, 进入块模式; - 按0键光标移动到行首,选择要取消注释的多行;
- 按下“d”。
p.s. 如果是“//”注释,需要执行两次该(删除多行注释步骤)操作,如果是“#”注释,一次即可
撤销上一步操作
按 u
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~