vim 工具的使用

注:以下操作都在普通模式下进行

光标的移动操作

gg

定位到代码的第一行
shift+g

定位到代码的最后一行
n+shift+g

定位到第n行
shift+6:

特定一行的开始
shift+4

特定一行的结尾

上下左右的移动光标
h: 向左移动光标
j: 向下移动光标
k: 向上移动光标
l: 向右移动光标

w 以单词为单位向右移动
b 以单词为单位向左移动

对行的操作

复制光标所在的行:yy

如果你想要复制5行(从光标所在行开始往下数) 你可以使用:5 yy

如果你想要复制n行 同理 你可以使用 n yy

粘贴:p

如果想粘贴10次就使用:10 p

如果想粘贴n次就使用: n p

撤销操作:u

如何删除光标所在的行:dd

其实dd 也相当于Windows的剪切功能,你使用dd之后可以再使用p命令,将删掉的内容粘贴到光标的位置

如果你想将9行内容剪切到其他地方的话你可以:9 dd 然后再在你想要移动到的位置p 一下

如果你想将 n 行内容 剪切到其他地方的话你可以:n dd 然后再目标位置p 一下;

对行内一部分的操作

大小写字母的转化

按住shift 不动, 在按~

替换掉行内你想替换替换的字母 ,比如,"hello world"

你想替换成"hello worlx"

你只需要光标定位到单词worldd 然后按r 接着就可以改成你想改的字符了,这里是改成x 所以你按了r 之后 在按 x 就行了

同理,如果你想将从光标开始往右数5个字符全换成x 你可以输入:5 r 然后按x

但是这样替换掉的字符都是一样的呀,比如这里全换成了x ,那如果我想替换的字母不一样那该怎么办,这样的话就要进入 == 替换模式 == 了 。使用:shift + r 进入替换模式。这样就可以替换了 。

比如:你想把hello world 改成 hello linux 就是把world 替换成linux

你要先在普通模式下将光标移动到单词world的位置 然后按:shift r 进入替换模式 ,接着就可以直接输入linux了,因为它会直接替换掉world

如何删除行内的部分字符?

比如:hello world 这串字符,我想把hello删掉,那该怎么办,肯定不能用dd呀,因为dd是把整行都删掉

我们这样:在普通模式下将光标放在要删除的字符的位置按x ,(x 是向后删除一个字符,如果你想删除从光标开始往后数4个字符你就按4 x 就行了)

所以我们只需要将光标放在hello这个单词的h的位置按5 x 就行了

如果你想往前删就用:shift + x

撤销操作

如果你想撤销某个操作你可以在普通模式下按下:u

但是如果撤销撤多了,本来只需撤销一次,但是你撤销了两次,那该怎么办?

我们可以按下:ctrl r 就是对 u 的撤销

如果你对 u 操作后悔了,你就用ctrl r

如果你对ctrl r 操作后悔了,你就用u

如果你只想要拷贝一部分单词该怎么办

y w 命令,
y y 是把一整行都复制过去。
y w 就是复制一个单词。
3 y w 就是连续复制3个单词,所以:n y w就是连续复制n个单词

在vim中对某个单词进行搜索

shift + #

vim如何批量注释代码

第一步:这个时候就要用到第5种模式,叫视图模式

在命名模式中按下ctrl v 就进入了视图模式

这个时候左下角显示了V-BLOCK 全称是VISUAL BLOCK这就是视图模式

第二步:进入视图模式之后用h,j,k,l这些方向键来选择你要注释的内容。

第三步:在选择好要注释的内容之后,按下:shift i 进入编辑模式,然后键入://

第四步:在键入//后,直接按Esc就行了。到此,注释完成

vim如何批量删除注释

第一步:

在命名模式中按下ctrl v 就进入了视图模式

这个时候左下角显示了VISUAL BLOCK这就是视图模式

第二步:进入视图模式之后用h,j,k,l这些方向键来选择你要删除注释的内容。

第三步:按下d进行删除即可

定为光标到我们想要的地方

举个列子:vim mycode.c +7 表示在用光标打开这个文件的时候用光标定位到第7

相关推荐
JiMoKuangXiangQu2 小时前
ARM64 进程虚拟地址空间布局
linux·arm64 虚拟地址布局
阳光九叶草LXGZXJ3 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
春日见3 小时前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
无垠的广袤4 小时前
【VisionFive 2 Lite 单板计算机】边缘AI视觉应用部署:缺陷检测
linux·人工智能·python·opencv·开发板
阿波罗尼亚4 小时前
Kubectl 命令记录
linux·运维·服务器
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.4 小时前
Keepalived单播模式配置与实战指南
linux·服务器·负载均衡
IDC02_FEIYA4 小时前
Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解
linux·运维·服务器
江畔何人初4 小时前
kubectl apply与kubectl create的区别
linux·运维·云原生
M158227690555 小时前
四通道全能组网!SG-Canet-410 CAN转以太网网关,破解工业CAN通信瓶颈
linux·运维·服务器
誰能久伴不乏5 小时前
【Qt实战】工业级多线程串口通信:从底层协议设计到完美收发闭环
linux·c++·qt