Vim常用命令汇总

news2024/9/22 17:26:04

目录

  • 1 普通模式
  • 2 插入模式
  • 3 可视模式
  • 4 命令行模式
  • 4 文件操作
  • 5 动作命令

1 普通模式

命令操作符合命令作用等同命令
.重复上次修改
x删除光标下的字符
dd删除整行
>G从当前行到文档末尾处的缩进层级
a在当前光标之后添加内容
i在当前光标之前添加内容
A在当前行的结尾添加内容$a
I在当前行的开头添加内容^i
C从当前光标到行尾内容全部删除c$
cw从光标到当前一个单词内容进行删除
cW从光标到当前一个字符串删除一个单词
s删除光标所在字符,并且进入插入模式cl
S删除整行内容dd
I从行首进入插入模式^i
o从下行进入插入模式
O从上行进入插入模式ko
f{char}查找当前行char(任一字符)所在位置
;正向查找上次f命令所查找的字符
,方向查找上次f命令所查找的字符
n正向跳转到匹配指定模式的地方
n反向跳转到匹配指定模式的地方
u插销上一次的修改
db从光标起始位置到单词开头的内容,光标所在的字符会保留
b将光标移到单词的开头
dw删除光标所在位置到该单词的结尾
daw删除光标所在的整个单词
d$删除光标到行尾所有内容
d{n}w删除光标所后的n个词
g~从光标行到下一行内容反转大小写
gu从光标行到下一行内容转小写
gU从光标行到下一行内容转大写
gU{motion}gU为操作符,{motion}为动作符
>从光标行到下行内容增加缩进
>{n}从光标行到下n行内容增加缩进
yt{char}从光标内容到字符char内容copy到寄存器
v激活面向字符的可视模式
V激活面向行的可视模式
ctr+v激活面向列块的可视模式
*高亮光标所在的所有单词,且光标跳转到下一处匹配
q/打开查找命令历史的命令行窗口
q:打开Ex命令历史的命令窗口

2 插入模式

命令操作符命令作用等同命令
ctr+h删除光标前一个字符等同退格键
ctr+w删除光标前一个单词
ctr+u删除光标到行首内容
Esc切换到普通模式
ctr+[切换到普通模式
ctr+o切换到插入-普通模式(是普通模式的一个特例,执行一次普通模式命令,执行完后,回到插入模式
ctr+r{register}把寄存器{register},eg: register=0的内容黏贴到光标所在位置

3 可视模式

vim的可视模式运行选中一块文本区域并在其上进行操作,某些可视模式命令执行的基本功能与普通模式相同,但操作上有些细微的变化。在普通模式中,先触发修改命令,然后使用动作命令指定其作用范围,然而,在可视模式中,要先选中选区,然后再触发修改命令。

命令操作符命令作用等同命令
Esc回到普通模式
ctr+[回到普通模式
v从面向字符的可视模式切换到普通模式
V从面向行的可视模式切换到普通模式
ctr+v从面向列块的可视模式切换到普通模式
b选中区域向后移动一个词
e选中区域向前移动一个词
o重现调整可视模式选择的边界
it高亮选中标签内部的内容
U对选中的区域转大写
u对选中的区域转小写
{n}j向下移动n行
x对选中的内容进行删除
gv重选上次的高亮选区
r{char}对选中的区域用{char}取代

假设我们需要对如下内容中的"images"更改为"compnents":

在这里插入图片描述

我们可以在可视化模式下进行操作,只需要如下几步,就能够快速达到效果:

  • 进入可视化列块模式:ctr+v
  • 移动选定方块区域:jje
  • 对选定的区域进行删除:c
  • 输入替换的内容:components
  • 进入普通模式:Esc (此时后两行的内容也会全部更换过来)

操作完后结果如下:
在这里插入图片描述

4 命令行模式

Vim的先祖是vi,vi奉一个名为ex的行编辑器为先祖,这就是为什么有Ex命令。在按下 : 键时,Vim会进入到命令行模式,这个模式和shell下的命令行有些类似,可以输入一条命令,然后按Enter键执行它。在任意时刻,都可以按键从命令行模式切回普通模式。Ex命令影响范围广且距离远。

命令操作符命令作用等同命令
:{n}把光标移到第n行,比如 :10
:2print将第二行的内容打印出来:2p
:1,2substitue/#/t/将第一到第二行内容的第一个#替换成t:1,2s/#/t/
:%s/#/t/g将文本所有行的每个#替换成t
:2,5p将第2行到第5行内容全部打印出来
:2,5delete将第2行到第5行内容全部删除
:{start},{end}{action}从地址start到地址end做操作action
:.,$p从当前位置到文件末尾全部内容打印
:%p%代表当前文件中的所有行,打印当前文件的所有内容:1,$p
:‘<,’>p‘<代表高亮选取的起始行,’>高亮选取的结束行,对高亮选取的内容进行打印输出
:‘<,’>t0'对高亮选取的内容复制到文件开头
:{range}t{address}t是copy的简写,将range范围内容copy到地址address部分
:{range}m{address}m是move的简写,将range范围内容move到地址address部分
:6t.将第6行复制到当前行下方
:t6将当前行复制到第6行下方
:t.将当前行内容copy到当前行下方
:‘<,’>m$将高亮选区的内容移动到文件末尾
:‘<,’>normal .将高亮选区的内容执行普通模式下的.命令
:‘<,’>normal i//将高亮选区的内容执行普通模式下i//命令(对高亮每行行首进行加注释//
:%normal A;对整个文件范围,执行普通模式的A;命令(对每行末尾添加;)
:%normal i//对整个文件范围,执行普通模式的i//命令(对每行行首添加注释//)
:4,10normal i//对第4行内容到第10行内容,执行普通模式的i//命令(对每行行首添加注释//)
@:重复上次Ex命令
:col<ctr+d>ctr+d命令会让vim现实可用的补全列表,类似shell按tab键进行补全,最后这里的结果为: colder colorsheme
:colorscheme <ctr+d>对colorscheme的配色方案补全,出来的结果有:blue blackboard desert shine 等
:%s//<ctr+r><ctr+w>/g对文本中所有的用*命令高亮产生的单词用执行cw后修改的词取代
:!ls在vim的命令行模式中,给命令加一个感叹号前缀,比如!ls就可以调用外部shell的ls命令,查看当前目录的内容
:!cat %在vim的命令行模式中,%表示当前文件名,所以这个命令表示输出当前文件的所有内容
:shell该命令来启动一个交互的shell会话,在这个会话中,我们可以执行多个shell命令,想退出并返回vim,则用exit命令就可以如果我们在bash中运行的vim,则我们可以用命令ctr+z挂起vim所属的进程,控制权交给bash, 可以用jobs查看挂起的作业,在bash执行完后,我们可以用fg命令唤醒被挂起的作业,恢复vim,ctr+z与fg比:shell exit更加方便快捷
:source batch.vim批量执行batch.vim中的所有Ex命令,若想撤回,则按u键即可让文档完好如初
:pwd打印工作目录
:edit {file_path}打开指定path的file文件
:edit .打开文件管理器,并显示当前工作目录:e.
:Explore打开文件管理器,并显示活动缓冲区所在的目录:E

4 文件操作

Vim允许在多个文件上工作,允许同时在多个缓冲区上工作。例如我们在shell里用下面的命令打开几个文件:
vim *.txt
此时目录正好有a.txt和b.txt,当vim启动时,它会显示一个窗口。

命令操作符命令作用补充说明
:bnext正向移动一个文件等同ctr+^
:bprev反向移动一个文件
:bfirst跳到缓冲区列表的开头
:blast跳到缓冲区列表的结尾
:args显示启动时作为参数传给vim的文件列表
:args app.js将参数列表增加app.js文件,vim跳转打开app.js文件
:w把缓冲区保存到文件:write
:edit!重新从磁盘读取此文件,这会用文件的内容覆盖缓冲区中的内容,当缓冲区内容与磁盘一致后,就可以执行:quit
<ctr+w>s水平切分当前窗口,新窗口仍然显示当前缓冲区
<ctr_w>v准直切分当前窗口,新窗口仍然显示当前缓冲区
:split {file}水平切分当前窗口,并在新窗口中载入{file}
:vsplit {file}准直切分当前窗口,并在新窗口中载入{file}
<ctr+w>w在窗口间循环切换
<ctr+w>h切换到左边的窗口
<ctr+w>j切换到下边的窗口
<ctr+w>k切换到上边的窗口
<ctr+w>l切换到右的窗口
<ctr+w>c关闭活动窗口:close
<ctr+w>o只保留活动窗口,关闭其他所有窗口:only
<ctr+w>=使所有窗口等宽,等高
<ctr+w>_最大化活动窗口的高度
<ctr+w>|最大化活动窗口的宽度

5 动作命令

命令操作符命令作用补充说明
h左移一列
l右移一列
j下移一行
k上移一行
gj屏幕行向下移一行
gk屏幕行向上移一行
0移动到实际行的行首
^移动到实际行的第一个非空白字符
g^移动到屏幕行的第一个非空白字符
$移动到实际行的行尾
g$移动到屏幕行的行尾
g0移动到屏幕行的行首
w正向移动到下一单词的开头
b反向移动到当前单词/上一单词的开头
e正向移动到当前单词/下一单词的结尾
ge反向移动到上一单词的结尾
W移动一个字串(按照空白字符分割,不要搞混w基于单词移动例如:: e.g. we’re going too slow 有5个字串和10个单词

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker之安装redis

下面记录一下在docker中安装redis过程 1.查看redis镜像 docker search redis2.拉去镜像到Linux //指定拉取redis版本 docker pull redis:6.0 //不指定版本默认拉取最新 docker pull redis3.查看镜像是否拉取成功 docker images4.启动redis //2f66aad5324为redis的image id do…

驾驭云安全:2023年云安全展望

由于其的良好的可扩展性和优质的事件处理效率&#xff0c;云技术已成为现代企业的必备的管理技术之一&#xff0c;目前他已经成为所有行业及企业的热门选择。然而&#xff0c;攻击面积的增加以及不针对云技术衍生出来的多类攻击方式&#xff0c;使许多企业更容易受到威胁和数据…

Docker学习总结

1、镜像操作 1.1 拉取、查看镜像 步骤一&#xff1a; 首先去镜像仓库搜索nginx镜像&#xff0c;比如[DockerHub]( Docker Hub Container Image Library | App Containerization ) : 步骤二&#xff1a; 根据查看到的镜像名称&#xff0c;拉取自己需要的镜像 通过命令&…

代码随想录 NO54 |单调栈_leetcode 503.下一个更大元素II 42. 接雨水

单调栈_leetcode 503.下一个更大元素II 42. 接雨水单调栈第二天&#xff0c;也是本轮刷题任务倒数第二天&#xff0c;加油&#xff01; 503.下一个更大元素II 这道题和739. 每日温度几乎如出一辙。在遍历的过程中模拟走了两遍nums。 class Solution:def nextGreaterElements(…

算法设计与分析——十大经典排序算法一(1--5)

目录 算法设计与分析——十大经典排序算法 第1关&#xff1a;冒泡排序 参考代码 第2关&#xff1a;选择排序 参考代码 第3关&#xff1a;插入排序 参考代码 第4关&#xff1a;希尔排序 参考代码 第5关&#xff1a;归并排序 参考代码 作者有言 一个不知名大学生&#x…

软考信息系统监理师备考建议

用好备考方法&#xff0c;两三个月就可以过的。信息系统监理师备考最好以教材和历年真题为主&#xff0c;教学视频模拟题为辅。考试介绍与复习建议&#xff1a;考试设置的科目包括&#xff1a;&#xff08;1&#xff09;信息系统工程监理基础知识&#xff0c;考试时间150分钟&a…

回顾1-idea创建Java项目

创建Java项目 创建项目和模块的区别 环境前置 IDEA开发工具JDK及配置环境变量 创建项目/工程 新建项目 选择Java模块 > SDK( 已配置的JDK ) > 下一步 直接下一步 填写项目信息 QQ游戏工程 里的 叫项目 所以 QQgame目录下 可以放 > 斗地主项目 / 美女来找茬等… …

Java调用C++方法(Linux下)

最近的项目中用到了java调用C的部分&#xff0c;记录一下&#xff0c;还是比较简单的。 所有需要的文件都放在同一个目录下。 java代码 public class NativeDemo {{System.load("/opt/java_c/src/NativeDemo.so");//这里必须用绝对路径}public native void SayHell…

Linux 进程:程序地址空间 与 虚拟内存

目录一、程序地址空间二、虚拟地址空间1.虚拟内存的原理2.使用虚拟内存的原因&#xff1f;3.如何实现虚拟空间&#xff1f;4.使用虚拟内存的好处本文主要介绍程序地址空间和虚拟地址空间的概念&#xff0c;理解了虚拟地址空间&#xff0c;才可以更好的理解物理内存和进程pcb之间…

scratch潜水 电子学会图形化编程scratch等级考试一级真题和答案解析2022年12月

目录 scratch潜水 一、题目要求 1、准备工作 2、功能实现 二、案例分析

# Redis 实战读书笔记(一)

Redis 实战读书笔记&#xff08;一&#xff09; 初始Redis ​ Redis是一个远程内存数据库&#xff0c;它不仅性能强劲而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了5中不同类型的数据库&#xff0c;初次之外通过复制持久化和客户端分片等特性用户可…

Android 项目必备(四十三)-->Android 开发者的 new 电脑

前言 作为 Android 开发者&#xff0c;当你新入职一家公司&#xff0c;拿到新发的电脑&#xff0c;你会对电脑干点啥&#xff1f; 安装开发环境&#xff1f;装软件&#xff1f;你是否还会铺天盖地到处找之前电脑备份的东西&#xff1f;又或者还想不起来有什么上一台电脑好用的…

一个9个月测试经验的人,居然在面试时跟我要18K,我都被他吓到了····

2月初我入职了深圳某家创业公司&#xff0c;刚入职还是很兴奋的&#xff0c;到公司一看我傻了&#xff0c;公司除了我一个测试&#xff0c;公司的开发人员就只有3个前端2个后端还有2个UI&#xff0c;在粗略了解公司的业务后才发现是一个从零开始的项目&#xff0c;目前啥都没有…

Mac iTerm2 rz sz

1、安装brew&#xff08;找了很多&#x1f517;&#xff0c;就这个博主的好用&#xff09; Mac如何安装brew&#xff1f;_行走的码农00的博客-CSDN博客_mac brew 2、安装lrzsz brew install lrzsz 检查是否安装成功 brew list 定位lrzsz的安装目录 brew list lrzsz 执…

【linux】:进程概念

文章目录 冯诺依曼体系结构一&#xff1a;操作系统二: 进程总结冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 冯诺依曼体系如下图&#xff1a; 那么输入设备有哪些呢&#xff1f…

时间复杂度和空间复杂度(1)

目录 1、算法效率 2、时间复杂度 1、定义 2、大O的渐进表示法 3、常见时间复杂度计算举例 3、空间复杂度 4、练习 例1、消失的数字 例2、旋转数组 1、算法效率 算法在编写成可执行程序后&#xff0c;运行时需要耗费计算机的时间资源和空间(内存)资源。因此衡量一个算法…

第八届蓝桥杯省赛——4承压计算(二维数组,嵌套循环)

题目&#xff1a;X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致&#xff0c;但重量不同。金属材料被严格地堆放成金字塔形。7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1 7 9 6 1 4 5 4 5 6 5 5 6 9 5 6 5 5 4 7 9 3 5 5 1 7 5 7 9 7 4…

Unity 渲染流程管线

渲染流程图可以把它理解为一个流程&#xff0c;就是我们告诉GPU一堆数据&#xff0c;最后得出来一副二维图像&#xff0c;而这些数据就包括了”视点、三维物体、光源、照明模型、纹理”等元素。参考如下图(来自视频)CPU应用阶段剔除视锥剔除由Unity依据Camera直接完成&#xff…

PowerShell Install Tomcat

Tomcat 前言 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。对于一个初学者来说&#xff0c;可以这样认为&#xff0c;当…

什么是百分比堆积条形图?

条形图实际上范围很广&#xff0c;它是以横置图形展示数据的一种图表类型。百分比堆积条形图即以堆积条形图的形式来显示多个数据序列&#xff0c;但是每个堆积元素的累积比例始终总计为 100%。它主要用于显示一段时间内的多项数据占比情况。 百分比堆叠条形图将多个数据集的条…