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 :光标移动到整个指令串的最后面

相关推荐
恒创科技HK几秒前
香港100G高防服务器的防御力如何?
运维·服务器
Hoxy.R3 分钟前
iSCSI 磁盘扩容后节点不刷新容量的问题解决(StarWind + Linux)
linux·运维·服务器
CV小白进阶路4 分钟前
【无标题】Vscode 报错 got bad result from install script无法远程链接服务器
服务器·ide·vscode
lytao12312 分钟前
使用 dnsmasq 搭建本地 DNS 服务器完整指南
运维·服务器·dns
心随雨下19 分钟前
Tomcat日志配置与优化指南
java·服务器·tomcat
hit56实验室26 分钟前
如何在DCU上面编译llama.cpp
笔记
wljt28 分钟前
Linux 常用命令速查手册(Java开发版)
java·linux·python
riderxin29 分钟前
【20251028】固定Ubuntu的IP地址
linux·tcp/ip·ubuntu
赖small强30 分钟前
Linux 内核 8 类同步机制详解(原理、场景与示例)
linux·信号量·原子操作·自旋锁·内核同步方法·读-写自旋锁·读-写信号量
WPG大大通32 分钟前
AIoT | 软件:Astra MCP边缘算力构建详解
经验分享·笔记·python·硬件架构·代码