gvim操作笔记

本文详细介绍了Vim编辑器的各种高效操作,包括文本替换、行跳转、折叠代码、批量注释、文件比较和缩进调整等。通过掌握这些技巧,能大幅提升代码编辑和管理的效率。此外,还提到了如何在.vimrc文件中设置快捷键,以及使用gf、:sort等命令进行文件跳转和文本排序。Vim的这些高级功能使得开发者能够更加流畅地进行代码编辑和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gg:到顶部   GG:到底部
进入编辑模式:i
删除选中内容:d

替换

全文替换:(by 彬)(有:):%s/x1/x2/g;即全文x1被替换为x2,g:代表全文
局部替换n1,n2s/x1/x2/g;用x2替换n1到n2行的x1;
s 命令来替换字符串
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行

多文件替换
实际上只要如下两个命令即可(假设要将当前目录下所有扩展名为.txt/.cpp的文件中的hate替换成love):
:args *.txt *.cpp
:argdo %s/hate/love/gc | update


操作类:

GVIM:
撤销:normal模式下 :u
gg:到顶部
*:选中这个单词


使用下面命令在指定的行首添加注释
:起始行号,结束行号s/^/注释符/g
取消注释:
:起始行号,结束行号s/^注释符//g

例子:
在10 - 20行添加 // 注释
:10,50s#^#//#g

在10 - 20行删除 // 注释
:10,20s#^//##g

批量注释或插入字符:(by yunis)
1. 先把光标放在要插入字符的位置,ctr+V:进入列操作;
2. 移动方向键,选中列
3. shift+i:插入//或字符
4. 按esc退出

比较ab两个文件的不同:gvimdiff a.sv b.sv

//XXX{{{.....//}}} 或者 //{{{XXX.....//}}}
zo(先把光标放到想看的地方,再直接输入)打开,zc折叠

要在.vimrc文件中加入下面这一行,上面这些操作才会有效;

:set foldmethod=marker

折叠参考: vim 折叠的用法 - 阿笨猫 - 博客园 (cnblogs.com)https://www.cnblogs.com/xuxm2007/archive/2011/11/10/2244418.html

VIM学习笔记 折叠 (Fold) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/27473875

在vim中有3中方法可以跳转到指定行(首先按esc进入命令行模式):
1、ngg/nG (跳转到文件第n行,无需回车)
2、:n (跳转到文件第n行,需要回车)

marker折叠方式时,我们需要用标计来标识代码的折叠,系统默认是{{{和}}}
zf 创建折叠,比如在marker方式下:
        zf56G,创建从当前行起到56行的代码折叠;
        10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。
        10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。
        在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
zd  删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

批量删除
按一下ESC键,确保退出编辑模式
按一下 :冒号键,(shift + ;)就可以输入 :冒号了。
然后输入 1,$d
:1,19d

输入以下命令,如删除文件中每一行中第一个|符号
:%s/|

复制
1)单行复制
在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;
2)多行复制 在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为1、2、3……
【yy】 复制光标所在的那一行
【nyy】 复制光标所在的向下n行
2、粘贴
在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴
【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴

2021.7.4

删除包含AAA的行:g/AAA/d;

删除不含BBB的行:v/BBB/d;

批量缩进:

:1,99<    # 1~99行向缩进一个tab,输入2个<<可以缩进2个tab间隔

:1,99   # 1~99行向缩进一个tab

大小写切换:选中字符串,u:都切换为小写; U:都切换为大写;

打开目录:命令模式下:E

分屏:命令模式下:vsp

gvimdiff比较两个文件后,切换水平方向垂直方向 :

:windo wincmd K  切换到水平分屏;

:windo wincmd H  切换到垂直分屏;


快捷键设置:(在.vimrc文件里面设置)

快速注释一行(ctrl+m):map   ^M   I//<ESC> 

(^:同时ctrl+v+m输入)


命令模式下:追踪文件:gf;回退到上一层:bd;回退到起始点:bf;

bp:回到上一个文件;bn:去到下一个文件


关闭当前分屏:ctrl+w c

关闭所有分屏,只保留当前分屏:only

shell下,分屏打开文件:

vim -on file1 file2             水平分割(默认horizontal)

vim -On file1 file2            垂直分割(vertical)


vim自动排版:

1. 按“V”或者“shift+v”进入可视行模式,选择要排版的内容。

2. 按“=”进行自动排版。


vim文件跳转: (参考公众号:集成电路设计及EDA教程)

gf

在当前窗口中打开该文件    

ctrl+w  f

以分屏模式打开该文件(水平分屏)

ctrl+w  gf

在新的tab中打开该文件(详细的Tab的用法之后会讲解)

bf回退到最开始的那个文件
ctrl+o回退一次;

在其中一个Tab下输入:tabc即可关闭该Tab


代码块跳转:

区块主要包含()、[]、 {}、 #if、 /**/之间的跳转。 

这些符号都是成对出现的,要在相匹配的符号对之间跳转可以直接用%即可。 

在(处按%就会跳转到对应的)处,非常适合查找括号是否配对。反之,从)处按%键可以跳回对应的(处。 


光标跳转:跳转距离+方向键

光标向下移动多行,比如80行:80↓

快速跳转到行首/

光标移动到行首

^(移动到行首第一个非空白字符) 

0或者Home键(移动到行首)

光标移动到行尾

$或者End键


排序

对文本内容排序:sort;

应用场景:方便debug;

参考:VIM学习笔记 文本排序(sort) - 知乎 (zhihu.com)

使用以下命令,将按照数字进行排序:

:%sort n

组合以上命令,则可以按照数字倒序排序:

:%sort! n

使用以下命令,可以针对指定行范围内的文本进行排序:

:3,16sort

在可视化模式下选中文本,然后执行以下命令可以对选择的文本进行排序:

:'<,'>sort

使用以下命令,将在排序时去除重复的行。对于重复的多行,将仅仅保留第一行,而其它的行将被删除。

:%sort u

 使用以下命令,可以针对所有文本进行倒序排序:

:%sort!

统计某些匹配到的关键词个数:%(有一个空格)s/match_word/gn


打开gvim的历史命令:

普通模式下:
q/ 查看使用/输入的搜索历史
q? 查看使用?输入的搜索历史
q: 查看命令行历史 


列示图打开:两个文件

gvim -O(字母O,小写水平示图) file1  file2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值