Linux 命令vim(编辑器)

(一)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.mzph.cn/news/171311.shtml

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

相关文章

排序算法:归并排序、快速排序、堆排序

归并排序 要将一个数组排序,可以先将它分成两半分别排序,然后再将结果合并(归并)起来。这里的分成的两半,每部分可以使用其他排序算法,也可以仍然使用归并排序(递归)。 我看《算法》…

day64

跨域请求伪造 一、csrf跨站请求伪造详解 CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的网络攻击方式。攻击者通过诱导受害者访问恶意网站或点击恶意链接 将恶意请求发送到目标网站上利用受害者在目标网站中已登录的身份来执行某些操作从而…

电源的纹波

电源纹波的产生 我们常见的电源有线性电源和开关电源,它们输出的直流电压是由交流电压经整流、滤波、稳压后得到的。由于滤波不干净,直流电平之上就会附着包含周期性与随机性成分的杂波信号,这就产生了纹波。 在额定输出电压、电流的情况下…

【开题报告】基于SpringBoot的高端美发产品商城的设计与实现

1.研究背景 随着人们对美容、护肤和个人形象的重视,高端美发产品在市场上的需求越来越大。传统的线下销售方式存在一些问题,如地域限制、库存管理困难等,不能满足现代消费者的需求。因此,建立一个在线商城平台,可以让…

leetCode 1080.根到叶路径上的不足节点 + 递归 + 图解

给你二叉树的根节点 root 和一个整数 limit ,请你同时删除树中所有 不足节点 ,并返回最终二叉树的根节点。假如通过节点 node 的每种可能的 “根-叶” 路径上值的总和全都小于给定的 limit,则该节点被称之为 不足节点 ,需要被删除…

SQL Injection (Blind)`

SQL Injection (Blind) SQL Injection (Blind) SQL盲注,是一种特殊类型的SQL注入攻击,它的特点是无法直接从页面上看到注入语句的执行结果。在这种情况下,需要利用一些方法进行判断或者尝试,这个过程称之为盲注。 盲注的主要形式有…

Python之内置函数和模块

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

基于单片机的可升降助眠婴儿床(论文+源码)

1.系统设计 本课题为基于单片机的可升降助眠婴儿床系统,在设计目标上确定如下: 1. 可以实现婴儿床的升降,摇床功能控制; 2. 具有音乐播放功能,并且有多首曲目; 3. 用户可以通过按键或者红外遥控&#x…

使用fetch封装get与post方法

网上看了一些对fetch的封装,有点看不伶清。如在request中配置timeout与responseType字段等,在文档上找根本找不到。于是自己封装个简单版的fetch,方便拿到项目中改造一下就可以使用。 注意点 使用fetch时会产生跨域问题,需服务端…

Runloop解析

RunLoop 前言 ​ 本文介绍RunLoop的概念,并使用swift和Objective-C来描述RunLoop机制。 简介 ​ RunLoop——运行循环(死循环),它提供了一个事件循环机制在程序运行过程中处理各种事件,例如用户交互、网络请求、定…

用JAVA编程解决数位和相等问题

如果一个正整数转化成二进制与转换成八进制后所有数位的数字之和相等,则称为数位和相等的数。   前几个数位和相等的正整数为 1, 8, 9, 64, ……   请问第 23 个数位和相等的正整数是多少?用JAVA编程解决 可以通过编程计算第 23 个数位和相等的正整…

Xshell连接VMware虚拟机中的CentOS

Xshell连接VMware虚拟机中的CentOShttps://www.cnblogs.com/niuben/p/13157291.html 步骤: 1. 检查Linux虚拟机的网络连接模式,确保它是NAT模式。(由于只在本机进行连接,所以没有选择桥接模式。当然,桥接模式的配置会…

利用ngrok实现内网穿透(全网最详细教程)

准备工具: 1、phpstudy 用于在本地搭建网站 2、ngrok 用于将自己的本地端口暴露到公网上,从而实现内网穿透 文章开始前给大家分享一个学习人工智能的网站,通俗易懂,风趣幽默 人工智能https://www.captainbed.cn/myon/ ~~~~~…

浅谈Linux bash脚本----获取脚本启动参数

${#} 用于获取传递给脚本的参数数目 params_count${#} echo $params_count > ./PATH/TO/my_script.sh param1p1 param2p2 > 2 ${} 用于获取传递给脚本的参数列表 params_list${} echo $params_list > ./PATH/TO/my_script.sh param1p1 param2p2 > param1p1 …

【教学类-06-12】20231126 (一)二位数 如何让加减乘除题目从小到大排序(以1-20之间加法为例,做正序排列用)

结果展示 优化后 优化前 背景需求: 生成列表 单独抽取显示题目排序方法 存在问题: 我希望 00 01 02……这样排序,但是实际上,除了第一个加数会从小到大排序,第二个被加数的第十位数和个位数都会从小到大排序,也就是…

Centos7离线安装chrome浏览器

很多时候在linux下直接安装chrome浏览器困难,或者速度极慢,这里总结下在离线的情况下,怎么下载安装chrome并且配置对应的driver驱动 1.首先如果有安装历史版本,可以先卸载,卸载命令: yum remove google-chrome-stable.x86_64 -y 2.最好下载历史版本chrome,比较稳定,…

Docker attach 命令

docker attach:连接到正在运行中的容器。 语法 docker attach [OPTIONS] CONTAINER要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。 官方文档中说attach后可以通过CTRL-…

提示工程-Prompt Engineering

提示工程 提示工程 1、概述 Prompt Engineering: 提示工程 通过自然语言(英语、汉语等)来给AI下达指示,从而让AI完成你指定给他的工作的过程都可以称之为提示工程。(面向自然语言编程) 提示词要素 指令&…

Spring Web MVC

目录 一.简介 二.建立连接(客户端和服务器) 三.请求 1.传递单个参数 2.传递多个参数 3.对象 4.数组/集合 5.JSON 6.URL参数 7.上传文件 8.获取cookie和session (1)获取cookie (2)获取session …

electron 问题记录

23年11月24 electron项目npm install 卡在一个地方不动 原因:主要是 install electron 会卡住 解决方法: # 先解决install electron卡死 npm install -g cnpm --registryhttps://registry.npmmirror.com cnpm install electron# 然后下载其他依赖 np…