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

相关推荐
爱上语文几秒前
Java LeetCode每日一题
java·开发语言·leetcode
看山还是山,看水还是。9 分钟前
MySQL 管理
数据库·笔记·mysql·adb
XY.散人10 分钟前
初识Linux · 文件(1)
linux·运维·服务器
Манго нектар27 分钟前
JavaScript for循环语句
开发语言·前端·javascript
程序猿小D36 分钟前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
训山40 分钟前
【11】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-模块化语法与自定义组件
笔记·学习·华为·harmonyos·鸿蒙系统
阿华的代码王国44 分钟前
【JavaEE】——文件IO的应用
开发语言·python
FIT2CLOUD飞致云1 小时前
测试管理新增视图与高级搜索功能,测试计划支持一键生成缺陷详情,MeterSphere开源持续测试工具v3.3版本发布
开源·接口测试·metersphere·团队协作·持续测试·测试管理
satan–01 小时前
R语言的下载、安装及环境配置(Rstudio&VSCode)
开发语言·windows·vscode·r语言
叶北辰CHINA1 小时前
nginx反向代理,负载均衡,HTTP配置简述(说人话)
linux·运维·nginx·http·云原生·https·负载均衡