Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作

vim简介、配置方案、常用模式的基本操作

本章思维导图:
在这里插入图片描述注:本章思维导图对应的xmind.png文件都已同步导入至资源

1. vim简介

vim是Linux常用的文本编辑器,每个Linux账户都独有一个vim编辑器

本篇我们介绍vim最常用的三种模式:命令模式(command mode)、底行模式(last line mode)、插入模式(insert mode)

1.1 命令模式

  • 每次打开vim编辑器,默认进入的就是命令行模式
    在这里插入图片描述
    在这里插入图片描述

  • 命令行模式下无法在打开的文件里插入任何数据只能执行对应的指令

1.2 底行模式

  • 底行模式由命令模式进入

    进入方法:命令模式下输入:冒号:,即shift + ;

在这里插入图片描述

  • 底行模式下同样不能向打开的文件进行写操作,只能执行对应的底行命令
  • 如果要从底行模式退出,按Esc键即可。且退出到命令模式

1.3 插入模式

  • 插入模式由命令模式进入

    进入方法:命令模式下输入:i或者s或者a

    • i:表示从光标所在位置进行插入
    • a:表示从光标的下一个位置进行插入
    • s:表示,删除光标所在字符,再从光标位置进行插入

在这里插入图片描述

  • 只有在插入模式下才可以对打开的文件进行写操作,即编写程序
  • 如果要从插入模式退出,按Esc键即可。且退出到命令模式

1.4 命令模式、底行模式和插入模式的进出关系

在这里插入图片描述

  • 可以看出,命令模式是核心模式,它既可以进入插入模式,也可以进入底行模式
  • 插入模式和底行模式都可以退出到命令模式
  • 插入模式和底行模式不可以直接转换,必须先进入命令模式,再执行对应的命令进入

2. vim的配置

在这里插入图片描述

我们先用上面展示的vim编辑器写一段简单的展示代码:

在这里插入图片描述

可以看到,默认的Linuxvim编辑器有两大致命缺陷:

  • 界面太过简单,可以说是简陋
  • 编写程序时没有基本的自动缩进、高亮、自动补齐等许多Windos编译器都有的功能,使得用起来极度不方便

2.1 .vimrc 隐藏文件

针对上述问题,Linux允许我们修改vim的配置信息,是其具有更加丰富的功能。而vim编辑器进行修改的信息,就会放在.vimrc这个隐藏文件中

  • root账户中,.vimrc这个隐藏文件默认就在root账户的家目录下:

    在这里插入图片描述

  • 而在普通账户中,.vimrc文件不会被默认创建,需要自己手动创建:

    在这里插入图片描述

2.2 配置vim编辑器的方法

一种方法是下载插件,但这种方法较为复杂,这里不做介绍,感兴趣的小伙伴可以上网查阅

还有一种方法就是直接向.vimrc文件写入指定内容,从而让vim编辑器具备某种指定的功能

  • 例如,我们现象.vimrc文件中输入

    set number 		显示行号
    

    再次打开vim编辑器,其页面就会变为:

在这里插入图片描述

  • 这样,如果想要让自己的vim编辑器具有某种功能,只需要在.vimrc文件中输入对应的指令就可以了

当然了,如果想要一条条的向.vimrc文件输入各种指令最终实现自己预想的美观的vim编辑器,这个过程肯定是费时且费力的。因此,博主已经为大家准备好了一个较为美观的.vimrc配置文件。先来看看效果:

在这里插入图片描述

如果大家想要使用这个配置方案,直接执行下面的命令即可:

sudo yum install -y curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

注:

  • 如果所在的普通账户无法使用sudo指令,请移步Linux——手把手教你解决sudo指令无法使用的问题查看具体解决方案
  • 本配置方案只适用于CentOs系统
  • 最好不要root账号下下载

3. vim常用模式的基本操作

在这里插入图片描述

3.1 命令模式

3.1.1 快速移动光标

  • $shift + 4:将光标快速移动到所在行的最右侧
  • ^shift + 6:将光标快速移动到所在行的最左侧
  • Gshift + g:将光标快速移动到文本的结束位置(最后一个字符)
  • gg:将光标快速移动到文本的开始位置(第一个字符)

3.1.2 移动光标

可以用小键盘的⬆、⬇、⬅、➡将光标移动到对应的位置。

但是在Linux中,更推荐用h, j, k, l这四个字母来移动光标

  • h:即将光标向左移动一个字符
  • j:即将光标向下移动一个字符
  • k:即将光标向上移用一个字符
  • l:即将光标向右移动一个字符

实际上还有其他移动光标的方式,例如:

  • w:以字母为单位,将光标向右移动
  • b:以字母为单位,将光标向左移动

3.1.3 复制与粘贴

可以用相关命令对文本的一行或者多行执行复制粘贴操作:

  • (n)yy:赋值当前(n)行
  • (n)p:在光标所在行的下面粘贴(n行)

3.1.4 撤回与取消撤回

  • u:取消上一步执行的操作
  • Ctrl + r:取消上一次的撤回操作

3.1.5 删除行

ndd:删除当前所在的(n)行

3.1.6 字符处理

替换字符:

  • (n)~:将光标后面的(n个)字符,大小变小写,小写变大写

  • (n)r 输入:将光标后面的(n个)字符全部替换为输入的字符

  • shift + r:进入替换模式,此时光标所在的字符被替换为输入的字符

删除字符:

  • (n)x:删除光标所在(n个)字符(向后删除)
  • (n) + shift + x:删除光标所在(n个)字符(向前删除)

3.1.7 批量化注释和去注释

批量化注释:

  1. 第一步:Ctrl + v
  2. 第二步:h, j, k, l选择要被注释的区域
  3. 第三步:shift + i
  4. 第四步://
  5. 第五步:Esc

批量化去注释:

  1. 第一步:Ctrl + v
  2. 第二步:h, j, k, l选择要被去注释的区域
  3. 第三步:d

3.1.8 多窗口之间的切换

Ctrl + ww

3.2 底行模式

保存与退出:

  • q(!):(强制)退出
  • w(!):(强制)保存
  • wq(!):(强制)保存并推出

在不退出vim编辑器的情况下使用shell命令:

! 命令

新建或者打开文件,并新开一个窗口:

vs filename

3.3 处理vim打开文件报错的情况

如果我们在用vim编辑器处理文件时错误的退出当前的编辑(例如直接关闭云服务器或者虚拟机),那么再次用vim打开相同的文件时,就会出现如下报错信息:

在这里插入图片描述

我们按如下的步骤解决:

  • 第一步:选择R(ecover)选项,即输入字符e,之后会进入vim编辑器,直接进入底行模式正常退出即可

  • 第二步:继续用vim打开该文件,此时同样会弹出相同的报错信息,这次选择(D)elele it选项,即输入字符d,之后就会进入vim编辑器,此时问题已经得到解决,可以正常进行编写代码了。

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

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

相关文章

Leetcode—20.有效的括号【简单】

2023每日刷题&#xff08;二十七&#xff09; Leetcode—20.有效的括号 C实现代码 class Solution { public:bool isValid(string s) {stack<char> arr;int len s.size();if(len 1) {return false;}for(int i 0; i < len; i) {if(s[i] ( || s[i] [ || s[i] {)…

逻辑回归-癌症病预测与不均衡样本评估

1.注册相关库(在命令行输入&#xff09; pip install scikit-learn pip install pandas pip install numpy 2.导入相关库 import pandas as pd import numpy as np from sklearn.metrics import classification_report from sklearn.model_selection import train_test_split…

数据架构与数据模型

数据架构&#xff1a; 待定 数据模型&#xff1a; 数据模型是对现实世界数据特征的抽象&#xff0c;用于描述一组数据的概念和定义。数据模型从抽象层次上描述了数据的静态特征、动态行为和约束条件。数据模型所描述的内容有三部分&#xff0c;分别是数据结构、数据操作和数…

如何查看网站的https的数字证书

如题 打开Chrome浏览器&#xff0c;之后输入想要抓取https证书的网址&#xff0c;此处以知乎为例点击浏览器地址栏左侧的锁的按钮&#xff0c;如下图 点击“连接是安全的”选项&#xff0c;如下图 点击“证书有效”选项卡&#xff0c;如下图 查看基本信息和详细信息 点击详细信…

11/12总结

项目进度&#xff1a; 界面画了搜索机票&#xff0c;预定机票&#xff0c;搜索酒店&#xff0c;预定酒店&#xff0c; 然后是开始写这些功能的后端逻辑

“苹果定律”失效,2023是VR的劫点还是拐点?

因为Pico裁员的事情&#xff0c;VR行业又被讨论了。 Pico于2021年9月被字节跳动收购&#xff0c;当时是出货量排名全球第三的VR 头显生产商。 此前曾有国际机构预测&#xff0c;2023年随着Meta和Pico的硬件更新&#xff0c;苹果Vision Pro的推出&#xff0c;三星电子重新回归VR…

RK3568平台开发系列讲解(Linux系统篇)Linux 目录结构

🚀返回专栏总目录 文章目录 一、VFS二、分区结构三、挂载 mount四、目录结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们从目录管理入手,会更直观的理解 linux 的目录结构。 一、VFS Linux 所有的文件都建立在虚拟文件系统(Virtual File System ,VFS…

用Python的requests库来模拟爬取地图商铺信息

由于谷歌地图抓取商铺信息涉及到API使用和反爬虫策略&#xff0c;直接爬取可能会遇到限制。但是&#xff0c;我们可以使用Python的requests库来模拟爬取某个网页&#xff0c;然后通过正则表达式或其他文本处理方法来提取商铺信息。以下是一个简单的示例&#xff1a; # 导入requ…

IP多播需要使用两种协议(IGMP和多播路由选择协议)

目录 IGMP 多播路由选择协议 组播协议包括组成员管理协议和组播路由协议: 组成员管理协议用于管理组播组成员的加入和离开(IGMP) 组播路由协议负责在路由器之间交互信息来建立组播树(多播路由选择协议) IGMP 图中标有 IP 地址的四台主机都参加了一个多播组&#xff0c;其…

TensorFlow学习笔记--(3)张量的常用运算函数

损失函数及求偏导 通过 tf.GradientTape 函数来指定损失函数的变量以及表达式 最后通过 gradient(%损失函数%,%偏导对象%) 来获取求偏导的结果 独热编码 给出一组特征值 来对图像进行分类 可以用独热编码 0的概率是第0种 1的概率是第1种 0的概率是第二种 tf.one_hot(%某标签…

配置开启Docker2375远程连接与解决Docker未授权访问漏洞

一、配置开启Docker远程连接 首先需要安装docker,参考我这篇文章&#xff1a;基于CentOS7安装配置docker与docker-compose 配置开启Docker远程连接的步骤&#xff1a; //1-编辑/usr/lib/systemd/system/docker.service 文件 vim /usr/lib/systemd/system/docker.service //2…

Linux中字符设备的打开、写入

一个内核模块应该由以下几部分组成。 第一部分&#xff0c;头文件部分。一般的内核模块&#xff0c;都需要 include 下面两个头文件&#xff1a; #include <linux/module.h> #include <linux/init.h> 第二部分&#xff0c;定义一些函数&#xff0c;用于处理内核…