vim的使用方法及相关按键

目录

一、安装vim

二、vim的使用

1.打开vim

2.vim的四种模式使用

(1)命令模式(快捷键的使用)

(2)编辑模式

(3)末行模式

(4)可视化模式


一、安装vim

一般情况下,Linux都已经默认安装好了vim编辑器,但有一些精简版的Linux操作系统是没有安装的,这就需要我们安装一下。当我们在终端中输入vim命令时,如果系统会提示"command not found",则表示未安装vim。我们只需要在命令行输入安装的命令即可:

  yum -install vim -y      

二、vim的使用

1.打开vim

在命令行中输入我们要使用vim进行编译文件的命令即可:

#vim+文件名

#例如  vim test.c    #使用vim对test.c文件进行编译

#若该文件已存在,就会直接打开该文件;若文件不存在,vim会自动创建该文件再打开

2.vim的四种模式使用

(1)命令模式(快捷键的使用)

当我们用vim打开文件后,就会直接进入到命令模式,在该模式下我们可以通过快捷键对文本内容进行一些操作,如:复制、粘贴、撤销、删除、注释和多行注释等操作。

复制和粘贴的操作:

行复制删除命令:

yy   #单行复制
n+yy  #多行复制
p    #粘贴

将光标移动到要进行复制行,然后按下两次y即可对改行进行复制;

在需要进行多行复制的第一行那里,先输入要复制的行数n,在按两次y,可以复制从当前行开始n-1行的内容;

然后在需要进行粘贴的那行按下p就能将最近所复制的内容进行粘贴。

任意复制粘贴:

n+yl       #从当前光标位置往后复制n个字符,包含光标位置
n+yh       #从当前光标位置,往前复制n个字符,不包含光标位置的

复制好后,按p键就能进行粘贴。

 撤回和反撤回:

命令:

u        #撤回操作
ctrl+r   #反撤回操作

 在编写文件时,如果使用命令或写错了什么时,可以通过 u 键进行撤回;如果不小心多撤回了一次,可以通过 ctrl+r 组合键撤销刚才的撤回操作。

删除操作

命令:

dd             #行删除,删除改行的内容
x              #只删除光标所在的位置的单个字符
n+x            #删除从光标位置起,往后n个字符

注释操作:

#1.常规注释,使用  //  进行注释

#2.命令注释  ctrl+v +hjkl +A +// +ESC键    #可以进行多行注释

 操作二解析:当我们需要进行多行注释时,将光标移动到要注释的内容的第一行,先按下ctrl+v 组合键,再通过 h j k l  键实现 左 下 上 右移动光标至要注释的末行,再按shift+a(也就是相当于打一个大写的A),再按两次 (就相当于是输入注释符 //),再按键盘上的 ESC键  就可以进行多行注释。

其他操作:

Shift+g       #光标定位到文件结尾位置
gg            #光标定位到文件开始位置
n+shift+g     #将光标定位到文件的n行
shift+4       #定位到一行的末尾
shift+6       #将光标定位到当前行的开始位置
w             #以单词为单位向后移动
b             #以单词为单位向前移动
hjkl          #分别表示左下上右移动
shift+~       #光标所在字符进行大小写切换
shift+r       #进入替换模式,将光标所在字符替换为键盘上输入的字符;(自我感觉作用:不用进入编辑模式就可以改数据)
nr            # 将光标所在位置的往后n个字符替换为键盘输入的字符

(2)编辑模式

当我们使用vim打开一个文件后,先是进入的命令模式,是无法直接进行编辑的,这时只需要按一下键盘上的 a 就可以进入到编辑模式,然后你也会注意到在最下边的末行哪里,原来的 NORMAL变成了INSERT。然后就可以编写内容了。

 编写完成后,要保存所写的内容,就可以用ctrl+c  返回到命令模式,然后再shift+:

 进入末行模式,输入 wq 就可以保存并退出vim了。

(3)末行模式

在命令模式下输入冒号:即可进入末行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出等操作。

shift+冒号那个键   #进入末行模式,也就是想当于打一个冒号出来哪个意思

 保存和退出vim

在末行模式下输入以下命令就可以进行相应的操作

W    #保存文件内容
wq   #保存文件内容并退出
q    #退出vim,不保存文件
q!   #强制退出,不会报存文件,谨慎使用!!!

查找

在末行模式下输入 / (也可以在命令模式下直接输入/)然后再输入要查找的关键字。

如果在一个文件中,存在多个满足条件的结果,也可以通过Nn 进行上下切换(N代表上一个结果,n代表next)

被查找到的内容会以高亮的形式显现,如果需要取消高亮,则需要在末行模式中输入noh就可以取消高亮 

替换

在末行模式下输入如下指令,可进行相应的替换

s/被替换内容/新内容         #将光标所在行的新内容替换至被替换的内容,只能替换改行的第一个
s/被替换内容/新内容/g       #可以将该行的所以内容进行替换
%s/被替换内容/新内容        #进行全局替换,将每行中的第一个关键字进行替换
%s/被替换内容/新内容/g      #进行全局替换,将文件中的所有关键字进行替换

(4)可视化模式

在命令模式中,直接按ctrl + v(可视块)或V(可视行)或v(可视)就进入了可视化模式,在可视化模式中可以进行复制,和多行注释(上面已经讲过)。

进行复制操作,在可视化模式下,通过 hjkl 左下上右 进行选取内容,然后按y将所选取的内容复制下来,再按ESC键退出可视化模式,在命令模式下按p就可以将刚才复制的内容进行粘贴。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虹科方案 | Redis Enterprise:适用于任何企业的矢量数据库解决方案

用户希望他们遇到的每个应用程序和网站都具有搜索功能。然而,超过80%的业务数据是非结构化的,以文本、图像、音频、视频或其他格式存储。因此,我们需要一种跨非结构化数据的搜索方式。 什么是矢量数据库(vector database&#xff…

基于深度学习的高精度老虎检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度老虎检测识别系统可用于日常生活中或野外来检测与定位老虎目标,利用深度学习算法可实现图片、视频、摄像头等方式的老虎目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

uniapp学习之【uniapp的返回事件 onBackPress 在微信小程序中不生效的问题】

uniapp 的返回事件 onBackPress 在微信小程序中不生效的问题 场景:页面中点击左上角的返回按钮,监听返回操作,页面返回前执行了一些操作, uniapp 页面生命周期中有 onBackPress ,因此将操作写在了 onBackPress () 页面生命周期钩子当中, H5 测试一切正常,但是微信开…

集合面试题--LinkedList数组

目录 单向链表 介绍 时间复杂度分析 双向链表 时间复杂度分析 总结 ArrayList和LinkedList的区别是什么? 单向链表 介绍 时间复杂度分析 双向链表 时间复杂度分析 总结 ArrayList和LinkedList的区别是什么?

某网站JS加密、OB混淆与CSS反爬实战分析

1. 写在前面 最近一段时间接触了一些小说网站的业务。发现很多的小说网站,甚至一些小站它们的安全防护措施做的都很到位!例如上次说到的的五秒盾也是存在于一个小说小站。今天要讲的这个网站它集JS加密、ob混淆、CSS反爬于一体 目标站点: aH…

【javaEE面试题(四)线程不安全的原因】【1. 修改共享数据 2. 操作不是原子性 3. 内存可见性 4. 代码顺序性】

4. 多线程带来的的风险-线程安全 (重点) 4.1 观察线程不安全 static class Counter {public int count 0;void increase() {count;} } public static void main(String[] args) throws InterruptedException {final Counter counter new Counter();Thread t1 new Thread(()…

王道考研计算机网络第五章知识点汇总

5.1.1 传输层概述 复用:好比家里面每个人都要写信,向信箱里面投入信件,然后由邮递员取走。 分用:就是每个人都收到了各自的回信,然后从信箱中取走各自的信 5.2 UDP协议 注意:用户数据报和检验和都是指的整…

深度剖析线上应用节点流量隔离技术

作者:谢文欣(风敬) 为什么要做流量隔离 源于一个 EDAS 客户遇到的棘手情况:他们线上的一个 Pod CPU 指标异常,为了进一步诊断问题,客户希望在不重建此 Pod 的情况下保留现场,但诊断期间流量还…

chatGPT如何开启 Browsing 功能,实现即时联网查询?

Openai 为每一个 chatGPT Plus 用户都开放了 Browsing 和 plugins 功能。 前者可以在 ChatGPT 觉得有必要的时候(比如你问它今天的新闻),自动联网查询,后者是第三方开发者开发的插件,数量繁多,可以解决各种…

【Distributed】分布式ELK日志文件分析系统

文章目录 一、ELK 概述1. 为什么要使用 ELK2. 完整日志系统基本特征3. ELK 简介3.1 ElasticSearch(ES)3.2 Kiabana3.3 Logstash3.4 其它组件Filebeat缓存/消息队列Fluentd 4. ELK 的工作原理5. Linux 系统内核日志消息的优先级别 二、 部署 ELK 集群服务…

使用python调用ChatGPT API 简单示例

如果你已经获得了OpenAI的API密钥,并且想要使用Python发起ChatGPT对话,你可以使用OpenAI的Python SDK来实现。下面是一个简单的示例代码: 首先,你需要确保已安装OpenAI的Python SDK。你可以使用pip来安装: pip insta…

BaGet做了一个Nuget私有服务器,Nginx代理之后还是会请求被代理得地址

Nuget搭建和使用可以参考官网得文档 https://loic-sharma.github.io/BaGet/installation/docker/ 这是我用Nginx代理之后出现得问题,观察请求url和响应回来得配置。配置中得ip地址得url是我被代理得下游地址,所以是无法访问的。 我原本以为是要去server…

【案例教程】GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践实践技术

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

79. 单词搜索

79. 单词搜索 原题链接:完成情况:解题思路:参考代码: 原题链接: 79. 单词搜索 https://leetcode.cn/problems/word-search/ 完成情况: 解题思路: 参考代码: package 西湖算法题…

微信小程序使用animation.css

animation.css是一款纯css动画库,其中提供了丰富的动画效果 我们直接下载animation.css,即可使用其中的样式 其官网为:Animate.css | A cross-browser library of CSS animations. 1.下载 使用npm下载animation.css: npm inst…

构建工具——webpack、vite

文章目录 构建工具Webpack使用步骤配置文件(webpack.config.js)插件(plugin) ViteVite 也是前端的构建工具使用命令构建配置文件:vite.config.js 构建工具 当我们习惯了在 node 中编写代码的方式后,在回到…

python怎么获取免费代理IP

什么是免费代理IP 免费代理IP是指可以免费使用的代理服务器的IP地址。代理服务器充当客户端和目标服务器之间的中间人,通过转发请求和响应来实现网络数据的传输。使用代理IP可以隐藏真实的客户端IP地址,实现匿名访问网络资源。 免费代理IP通常由个人或组…

实战:k8s证书续签-2023.6.19(测试成功)

实战:k8s证书续签-2023.6.19(测试成功) 目录 推荐文章 https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》 1、前言 k8s集群核心的证书有2套,还有1套非核心的(即使出问题也问题不大)。 ⚠️ 如果是kubeadm搭建的k8s集群,其有效期为…

Spring系列4 -- Bean的作用域和生命周期

目录 1. 案例 2. 作用域定义 2.1 Bean的6种作用域 2.2 设置作用域 3. Sring的执行流程 4. Bean的生命周期 思考: 为什么不是先进行初始化然后再进行设置属性呢? 1. 案例 假设现在有⼀个公共的 Bean,提供给 A ⽤户和 B ⽤户使⽤,然⽽在使⽤的途中…

HTML5中一些酷炫又有趣的新特性代码整理汇总

HTML5中一些酷炫又有趣的新特性代码整理汇总 文章目录 HTML5中一些酷炫又有趣的新特性代码整理汇总前言一、详情标签< details>二、内容可编辑三、标记内容< mark>四、data-* 属性五、输出标签六、数据列表< datalist>七、Meter八、Inputs 前言 HTML5 是 Hy…