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

相关推荐
sky北城1 小时前
DVWA靶场保姆级通关教程--03CSRF跨站请求伪造
linux·web安全·网络安全
独行soc6 小时前
2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
linux·运维·服务器·学习·面试·职场和发展·渗透测试
Jia ming7 小时前
【奔跑吧!Linux 内核(第二版)】第1章:Linux 系统基础知识
linux·内核·linux内核
海尔辛8 小时前
学习黑客 linux 提权
linux·网络·学习
FBI HackerHarry浩8 小时前
Linux云计算训练营笔记day02(Linux、计算机网络、进制)
linux·运维·网络·笔记·计算机网络·进制
小馬佩德罗9 小时前
Linux/AndroidOS中进程间的通信&线程间的同步 - 内存映射
linux·mmap
AirDroid_cn10 小时前
iPhone或iPad想要远程投屏到Linux系统电脑,要怎么办?
linux·iphone·ipad·手机投屏·无线投屏·远程投屏
rzsh123410 小时前
[ linux-系统 ] 常见指令2
linux
原来是猿10 小时前
Linux下的好玩的命令
linux·运维·服务器
Lw老王要学习11 小时前
25_05_02Linux架构篇、第1章_03安装部署nginx
linux·运维·nginx·架构·云计算·it