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

news/2024/11/21 1:29:21/

文章目录

  • 一、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.ppmy.cn/news/12485.html

相关文章

U-Boot 之零 源码文件、启动阶段(TPL、SPL)、FALCON、设备树

最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,在之前的博文 Linux 之八 完整嵌入式 Linux 环境、(交叉)编译工具链、CPU 体系架构、嵌入式系统构建工具 中详细介绍了嵌入式 Linux 环境,接下来就是重点学习一…

C++ 简单实现RPC网络通讯

RPC是远程调用系统简称,它允许程序调用运行在另一台计算机上的过程,就像调用本地的过程一样。RPC 实现了网络编程的“过程调用”模型,让程序员可以像调用本地函数一样调用远程函数。最近在做的也是远程调用过程,所以通过重新梳理R…

迭代器模式

迭代器模式 1.迭代器模式基本介绍 迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式 如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客…

【机器学习之模型融合】Voting投票法简单实践

目录 前言💜 1、使用sklearn实现投票法💔 1.1、导入工具库,准备数据💕 1.2、定义交叉验证评估函数💖 1.3、建立基于交叉验证的benchmark、做模型选择🌟 1.4、构建多组分类器、进行融合💥…

【web安全】——文件上传漏洞

作者名:白昼安全主页面链接: 主页传送门创作初心: 舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右铭…

【TypeScript】TS泛型

TypeScript泛型 文章目录TypeScript泛型泛型-基本介绍泛型-泛型函数简化泛型函数调用泛型约束指定更加具体的类型添加约束多个类型变量泛型接口JS 中的泛型接口泛型-基本介绍 泛型是可以在保证类型安全前提下,让函数等与多种类型一起工作,从而实现复用&…

从0到1【建站:AWS+Ubuntu+Python+Django+uwsgi+nginx+ssl】

目录一、创建服务器1、进入AWS官网2、启动实例3、创建新密钥对4、选择密钥对5、网络设置6、配置存储7、启动实例8、查看实例9、配置安全组二、连接服务器1、在AWS官网进行连接2、使用Xshell7进行连接3、设置允许root登录三、域名解析1、进行腾讯云官网2、管理域名解析3、绑定公…

简单了解OSI网络模型

本文为学习笔记,根据了解需求摘抄自下篇文章 参考:原文地址 作者:sunsky303 目录 OSI模型 TCP/IP分层模型 OSI模型 OSI 模型(Open System Interconnection model)(七层网络模型)是一个由国际标准化组织提出的概念模…