vim 常用命令集

此文介绍了vim中常用的命令,用熟练后可以提高工作效率哦。

1.多行注释:

  1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;

  2. 在行首使用上下键选择需要注释的多行;

  3. 按下键盘(大写)"I"键,进入插入模式;

  4. 然后输入注释符("//"、"#"等);

  5. 最后按下"Esc"键。注:在按下esc键后,会稍等一会才会出现注释

2.删除多行注释:

  1. 首先按esc进入命令行模式下,按下Ctrl + v, 进入列模式;

  2. 选定要取消注释的多行;

  3. 按下"x"或者"d".注意:如果是"//"注释,那需要执行两次该操作,如果是"#"注释,一次即可

3.多行删除:

1.首先在命令模式下,输入":set nu"显示行号;

2.通过行号确定你要删除的行;

3.命令输入":32,65d",回车键,32-65行就被删除了

如果无意中删除错了,可以使用'u'键恢复(命令模式下)

或者非命令行模式下:Ndd 例如5dd就是删除包含光标所在行往下的共5行

4.快捷键

w保存 q退出 !强制

wq保存退出,等价于 x(小写的x)还等价于在命令模式下 shit+2个z

q!不保存退出 在命令模式下 shit+zq

hjkl控制上下作用 M中间位置 L当前屏幕的最后一行

yy 复制,8yy:表示从当前光标所在的行开始复制8行

p 粘贴

dd 剪切,8dd:表示从当前光标所在的行开始剪切8行

x 删除单个字符

u 撤销 ctl+r 反撤销

G 调到最后一行 :

复制代码
15G 表示跳转到第15行,
1G表示跳转到第1行。
输入:n,代表跳转到第n行,如:79,就跳转到第79行。

复制

gg:跳转到第1行。

set nu:显示行号

set nonu:不显示行号

移至行首:home键或者"^"(即Shift+6)或0

移至行尾:end键或者"$"(Shift+4)

5.翻页

整页翻页 ctrl-f ctrl-b f就是forword b就是backward。

翻半页ctrl-d ctlr-u d=down u=up。

Ctrl + E:向上翻滚一行

Ctrl + Y:向下翻滚一行

5.在vim中快速复制粘贴多行

++https://www.cnblogs.com/MMLoveMeMM/articles/3707287.html++

6.vim插入空行

命令模式下按o键,可以新建一个空行并进入i模式。

yy复制空行,然后p粘贴

7.vim 替换模式

R 命令让你一步到位进入替换模式不会进入插入模式 。屏幕左下角出现--REPLACE--字样。注意:退格键(Backspace)在替换模式中被解释为**如果左边的内容被替换过,则恢复到原来的样子;如果没有被替换过,则简单的向左移动。**修改完毕后,按下Esc键回到普通模式。

8.vim字符串替换命令

基本语法是 :[range]s/目标字符串/替换字符串/[option],其中range和option字段都可以缺省不填。

range:表示搜索范围,默认表示当前行;

range字段值1,10表示从第1到第10行;

%表示整个文件(相当于1,$);

而.,$代表从当前行到本文件的末尾

s:substitute的简写,表示执行替换字符串操作;

option:表示操作类型,默认只对第一个匹配的字符进行替换;

option字段值g(global)表示全局替换;

c(comfirm)表示操作时需要确认;

i(ignorecase)表示不区分大小写;

如想把所有的username换成login_name,那么**:%s/username/login_name/g**就可以了。

例子:

复制代码
一:将光标所在行出现的所有包含line的字符串中line替换为lines
:s/line/lines/g表示将光标所在当前行的line全局替换为lines
二:将从2行到10行中出现的所有包含line的字符串中的line替换为lines
:2,10s/line/lines/g表示将2~3行的line全局替换为lines
三:全文的行首加入//字符,批量注释时非常有用
:%s/^/\/\//表示在全文范围行首替换插入//,注意在Vim中需要将/进行转义后才可以替换
四:将所有行尾多余的空格删除
:%s= *$==表示全局替换行尾的一个或多个空格,更多正则表达式的说明可以参考Vim正则表达式2d

复制

9.vim刷新当前文件:e

您可以在:edit不指定文件名的情况下使用该命令来重新加载当前文件。如果对文件进行了修改,则可以:edit!用来强制重新加载当前文件(您将丢失所做 的修改)。

该命令:edit可以用缩写**:e**。因此,可以通过以下方式进行强制编辑:e!

10.移动光标

删除:

ctrl + u :从光标处向前删除指令串

ctrl + k : 从光标处向后删除指令串

删除(具体可以说是剪切)的字符串可以 ctrl + y 进行粘贴

移动:

ctrl + a :光标移动到整个指令串的最前面

ctrl + e :光标移动到整个指令串的最后面

相关推荐
努力努力再努力wz32 分钟前
【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!
java·linux·运维·服务器·c语言·数据结构·c++
信创天地8 小时前
信创场景软件兼容性测试实战:适配国产软硬件生态,破解运行故障难题
人工智能·开源·dubbo·运维开发·risc-v
哈哈不让取名字8 小时前
基于C++的爬虫框架
开发语言·c++·算法
花间相见8 小时前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
峰顶听歌的鲸鱼8 小时前
Kubernetes介绍和部署
运维·笔记·云原生·容器·kubernetes·学习方法
DarrenPig8 小时前
【常州工NEC】ROBOCON小白入门之路(二)2026CURC-NEC赛季规划
开源·github·交流·robocon
物理与数学8 小时前
linux 内存分布
linux·linux内核
扶苏-su8 小时前
Java---Properties 类
java·开发语言
东城绝神9 小时前
《Linux运维总结:基于ARM64+X86_64架构使用docker-compose一键离线部署MySQL8.0.43 NDB Cluster容器版集群》
linux·运维·mysql·架构·高可用·ndb cluster
creator_Li9 小时前
即时通讯项目--(1)环境搭建
linux·运维·ubuntu