Linux 命令vim(编辑器)

news2025/6/27 7:48:21

(一)vim编辑器的介绍

vim是文件编辑器,是vi的升级版本,兼容vi的所有指令,同时做了优化和延伸。vim有多种模式,其中常用的模式有命令模式插入模式末行模式:

(二)vim编辑器基本操作

1 进入vim编辑文件

1  vim 文件路径       				//直接打开指定文件(光标位于首行或上次关闭文件时光标的所在行)
2  vim +数字 文件路径      			//打开指定文件并将光标移动到指定行(数字对应的行数)
3  vim +/关键词 文件路径    			//打开指定文件并高亮显示关键词
4  vim 文件路径1 文件路径2 文件路径3	//可同时打开多个文件,文件之间可切换操作

2 模式之间的切换

在这里插入图片描述插入模式:是可以直接将键盘输入的内容插入到文件的模式。
命令模式:是通过vim指令进入操作的默认模式,可以切换成其他模式。
末行模式:是在屏幕的最末行进行命令输入的模式。

(三) 模式的详细介绍

1插入模式

i 光标不会移动
a 光标向后移动一个字符的位置,按Esc退出该模式后光标会向前挪一个字符的位置。
o 会有新起一行的操作,按Esc退出该模式后换行的操作仍不会撤销。

2命令模式

(1) 复制 粘贴 剪贴

yy/nyy      复制光标所在行的内容,	n是数字,表示从光标处开始复制n行内容
p /np       粘贴剪切板中的内容, 	n是数字,表示从光标处开始粘贴n份相同的内容
dd/ndd      剪切光标所在行的内容,	n是数字,表示从光标处开始剪切n行内容;
			如果后续没有粘贴的操作,则该操作等同于删除

(2) 删除多个字符

nx          行内删除,从当前光标位置起向右删除n个字符的内容(包括当前光标所指的字符)
nX          行内删除,从当前光标位置起向左删除n个字符的内容(不包括当前光标所指的字符)

(3) 撤销 与 恢复

u           撤销上次的操作
ctrl + r    恢复撤销的操作(撤销的复原过程,输入该指令前未进行撤销操作,则会报错)

(4) 挪动光标

shift + g (即G) 	将光标定位到文档内容的最后一行开头
gg                	将光标定位到文档内容的开头
n shift+g(即nG)   	将光标定位到文档内容的第n行开头
shift + 4(即$)   	将光标定位到当前所在行的行尾
shift + 6(即^) 	将光标定位到当前所在行的行首
n w               	以单词为单位,光标向后挪动一个单位(范围是整个文件,即可以跨行挪动光标)
n b                	以单词为单位,光标向前挪动一个单位(范围是整个文件,即可以跨行挪动光标)

(5) 字符切换相关的指令

shift + ~        	快速进行大小写的切换(当前光标处)
n r + 替换后的字符 	替换当然光标所指向的内容

(6) 光标进行上下左右移位的按键

h					向左
j					向下
k					向上
l					向右

3末行模式

(1)保存

:w				字母w再回车,保存当前文件
:w 文件路径  	字母w+空格 + 文件保存路径

(2)退出

:q   		退出当前文件
:wq			保存当前文件并退出
:q!    		强制退出,不保存对文件的修改并退出

(3)搜索/查找

:/关键词     /+关键词再回车,按关键词查找,查找到的内容会被高亮显示
:nohl   	字母nohl再回车,取消查找到的内容的高亮显示,若不取消内容会一直高亮显示
N/n     	字母N/n,光标移动到上/下一个查找到的内容(属于命令模式)

(4)替换

:s/搜索的内容/新内容     		用新内容替换光标所在行第一处被搜索到的内容
:s/搜索的内容/新内容/g       	用新内容替换光标所在行全部被搜索到的内容
:%s/搜索的内容/新内容        	用新内容替换整个文件每一行第一处被搜索到的内容
:%s/搜索的内容/新内容/g      	用新内容替换整个文件全部被搜索到的内容

(5)显示行号

set nu	    字母set+空格+字母nu再回车,显示文件每行的行号,显示行号是暂时的下次打开该文件不会再显示
set nonu    字母set+空格+字母nonu再回车,取消行号显示

(6)多文件查看

files   	字母files再回车,查看同时打开的所有文件的名称

在这里插入图片描述

  • %a 表示它对应的文件是当前操作的文件
  • # 表示它对应的文件是上一个操作的文件
open 文件名		字母open+空格+文件名再回车,切换到其他打开的文件进行操作
bn     			字母bn再回车,切换到下一个打开的文件
bp     			字母bp再回车,切换到上一个操作的文件
sp [filename] 	打开一个新窗口,如果加filename,表示在新窗口创建一个新文件,否则表示两个窗口为同一文件内容
  • 【ctrl】+ w +⬆/k 光标移动上窗口
  • 【ctrl】+ w +⬇/j 光标移动下窗口
  • 【ctrl】 + w + q 结束退出

注意:每执行完一次末行模式下的命令之后,都会自动退回到命令模式

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

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

相关文章

Kotlin学习——kt里的集合List,Set,Map List集合的各种方法之Int篇

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

【代码】考虑电解槽变载启停特性与阶梯式碳交易机制的综合能源系统优化调度matlab-yalmip-cplex/gurob

程序名称:考虑电解槽变载启停特性与阶梯式碳交易机制的综合能源系统优化调度 实现平台:matlab-yalmip-cplex/gurobi 代码简介:提出了一种考虑 变载启停特性的电解槽混合整数线性模型,根据电 氢负荷可以实时调整设备工作状态&…

android系统新特性——用户界面以及系统界面改进

用户界面改进 Android用户界面改进最明显的就是MD了。MD是Google于2014年推出的设计语言,它是一套完整的设计系统,包含了动画、样式、布局、组件等一系列与设计有关的元素。通过对这些行为的描述,让开发者设计出更符合目标的软件&#xff0c…

代码随想录算法训练营 ---第四十三天

前言: 今天同样是01背包问题,今天详细学习了背包问题在各种场景下的应用。今天一道也没做出来,有点废。好难啊!就是思路不太清晰,不知道如何去做,看了题解后感觉原来如此,但是想不出来。今天做…

蓝桥杯官网算法赛(蓝桥小课堂)

问题描述 蓝桥小课堂开课啦! 海伦公式(Herons formula),也称为海伦-秦九韶公式,是用于计算三角形面积的一种公式,它可以通过三条边的长度来确定三角形的面积,而无需知道三角形的高度。 海伦公…

②⑩② 【读写分离】Sharding - JDBC 实现 MySQL读写分离[SpringBoot框架]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Sharding-JDBC Sharding-JDBC介绍使用 Shardin…

cmake install接口常用方式介绍

cmake install接口常用方式介绍 1 Synopsis2 Introduction2.1 DESTINATION <dir>2.2 PERMISSIONS <permission>...2.3 CONFIGURATIONS <config>...2.4 COMPONENT <component>2.5 EXCLUDE_FROM_ALL2.6 RENAME <name>2.7 OPTIONAL 3 Signatures4 E…

<JavaEE> 线程的五种创建方法 和 查看线程的两种方式

目录 一、线程的创建方法 1.1 继承 Thread -> 重写 run 方法 1.2 使用匿名内部类 -> 继承 Thread -> 重写 run 方法 1.3 实现 Runnable 接口 -> 重写 run 方法 1.4 使用匿名内部类 -> 实现 Runnable 接口 -> 重写 run 方法 1.5 使用 lambda 表达式 二…

Redis面试题:redis做为缓存,数据的持久化是怎么做的?两种持久化方式有什么区别呢?这两种方式,哪种恢复的比较快呢?

目录 面试官&#xff1a;redis做为缓存&#xff0c;数据的持久化是怎么做的&#xff1f; 面试官&#xff1a;这两种持久化方式有什么区别呢&#xff1f; 面试官&#xff1a;这两种方式&#xff0c;哪种恢复的比较快呢&#xff1f; 面试官&#xff1a;redis做为缓存&#xff…

Element-Plus 图标自动导入

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

【RTP】RTPSenderAudio::SendAudio

RTPSenderAudio 可以将一个opus帧封装为rtp包进行发送,以下是其过程:RTPSenderAudio::SendAudio :只需要提供payload部分 创建RtpPacketToSend 并写入各个部分 填充payload部分 sender 本身分配全session唯一的twcc序号 if (!rtp_sender_->

终端移动性管理

联系前面所学的知识我们知道&#xff0c;移动性管理主要分为两大类&#xff1a;空闲状态下的移动性管理、连接状态下的移动性管理。我们今天来详细了解他们的工作原理~ 目录 移动性管理分类 1、空闲状态下的移动性管理 2、连接状态下的移动性管理 手机选择天线的原则 4G天…

香港站群服务器中1C/2C/4C/8C 的概念及区别

​  在选择香港站群服务器时&#xff0c;经常会看到1C、2C、4C和8C等不同的IP段。这些IP段代表了不同的子网掩码长度&#xff0c;也反映了服务器的IP地址数量和丰富性。 让我们来了解一下什么是IP段。IP段是指一组连续的IP地址&#xff0c;其中每个地址的前三个数字相同&…

从0到0.01入门 Webpack| 006.精选 Webpack面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

在 Go 中使用 Protocol Buffers

各位准备好了吗&#xff01;这一次&#xff0c;我们将深入探讨 Protocol Buffers&#xff08;protobuf&#xff09;及其在数据序列化中的超能力所在。 介绍 Protocol Buffers&#xff0c;也被称为 protobuf&#xff0c;是由谷歌开发的一种语言无关的二进制序列化格式。其主要…

牛客 算法 HJ103 Redraiment的走法 golang语言实现

题目 HJ103 Redraiment的走法 实现 package mainimport ("bufio""fmt""os""strconv""strings" )func main() {scanner : bufio.NewScanner(os.Stdin)nums : make([]int, 0)nums_len:0dp:make([]int, 0)for scanner.Scan()…

2023金盾杯线上赛-AGRT战队-WP

目录 WEB ApeCoin get_source ezupload easyphp MISC 来都来了 芙宁娜 Honor Crypto 我看看谁还不会RSA hakiehs babyrsa PWN sign-format RE Re1 WEB ApeCoin 扫描发现有源码泄露&#xff0c;访问www.tar.gz得到源码。 在源码中发现了冰蝎马。 Md5解码&am…

常见位运算的详讲!

今日为大家详细讲解一番关于常见位运算的操作&#xff0c;本文主要介绍一些位运算的操作符&#xff0c;然后再通过简单->中等->困难的例题&#xff0c;让大家彻底搞懂关于位运算的知识&#xff01; 位运算的介绍&#xff01; 1.基础位运算 ">>"右移操作…

c语言练习12周(6~10)

以下程序调用递归函数fun实现求n!&#xff0c;请补充代码。 题干以下程序调用递归函数fun实现求n!&#xff0c;请补充代码。 int fun(int n) { int c; /****************/ /****************/ else cn*fun(n-1); …

1.3 取反器和8位取反器

取反器真值表: 取反开关输入输出011000110101 取反器相当于一个异或门 8位取反器