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

相关推荐
uppp»3 分钟前
深入理解 Java 反射机制:获取类信息与动态操作
java·开发语言
程序员yt5 分钟前
双非一本电子信息专业自学嵌入式,学完 Linux 后咋走?单片机 & FreeRTOS 要补吗?
linux·运维·单片机
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
CSDN_PBB3 小时前
[STM32 - 野火] - - - 固件库学习笔记 - - - 十五.设置FLASH的读写保护及解除
笔记·stm32·学习
安於宿命5 小时前
【Linux】进程间通信——进程池
linux·c++
ll7788115 小时前
LeetCode每日精进:20.有效的括号
c语言·开发语言·算法·leetcode·职场和发展
新兴ICT项目支撑5 小时前
天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结
linux·运维·服务器·910b·天翼云·deepseek r1
lida20036 小时前
Open FPV VTX开源之OSD使用分类
开源
Mr' 郑6 小时前
开源大模型性能追平闭源模型技术路径分析
开源
IT古董6 小时前
【开源向量数据库】Milvus简介
数据库·开源·milvus