GVIM边学边用

本文详细介绍了GVIM的基本操作,包括模式配置、文件操作、分屏显示、查找替换、编辑模式、行列操作、快捷键定义、宏录制及正则表达式应用。重点讲解了如何进行文件分屏,如何通过正则表达式进行高效查找和替换,以及如何利用宏录制提高编辑效率。
摘要由CSDN通过智能技术生成

一、介绍

模式

通过ESC在模式间切换。
1.命令模式, 输入:后进入命令模式,可以执行查找等操作
2.普通模式,默认进去是普通模式,可通过y p d等执行复制、粘贴、删除等操作。在此模式下,按V进入可视模式,可以选中字符,ctrl+v可以矩形选择
3.编辑模式,按I i a A O a 均可进入编辑模式

配置

打开 ~/.vimrc

二、操作

1.文件

打开文件

打开文件:终端下面敲 gvim file1
一次性打开多个文件 gvim file1 file2 ... filen,然后 :ls,再 :bn 即可显示序号n的文件

左右分屏打开文件 gvim -On file1 file2 ... filen
上下分屏打开文件 gvim -on file1 file2 ... filen

另存为file :saveas file
放弃对文件的所有修改,恢复文件到上次保存的位置 :e!

分屏

当前文件上下分屏 ctrl + w 再按s ,或 :sp
和同一文件夹下的a.sv比较(上下) :sp ./a.sv: ./ 然后找到a.sv回车打开

当前文件左右分屏 ctrl + w 再按v ,或 :vsp
和同一文件夹下的a.sv比较(左右) :vsp ./a.sv:vsp ./ 然后找到a.sv回车打开

切换分屏: ctrl+w ,再按 h左, l右, j 下, k 上,w 窗口循环切换
ctrl + w H L J K 是上下和左右间移动分屏

关闭当前窗口分屏:ctrl+w,再按 c

向右或向下方交换窗口:Ctrl + w + r 而Ctrl + w + R则和它方向相反。
交换同列或同行的窗口的位置:Ctrl + w + x

显示

分行显示 :set wrap
不分行显示 :set nowrap

对比文件

直接打开两个文件对比 gvim -d file1 file2gvimdiff file1 file2
直接对比两个文件的不同,分别在两个窗口输入 :diffthis
将差异点的当前文档内容合并到另外一个文档 dp
将差异点的另一个文档内容拷贝到当前文档 do
定位到不同点:
跳到前一个不同点 [c
跳到后一个不同点 ]c

2.移动、跳转

光标移动到屏幕中间 zz
光标移动到屏幕中间 zt
光标移动到屏幕底部 zb
查看下一页 crtl+f
查看上一页 ctrl+b

移动到行第一个字符 0 或 键盘Home
移动到行第一个非空白字符 ^
移动到行最后一个字符 $ 或 键盘End

跳到文件首 gg
跳到文件尾 G
跳到特定n行(代码调试常用)nGngg:n
往下跳n行 n+回车
跳到大约N%的位置 N%
跳到匹配的括号 %

跳到视野内顶部 H
跳到视野内中间 M
跳到视野内下面 L

kj
hl
在命令前加上数字代表命令执行次数,如:5k,表示上移5行

3.查找替换、查找删除

查找
查找str /strn找下一个匹配, N找上一个匹配
查找str时不区分大小写 /str\c
替换
全文替换:%s/from/to/g
全文所有行第一次出现的替换 %s/from/to
当前光标所在行替换 :s/from/to/g
m到n行替换 :m,ns/from/to/g
全文替换并且需要确认:%s/from/to/gc
选择可视区域后输入:,自动补全为 :‘<,’>,然后:‘<,’>s/from/to/g

最后一个/
g是global,没有g则只替换行中第一次出现的目标
i大小写不敏感查找
I大小写敏感查找
c需要确认

统计"字符串"在当前编辑文件出现的次数 :%s/字符串//gn
统计m到n行中"字符串"出现的次数 :m,ns/<字符串>//gn

在每行行首添加相同的内容:

[plain] view plain copy
:%s/^/要添加的内容

在每行行尾添加相同的内容:

[plain] view plain copy
:%s/$/要添加的内容

二、利用正则表达式删除代码段每行的行号
[plain] view plain copy
:%s/^\s*[0-9]\s//gc

其中,表示行首,$表示行尾,\s表示空格,[0-9]表示0~9的数字,*表示0或多个,%s/\s*[0-9]\s//gc的意思是将每行以0或多个空格开始中间包含0或多个数字并以0或多个空格结束的字符串替换为空。

4.编辑

插入
光标前 i
光标所在行首 I
光标后 a
光标所在行尾 A
光标所在下一行行首 o
光标所在上一行行首 O
删除光标所在处字符然后插入 s
删除光标所在行然后插入 Scc
删除从光标处开始到该单词结束的所有字符然后插入cw

修改到行尾的内容 c$
上下两行交换 ddp

编辑模式下输入str1后按空格,会自动替换成str2 :ab str1 str2

选中当前单词 viw

删除复制
删除当前单词 daw复制当前单词 yaw
删除光标所在处到单词结尾 dw复制光标所在处到单词结尾 yw
删除n个单词 dnw 复制n个单词 ynw
删除光标到行尾 d$复制光标到行尾 y$
删除当前行到文本开始的文本 dH复制当前行到文本开始的文本 yH
删除当前行到文本结尾的文本 dG复制当前行到文本结尾的文本 yG
删除m到n行 :m,nd复制m到n行 :m,ny
删除一行 dd复制一行yy
删除n行 ndd 复制n行nyy
删除光标处到下一个a的字符处 dfa复制光标处到下一个a的字符处 yfa
删除光标到第n个a的字符处 dnfa复制光标到第n个a的字符处 dnfa

粘贴在光标后p
粘贴再光标前 P

删除当前字符 x
删除包含字符串str的行 :g/str/d
删除不含有字符串str的行 :v/str/d
替换当前字符 r
连续替换字符 R

插入
i 光标前
I 光标所在行首
a 光标后
A 光标所在行尾
o光标所在下一行行首
O 光标所在上一行行首
s删除光标所在处字符然后插入
S删除光标所在行,然后插入
cw 删除从光标处开始到该单词结束的所有字符,然后插入

大小写转换
不区分大小写 :setic
区分大小写 :set noic

单词变小写 u
单词变大写 shift+u

将光标下的字母改变大小写 ~
从光标开始的n字母改变大小写 n~
改变当前行字母的大小写 g~~
将当前行的字母改成大写 gUU
将当前行的字母全都改成小写 guu
将从光标开始下面n行字母改成大写 ngUU
将光标下的字母改成大写 gUw
将光标下的字母改成小写 guw

自动向上查找补全 ctrl+p
自动向下查找补全 ctrl+n

撤销
撤销刚才操作 u
恢复撤销操作 ctrl+r

重复
重复上一个操作的命令 .
重复某个命令n次 n<命令>

5.行列操作

把几行代码左右移4格
:set shiftwidth=4
选中要移动的代码
shift+> (向右缩进) ,shift+<(向左缩进)
:10,100>
第10行至第100行缩进
:20,80<
第20行至第80行反缩进

列选择模式
ctrl+v
在这里插入图片描述
在这里插入图片描述

6.定义快捷键

通过ctrl + v + 任意26个英文字母之一,可以形成快键键
:map ^M I#<ESC> ^M 是按ctrl+v+m
表示ctrl+m快捷键为在当前光标所在行首插入#并退出编辑模式

7.可视化

行可视化 V
可视化 v
块可视化 ctrl+v
再按一次是退出可视化

选中括号/引号内所有文本,包括括号/引号 va+引号/括号
选中括号/引号内所有文本,不包括括号/引号 vi+引号括号

8.宏录制

启动宏录制 q,再按一个字母,相当于起个名字,此时命令行提示
recording @字母,开始宏录制,执行完要录的操作
q录出录制

使用宏录制
执行宏录制的操作 @字母
对上一次宏使用的重复操作 @@
执行n次宏录制的动作 n@字母

9.正则表达式

  • 11
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值