【Linux系统】第四篇:Linux中编辑器vim的使用

news2024/11/23 12:29:52

文章目录

  • 一、vim的介绍
    • 1、vim的基本模式
    • 2、vim的使用
  • 二、命令模式
    • 1、光标移动操作
    • 2、文本复制、粘贴、剪切、撤销操作
    • 3、文本编辑相关操作
  • 三、插入模式
  • 四、底行模式
    • 底行模式命令集
  • 五、vim的配置原理
  • 六、sudo无法提权问题

一、vim的介绍

vim是Linux下的一款多模式编辑器

注意:

vim不支持调试、编译、运行代码的

与Windows 下有例如 Visual Studio、IDEA 这样的集编写代码、编译代码、调试代码、运行代码、代码关系维护以及各种各样的复杂功能于一身的开发工具,叫做集成开发环境 IDE不同。
vim 是个文本编辑器(相当于我们windows下的记事本),但它更专注于代码的编写,具有语法高亮等功能

1、vim的基本模式

既然是多模式的编辑器,那接下来我们就讲述几种最常用模式吧
在这里插入图片描述

2、vim的使用

vim fileName

输入上述命令即可使用 vim 打开文件,文件不存在则会创建文件。

二、命令模式

vim打开后,默认就是处于命令模式

此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符。可进行的操作有:控制光标移动,字符、单词或行的删改,移动或复制粘贴文本内容,切换到插入或底行模式。

命令模式存在的意义是提高编辑效率。

1、光标移动操作

  • 按【$】:将光标移动到光标所在行的“行尾”
  • 按【^】:将光标移动到光标所在行的“行首”
  • 按【Shift + g】:将光标移动到文章的“底部”
  • 按【gg】:将光标移动到文章的“顶部”
  • 按【n + Shift + g】:跳转光标到指定行,n代表的是行号
  • vim可以直接使用键盘上的上下左右移动光标,但正规的vim是用小写英文字母[ h ]、[ j ]、[ k ]、[ l ],分别控制光标左、下、上、右 移动
  • 按[w] :向后按照单词移动(逐单词,支持n操作)
  • 按[b] :向前按照单词移动(逐单词,支持n操作)
  • cw删除当前单词,并切换为插入模式,cnw删除n个单词,并切换为插入模式

2、文本复制、粘贴、剪切、撤销操作

  • [yy]:复制光标所在行
  • [nyy]:复制多行 - - 例如,「2yy」表示复制从光标所在的该行“往下数”6行内容
  • [p]:粘贴
  • [np]:支持对内容进行多行粘贴
  • [u]:撤销
  • [ ctrl + r ] : 撤销上一次的撤销
  • [dd]:剪切光标所在行(若剪切后不再进行其他操作则相当于:删除光标所在行)
  • [ndd]:支持对内容进行多行剪切(删除) - - 例如,[5dd]
  • [ndd+p]:剪切粘贴操作

3、文本编辑相关操作

  • [Shift + ~]:从光标位置开始逐字进行大小写转换
  • [R]:转换为替换模式直接输入进行批量化替换
  • [r]:替换光标所在的一个字符
  • [nr]:支持对多个字符替换
  • [x]:向后删除光标所在的一个字符,nx向后删除n个字符
  • [X]:向前删除光标所在的一个字符,nX向前删除n个字符

三、插入模式

  1. [ i ] :从命令模式进入插入模式;

  2. [ a ] :从命令模式进入插入模式并后移一个字符;

  3. [ o ] :从命令模式进入插入模式并换行。

四、底行模式

Shift + : 从命令模式进入底行模式

底行模式命令集

1. 保存退出

底行模式下输入w可以保存文件,输入q可以退出程序。带上!表示强制执行。

2. 显示行号

  • 显示行号set nu,取消行号set nonu
  • 跳转至某行,输入行号n即可。

3. 分屏操作

  • 分屏:vs fileName
  • 光标切换:ctrl+ww

4. 不退出vim,执行指令

底行模式下:! + 指令
例如:

!ls				//在vim中使用ls指令
!gcc test.c		//使用gcc编译test.c生成a.out文件
!./a.out		//运行a.out文件

5. 底行模式下的全局替换/全局查找

  • 替换:%s/目标/替换的内容/g

s代表替换,g代表全局

例如:

%s/printf/cout/g

将所有printf替换为cout。

  • 查找:输入/再输入查找的字符
/查找内容

关于vim的使用我们就了解到这里了,这些已经足够我们日常的使用了,若想了解更多,可以查看下方链接。

史上最全Vim快捷键键位图(入门到进阶)

五、vim的配置原理

vim的配置,是一人一份的,一个用户配置的是自己的,不会影响别人

每一个用户在自己的家目录下,有一个属于自己的配置文件,叫做.vimrc(隐藏文件,自己创建)
在这里插入图片描述

例如:利用vim打开.vimrc,在 .vimrc 中新增行号功能,可以在.vimrc中写入set nu,保存退出。
在这里插入图片描述

我们可以在这个配置文件下写下一些指令来进行配置,可以通过去网上搜索,自己试一试,看看效果。

vim一键配置:

在gitee中搜索VimForCpp后,将该链接直接在shell中执行,即可完成配置。

这是文章链接:一键配置vim
在这里插入图片描述

安装指令:

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

卸载指令:

bash ~/.VimForCpp/uninstall.sh

六、sudo无法提权问题

有些用户会遇到无法使用sudo指令的问题,这是由于我们用户不在信任列表中。

解决方法:
1、使用root用户登录
2、使用vim打开/etc/sudoers
3、找到如下位置
在这里插入图片描述
4、在下方添加信任账户后,普通用户wyt即可使用sudo提权。(我们在添加完保存时,可能会警告说没有权限,这是我们只需要强制写入保存即可,wq!)
在这里插入图片描述

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

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

相关文章

【已解决】右键以某应用打开xx文件时,没有“始终”选项怎么办

问题解决方案简单来说详细操作解释问题 右键以某应用打开xx文件时,没有“始终”选项 解决方案 简单来说 在注册表:计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\找到要打开的文件后缀名,删除…

2022尚硅谷SSM框架跟学(五)Spring基础二

2022尚硅谷SSM框架跟学 五Spring基础二3.AOP3.1场景模拟3.1.1声明接口3.1.2创建实现类3.1.3创建带日志功能的实现类3.1.4提出问题(1)现有代码缺陷(2)解决思路(3)困难3.2代理模式3.2.1概念(1)介绍(2)生活中的代理(3)相关术语3.2.2静态代理3.2.3动态代理3.2.4测试3.3AOP概念及相关…

视频 | 生信 linux 实战题目讲解03

点击阅读原文跳转完整教案。1 Linux初探,打开新世界的大门1.1 Linux系统简介和目录理解1.1.1 为什么要用Linux系统1.1.2 Linux系统无处不在1.1.3 免费的Linux系统来一套1.1.4 Linux系统登录-联系远方的她1.1.5 初识Linux系统 - 黑夜中的闪烁是你的落脚点1.1.6 我的电…

使用混沌和非线性控制参数来提高哈里斯鹰优化算法的优化性能,解决车联网相关的路由问题(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

华为路由汇总实验

目录 OSPF路由聚合实验 在ABR上做路由聚合 在ASBR上做路由聚合 BGP路由聚合实验 在AR4-1上做静态聚合 在AR6-3上做手动聚合 ISIS路由聚合实验 R1配置路由聚合 OSPF路由聚合实验 OSPF——基本概念5(汇总、更新、认证)_静下心来敲木鱼的博客-CSDN博…

华为MPLS单域实验配置

目录 配置AS内的MPLS LDP协议 配置PE-PE之间的MP-BGP协议 在PE上配置VPN实例 在CE侧配置PE-CE的路由协议 在PE侧配置PE-CE的路由协议 在PE侧将CE的路由重发布进MP-BGP中 在CE侧将MP-BGP的路由重发布进CE中 MPLS隧道——单域基础理论讲解_静下心来敲木鱼的博客-CSDN博客h…

SPSS常用的10种统计分析

目录 实验一 地理数据的统计处理 一、实验目的 二、实验内容 三、实验步骤 实验二 双变量相关分析 一、实验目的 二、实验内容 三、实验步骤 实验三 主成分分析 一、实验目的 二、实验内容 三、实验步骤 实验四 因子分析 一、实验目的 二、实验内容 三、实…

【Linux】缓冲区 进度条小程序

目录 一、\r && \n 二、缓冲区的概念 三、小程序编写 1、倒数小程序 2、进度条小程序 一、\r && \n C语言中有很多字符,但是宏观上可以分成两类:可显字符、控制字符。 可显字符包括我们见到的 1、2、3....,a、b、c....…

历史最全事件抽取任务分类、经典论文、模型及数据集整理分享

事件抽取技术是从非结构化信息中抽取出用户感兴趣的事件,并以结构化呈现给用户。事件抽取任务可分解为4个子任务: 触发词识别、事件类型分类、论元识别和角色分类任务。其中,触发词识别和事件类型分类可合并成事件识别任务。事件识别判断句子中的每个单词…

Linux面试题

Linux 概述 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想…

Java使用Zxing二维码生成

目录 1、二维码简介 二维码纠错级别 2、ZXing简介 3、示例 3.1 搭建一个maven项目,引入Zxing依赖包 3.2 创建QrCodeUtil.java 类 1、二维码简介 二维条形码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录…

C++ 001:C++ 基础语法

1. 开始之前 1.1 学习路线 这次我是下定决心要学 C 了,而且是系统地,不半途而废地学习 C 了~ 有这个新专栏为证~ 由于某次偶然的机会,我看见了一张 C 竞赛的学习路线表(这里由于表格内容太多就不贴出来)&#xff0c…

Xinlinx zynq7020国产替代 FMQL20S400 全国产化 ARM 核心板+扩展板

TES720D 是一款基于FMQL20S400 的全国产化核心 模 块 。 该核心 模 块 将FMQL20S400 (兼容FMQL10S400)的最小系统集成在了一个 50*70mm 的核心板上,可以作为一个核心模块,进行功能性扩展,特别是用在控制领域&#xff0…

【Java】的面向对象笔记(中)

继承性基础 哲学三问 什么是继承性 银行卡有很多种,有借记卡、信用卡、亲情卡、工资卡等等,他们各有不同,但都具有相同的银行卡特征,即余额、卡号等共有的属性,如果每定义一个类都需要写一次,那就太麻烦…

word、excel文档内容更新技术方案

需求背景 惯例先说下背景。 生产、研发业务上往往使用大量word和excel文档来作为资料载体,如操作规程、控制手册、卡片……,这些文档会反复使用到一些设备、工艺等参数数据。参数属性主要是名称、编码、正常范围、报警上下限、单位等,这些参…

SQL---DDL

目录 一、数据库的相关概念 二、MySQL数据库 1. 关系型数据库(RDBMS) 2. 数据数据库 3. MySQL客户端连接的两种方式 方式一:使用MySQL提供的客户端命令行工具 方式二:使用系统自带的命令行工具执行指令 三、SQL SQL的…

Callable接口_JUC的常见类_多线程环境使用ArrayList

目录 1.Callable接口 相关面试题 2.ReentrantLock 相关面试题 3.信号量Semaphore 4.CountDownLatch 5.多线程环境使用ArrayList 热加载 1.Callable接口 Callable是一个接口,把线程封装了一个"返回值",方便程序员借助多线程的方式计算结果. 类似于Runnable,…

五个了解自己天赋优势的分析工具(三)DISC性格测评

DISC性格测评 DISC系统源于1928年,马斯顿在他的著作《正常人的情绪》(The Emotion of Normal People)中公布了他所发现及发展的性格理论。 该书首次尝试将心理学从纯粹的临床应用向外延伸应用到一般人身上。人有四种基本的性向因子,即Dominance -支配&…

Duet 安装教程

Duet 安装教程1. Duet 概述2. Duet 安装教程2.1 PC 端下载安装Duet2.2 iPad 下载安装 Duet3. 将iPad作为Windows电脑副屏的几种方法结束语1. Duet 概述 Duet 是一款能将iPad或iPhone 变成 Mac 或者 PC 的显示屏的软件; 通过线材连接两台不同的设备,Duet…

抖音聊天”上线,字节最后的社交梦?

转眼间时间来到2023年,距离中国接入国际互联网(即中国互联网起点)已过40年。回顾中国的互联网江湖,先有BAT三足鼎立,后有TMD后浪居上。所谓BAT,即互联网时代领头羊百度、阿里巴巴和腾讯,而TMD则…