Linux之vim编辑器

目录

vim编辑器 

vim编辑器指令

命令模式指令

光标相关

移动光标相关

文本操作

底行模式指令

插入模式

vim配置

vimforcpp 


面试官:小伙子,你是用什么环境编写代码的?

小明:vs2019

面试官:小伙子,你是用什么环境编译代码的?

小明:vs2019

面试官:小伙子,你是用什么环境调试代码的?

小明:vs2019

面试官:小伙子,你是用什么环境运行,发布代码的?

小明:vs2019

通过一个有趣的事例引入今天的主题--------vim编辑器。

vim编辑器 

    我们知道,一份合格的代码要进行几个阶段:编写,编译,调试,运行,发布。在windows环境中,有很多比较nb的软件可以将这五个阶段一起搞定,什么idea,vs2019等等,我们称这些软件为集成开发环境,但是在linux操作系统中,这几种阶段却分别由不同的工具来完成,今天我们要学习的vim编辑器,完成的就是代码的编写工作

vim编辑器:一种类似于windows中记事本的工具,可以完成代码的编写且只能完成代码的编写。

vim的三种模式命令模式插入模式底行模式 。在打开vim编辑器时,默认处于命令模式。

vim编辑器指令

命令模式指令

光标相关

光标就是打开vim编辑器之后可以看到一个很显眼的鲜艳标志就是图标。图示如下:

H,J,K,L:除了键盘上原始的上下左右键外,这四个字母分别代表左(H),下(J),上(K),右(L)四个方向。

移动光标相关

shift + ^:移动至行首。

shift + $:移动至行尾。

gg:移动至起始行

 shift + g:移动至末尾行。

n+shift+g:切换至指定行。

下图从第14行切换至第2行:

b/w:以单词为单位向前移动或者向后移动。

文本操作

yy:复制当前行。

nyy:复制包含当前行以及当前行之后的n-1行。

u:撤销上一操作。

ctrl+r:撤回撤销上一操作的操作。

p:粘贴。

dd+p:实现剪切功能。

np:一次粘贴复制行数的n倍行。

dd:删除当前光标所在行。

ndd:删除当前行在内的总共n行。

shift+~:实现大小写转换。

x:从左向右删除光标之后的一个字符。

nx:从左向右删除光标之后的n个字符。

X:从右向左删除光标之前的一个字符。

nX:从右向左删除光标之前的n个字符。

r:替换光标位置的一个字符。

nr:替换包括光标位置及光标位置之后的n个字符。

shift+r:进行多个字符的替换。

底行模式指令

我们进入vim编辑器时,默认是底行模式,我们可以使用shift+:组合键进入底行模式。

底行模式快捷键:

set nu:设置行号。

set nonu:取消行号。

vs  文件名:进行多文件操作。

ctrl+w:进行多个文件之间的光标的切换,进入多文件之后,如果要退出,可以先进行单文件的退出。

w:保存文件。

w!:强制保存。

q:退出。

q!:强制退出。

wq!:强制保存退出。

插入模式

插入模式在进入vim编辑器之后默认是命令模式,然后按i键进入插入模式。

命令模式如下:

插入模式如下:

插入模式就是我们一般在记事本中的模式,除了不能用鼠标之外其实本质和记事本没有什么区别。

注意:不管是什么模式,只要按了ESC键,都会进入指令模式,只有在指令模式之下才可以切换底行模式,底行模式和插入模式不可以互相转换。

vim配置

一般的默认的vim编辑器如下:

默认状态下是一片空白,我们可以对.vimrc文件进行vim配置,使得vim编辑器更美观高效。

注意:默认在每个用户的工作目录之下,可以使用cd~指令切换到用户的工作目录,然后使用ls -al查看隐藏文件,如果没有.vimrc文件,需要自己进行创建。 在/etc/下面有默认的.vimrc文件,配置之后所有用户有效,但是不建议对该文件进行配置,应该在用户各自的目录下的文件中进行配置,配置之后,vim中的样式是互不相干的,root配置之后也不影响其它用户。

打开.vimrc文件,写入下列两行代码,保存之后,我们与上述vim原本编辑器进行对比:

set nu
set cursorline

我们发现,相较于之前,显示了行号,并且可以更清楚的看见所在行。 还有其它的指令,大家可以在网上自行搜索下载。

vimforcpp 

为了省事,大家可以运行下述指令,可以是vim变成类似vs2019的集成开发环境,原文地址如下:

Gitee 搜索 - Gitee.com

最终根据最后提示的指令完成安装,或者重启xshell即可完成安装。 

以上便是vim编辑器的所有内容,本期内容到此结束^_^

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

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

相关文章

基于AT89C51单片机的8位密码锁仿真与实物制作

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/88657969?spm1001.2014.3001.5503 源码获取 C 源码仿真图毕业设计实物制作步骤01 摘要 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表…

web前端html笔记2

新增状态标签<meter><progress> <meter> 属性 值 描述 high 数值 规定高值 low 数值 规定低值 max 数值 规定最大值 min 数值 规定最小值 optimum 数值 规定最优值 value 数值 规定当前值 <body> <meter high"50" …

【Qt之Quick模块】5. QML基本类型及示例用法

QML格式 以下是一个QML文件 import QtQuick 2.12Window {id: mainWindowwidth: 400height: 300visible: truetitle: "My QML Application"Rectangle {id: rectwidth: 200height: 100color: "red"Text {id: textItemtext: "Hello World!"font.p…

ueditor富文本编辑器中图片上传地址配置以及抓取远程图片地址的配置

一&#xff1a;图片上传保存地址配置 打开文件ueditor.php,找到imagePathFormat进行修改即可 一&#xff1a;远程抓取图片配置 打开文件ueditor.config.js,找到catchRemoteImageEnable&#xff0c;取消注释即可

python dash 写一个登陆页 4

界面 代码&#xff1a; 这里引入了dash_bootstrap_components 进行界面美化 &#xff0c;要记一些className&#xff0c;也不是原来说的不用写CSS了。 from dash import Dash, html, dcc, callback, Output, Input, State import dash_bootstrap_components as dbc app Dash…

[Linux] MySQL数据表(数据结构)管理

一、数据库 1.1 数据库的基本概念 数据库&#xff08;database&#xff09;是用来组织、存储和管理数据的仓库 数据库管理系统&#xff08;DBMS&#xff09;&#xff1a;是实现对数据有效组织&#xff0c;管理和存取的系统软件。 数据的建立和维护功能&#xff0c;数据定义…

STM32实战之深入理解I²C通信协议

目录 IC的物理层 IC的协议层 IC特点 IC 总线时序图 软件模拟IC时序分享 例程简介 例程分享 STM32的IC外设 IIC&#xff08;Inter-Integrated Circuit&#xff09;&#xff0c;也称为IC或TWI&#xff08;Two-Wire Interface&#xff09;&#xff0c;是一种广泛使用的串行…

Apache Flink 进阶教程(六):Flink 作业执行深度解析

目录 前言 Flink 四层转化流程 Program 到 StreamGraph 的转化 StreamGraph 到 JobGraph 的转化 为什么要为每个 operator 生成 hash 值&#xff1f; 每个 operator 是怎样生成 hash 值的&#xff1f; JobGraph 到 ExexcutionGraph 以及物理执行计划 Flink Job 执行流程…

什么是EMC工程师?

摘要: 今天来介绍一下什么是EMC工程师。一 EMC工程师起源要了解什么是EMC工程师&#xff0c;我们首先要了解什么是EMC。 今天来介绍一下什么是EMC工程师。 一 EMC工程师起源 要了解什么是EMC工程师&#xff0c;我们首先要了解什么是EMC。 工程师这个职业相信大家都耳熟能详…

Maven之插件入门

官方文档&#xff1a;https://maven.apache.org/guides/plugin/guide-java-plugin-development.html 命名规范 <yourplugin>-maven-plugin 创建项目 生成项目 方式一、IDEA 2023 方式二、命令行 mvn archetype:generate -DgroupIdcn.lsj -DartifactIdhello-maven-pl…

接口测试学习笔记

文章目录 认识urlhttp协议接口规范Postman实现接口测试设计接口测试用例使用软件发送请求并查看响应结果Postman 自动关联Postman如何提交multipart/form-data请求数据Postman如何提交查询参数Postman 如何批量执行用例单接口测试Postman 断言Postman参数化 接口测试自动化requ…

RabbitMQ入门指南(九):消费者可靠性

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、消费者确认机制 二、失败重试机制 三、失败处理策略 四、业务幂等性 1.通过唯一标识符保证操作的幂等性 2.通过业务判断保证操作的幂等性 总结 前言 RabbitMQ是一个高效、可靠的开源消息队列系…

TikTok地理标签:通过短视频游走全球景点

TikTok&#xff0c;这个全球短视频平台&#xff0c;不仅是创意的播放场所&#xff0c;更是连接全球用户的数字旅行通道。通过TikTok的地理标签&#xff0c;用户可以在短视频中游走于世界各地的景点&#xff0c;感受异国风情&#xff0c;分享旅行心情。本文将深入探讨TikTok地理…

7.3 uvm_config_db in UVM

uvm_config_db类派生自uvm_resource_db类。它是uvm_resource_db顶部的另一层便利层&#xff0c;简化了用于uvm_component实例的基本接口&#xff08;资源库的访问方法&#xff09;。 下面uvm_config_db类的代码段取自uvm源代码。 class uvm_config_db#(type Tint) extends uv…

【GitHub精选项目】短信系统测试工具:SMSBoom 操作指南

前言 本文为大家带来的是 OpenEthan 开发的 SMSBoom 项目 —— 一种用于短信服务测试的工具。这个工具能够发送大量短信&#xff0c;通常用于测试短信服务的稳定性和处理能力。在合法和道德的范畴内&#xff0c;SMSBoom 可以作为一种有效的测试工具&#xff0c;帮助开发者和系统…

【编译原理】基于词法分析器的LL1语法分析器

【编译原理】基于词法分析器的LL1语法分析器 实验要求 设计一个满足以下要求的⽂法&#xff1a; &#xff08;1&#xff09;识别只包含变量声明语句和执行语句程序段的语法结构合法性&#xff1b; &#xff08;2&#xff09;变量声明中只使用int,char,float 3类基本类型&…

Android studio 花式按键

一、activity_main.xml代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.a…

【C++】STL 容器 - list 双向链表容器 ① ( 容器特点 | 容器操作时间复杂度 | 构造函数 )

文章目录 一、 list 双向链表容器简介1、容器特点2、容器操作时间复杂度3、遍历访问5、头文件 二、 list 双向链表容器 构造函数1、默认无参构造函数2、创建包含 n 个相同元素的 list 双向链表3、使用初始化列表构造 list 双向链表4、使用另外一个 list 容器 构造 list 双向链表…

【Java基础】Java中异常分类,他们之间的区别?

&#x1f341;Java中异常分哪两类 &#x1f341;Java中异常类&#x1f341;受检异常&#x1f341;非受检异常 &#x1f341;拓展知识仓&#x1f341;什么是Throwable&#x1f341;Error和Exception的区别和联系&#x1f341; 列举几个常用的RuntimeException&#x1f341;Java异…

关于“Python”的核心知识点整理大全41

目录 scoreboard.py game_functions.py game_functions.py 14.3.8 显示等级 game_stats.py scoreboard.py scoreboard.py scoreboard.py game_functions.py game_functions.py alien_invasion.py 14.3.9 显示余下的飞船数 ship.py scoreboard.py 我们将最高得分圆整…