【Linux学习笔记】代码编辑工具vim

    • 1. vim工具基本模式的转换
    • 2. vim命令模式下的各种编辑命令
      • 2.1. 光标行定位
      • 2.2. 光标自由定位
      • 2.3. 复制粘贴
      • 2.4. 删除
      • 2.5. 文本的大小写替换
      • 2.6. 文本的替换
      • 2.7. 文本的前删后删
      • 2.8. 撤销操作
    • 3. vim底行模式下的命令
      • 3.1. 设置行号与取消设置行号
      • 3.2. 分屏操作
      • 3.3. 在不退出vim的情况下执行Linux命令
      • 3.4. 字符串替换
    • 4. vim的配置文件

vim是Linux系统下的一个功能强大,多模式的编辑器。如果要拿Windows中的一个编辑器类比,那就是记事本。

1. vim工具基本模式的转换

简单的介绍一下vim的使用,如图所示:

img

img

img

img

三种模式的相互转换图:

img

2. vim命令模式下的各种编辑命令

2.1. 光标行定位

1. 行右定位

命令:shift + 4(连按,4是键盘上面的4,不是小键盘的数字4)

功能:把光标所在位置直接定位到所在行的最右边。

示范:

img

现在我进行定位操作,将光标定位改行的最右端。

img

2. 行左定位

命令:shift + 6(连按,6是键盘上面的6,不是小键盘的数字6)

功能:把光标所在位置直接定位到所在行的最左边。

示范:

img

现在我在命令模式下,输入指令shift + 6,即可将光标定位到该行的最左端。

img

3. 顶部定位

命令:gg(连按)

功能:把光标所在位置直接定位到最顶部。

示范:

img

在命令模式下,输入指令gg,即可将光标定位到最顶部。

img

4. 底部定位

命令:shift + g(连按)

功能:把光标所在位置直接定位到最底部。

示范:

img

在命令模式下,输入指令shift + g,即可将光标定位到最底部。

img

5. 任意行定位

在底行模式下输入指令 set nu 即可显示现在文本的行数。

命令:n + shift + g(n代表的是具体的数字)

功能:将光标定位到第n行的位置

示范:

img

在命令模式下,输入1 + shift + g,即可将光标定位到第1行。

img

2.2. 光标自由定位

上面讲了光标的行定位,可以把光标定位到任意行的位置。

接下来讲一讲光标上下左右的自由定位。需要用到的是 h j k l 四个字母。

  1. h代表的是光标向左移动1位。
  2. j代表的是光标向下移动1位。
  3. k代表的是光标向上移动1位。
  4. l代表的是光标向右移动1位。

记忆小技巧:

看到键盘上的4个字母的位置。

  • h在最左边,可以认为向左移动。
  • j可以认为是jump的单词的缩写首字母,向下跳就是向下移动。
  • k对应的不是最右边,向下和向上的功能也有了,自然就是向上移动咯。
  • l在最右边,可以认为向右移动。

具体的操作就不做示范了,感兴趣的可以自行尝试一下。

另外的,光标还有其他的定位方式。

1. 按照单词向前定位

指令:w

功能:向后按照单词定位

示范:略

2. 按照单词向后定位

指令:b

功能:向前按照单词定位

示范:略

2.3. 复制粘贴

1. 复制

指令:yy

功能:针对光标所在行进行复制

示范:

img

img

2. 粘贴

指令:p

功能: 将复制的文本进行粘贴

示范:如上图。

其中yy(复制) 和 p(粘贴)支持 nyy 和 np操作(n代表的是具体的数字)。

  1. 10yy代表的是从光标所在行开始数10行进行文本的复制
  2. 10p代表的是将文本内容复制10次。

具体的操作就不做演示了,有兴趣的可以自行尝试!

2.4. 删除

命令:dd

功能:针对光标所在行的内容进行删除

示范:

img

输入删除命令,会把光标所在行的内容删除。

img

其中ndd(n代表的是一个具体的数字),指定删除从光标所在行开始删除n行的内容。

搭配上复制命令(p),可以形成剪切的效果。

img

我输入 3dd,然后将光标移动到最底部,看看效果。

img

另外的,还有按照单词删除的命令。

命令:cw

功能:按照单词进行删除

示范:

img

img

删除后,会自动进入插入模式。另外cw也支持cnw操作,具体的含义就是删除n个单词。

2.5. 文本的大小写替换

命令:shift + ~

功能:将光标所在行的内容逐个进行大小写的替换,如果是大写,则换成小写,如果是小写,则换成大写。

示范:

img

输入命令shift + ~后,看看效果。

img

2.6. 文本的替换

  1. 批量化替换

指令:shift + r

功能:进入替换模式。

示范:

img

img

2. 逐个替换

指令:r

功能:将光标选中的一个内容进行替换

示范:

img

按1下r,然后输入你想要更换的字符。

img

2.7. 文本的前删后删

  1. 前删

命令:shift + x

功能:从光标开始,逐个删除光标前的内容(不包括光标)

示范:

img

输入指令shift + x

img

2. 后删

命令:x

功能:从光标开始,逐个删除光标后的内容(包括光标)

示范:

img

输入指令x

img

2.8. 撤销操作

1. 撤销操作

指令:u

功能:将刚才所做的操作撤销,类似Windows系统下的crtl + z

示范:

img

操作完成后,我再按u撤销刚才的dd操作。

img

img

2. 取消撤销操作

指令:crtl + r

功能:取消撤销操作,类似Windows系统下的crtl + y

示范:略

3. vim底行模式下的命令

3.1. 设置行号与取消设置行号

1. 设置行号

命令:set nu

功能:对当前文本进行行号的显示。

示范:

img

img

2. 取消设置行号

指令: set nonu

功能:取消当前文本的行号显示

示范:

img

3.2. 分屏操作

命令: vs + 文件名

功能:把想要分屏的文件与当前文件进行分屏编写。

示范:

img

注意!光标在哪个文件显示,就说明你当前选中了哪个文件!

当你选中了光标所在的文件,进行的所有操作都是在该文件下操作的,不会影响另一个文件。

如果你想更换文件的选择,只需要当前文件的命令模式下,输入crtl + ww即可完成光标跳转到另一个文件的操作。

3.3. 在不退出vim的情况下执行Linux命令

进入到了vim工具,如果你想查询相关的手册,按照一贯的思维是要退出vim工具的。

但是如果在vim工具下,进入到底行模式,输入! + 相应的Linux命令,即可在不退出vim工具的情况下执行相关的Linux命令。

示范:

img

img

按ENTER重新进入vim工具。

img

3.4. 字符串替换

指令:%s/字符串1/字符串2/g

功能:按照上面的指令,就是讲字符串2换成字符串1。

示范:

img

img

4. vim的配置文件

从下载开始到使用,vim工具用起来就像个记事本一样,命令很多,而且写代码也不太方便。

这是因为这是vim的最初模样,你可以根据你自己的喜好去配置你的vim,让你的vim用起来更得心应手。

下面来说说vim的配置。

  1. 首先在用户的家目录下创建一个.vimrc文件用以配置vim.

img

  1. 上网搜索各种vim的配置

例如像这样的

img

都可以加到.vimrc文件中去,用以配置你的vim。

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

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

相关文章

01、Python 安装 ,Pycharm 安装

目录 安装安装 Python安装 Pycharm 创建项目简单添加文件运行 简单爬取下载小视频 安装 python-3.8.10-amd64.exe – 先安装这个 pycharm-community-2022.2.exe 再安装这个 安装 Python python-3.8.10-amd64.exe 安装(这个是其他版本的安装,步骤一样…

ZXing.Net 的Core平台生成二维码

一、引用 二、代码 帮助类 /// <summary>/// ZXing.NET 二维码帮助类/// </summary>public class ZXingHelper{/// <summary>/// 站点二维码的目录/// </summary>private static string QRCodeDirectory "QRCode";/// <summary>/// 使…

MySQL数据库——视图-介绍及基本语法(创建、查询、修改、删除、演示示例)

目录 介绍 语法 创建 查询 修改 删除 演示示例 介绍 视图&#xff08;View&#xff09;是一种虚拟存在的表。视图中的数据并不在数据库中实际存在&#xff0c;行和列数据来自定义视图的查询中使用的表&#xff08;称为基表&#xff09;&#xff0c;并且是在使用视图时动…

爬虫基础 JS逆向

爬虫核心 1. HTTP协议与WEB开发 1. 什么是请求头请求体&#xff0c;响应头响应体 2. URL地址包括什么 3. get请求和post请求到底是什么 4. Content-Type是什么 &#xff08;1&#xff09;简介 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;…

SpringBoot+Mybatis实现多数据源+分页

1 主要依赖版本 &#xff08;1&#xff09;SpringBoot 2.7.8 &#xff08;2&#xff09;Mybatis 2.2.2 &#xff08;3&#xff09;Pagehelper 1.3.0 &#xff08;4&#xff09;MySQL 8.0.26 &#xff08;5&#xff09;Oracle 11.2.0.3 2 概述 &#xff08;1&#xff09;…

List集合拆分为多个List

list 拆分 目录概述需求&#xff1a; 设计思路实现思路分析1.list 拆分是2.用stream的parallel实现list的分批处理3.使用stream的parallel实现list的分批处理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full bus…

[架构之路-239]:目标系统 - 纵向分层 - 中间件middleware

目录 前言&#xff1a; 一、中间件概述 1.1 中间件在软件层次中的位置 1.2 什么是中间件 1.3 为什么需要中间件 1.4 中间件应用场合&#xff08;应用程序不用的底层需求&#xff1a;计算、存储、通信&#xff09; 1.5 中间件分类 - 按内容分 二、嵌入式系统的中间件 2…

uniapp(uncloud) 使用生态开发接口详情4(wangeditor 富文本, 云对象, postman 网络请求)

wangeditor 官网: https://www.wangeditor.com/v4/pages/01-%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8/01-%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8.html 这里用vue2版本,用wangeditor 4 终端命令: npm i wangeditor --save 开始使用 在项目pages > sy_news > add.vue 页面中…

Docker部署Jumpserver堡垒机

Jumpserver 是全球首款完全开源的堡垒机&#xff0c;使用 GNU GPL v2.0 开源协议&#xff0c;是符合 4A 的专业运维审计系统。 Jumpserver 使用 Python / Django 进行开发&#xff0c;遵循 Web 2.0 规范&#xff0c;配备了业界领先的 Web Terminal 解决方案&#xff0c;交互界面…

优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. .运算符

&#x1f974;博主&#xff1a;小猫娃来啦 &#x1f974;文章核心&#xff1a;优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. 运算符 文章目录 引言空值处理的挑战解决方案1&#xff1a;?? 运算符基本用法与 || 运算符的区别实际应用场景举例 解决方案2&#xff…

jenkins出错与恢复

如果你的jenkins出现了如下图所示问题&#xff08;比如不能下载插件&#xff0c;无法保存任务等&#xff09;&#xff0c;这个时候就需要重新安装了。 一、卸载干净jenknis 要彻底卸载 Jenkins&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1、停止 Jenkins 服务&…

CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3

1、车主配对流程介绍 车主配对可以通过车内NFC进行&#xff0c;若支持UWB测距&#xff0c;也可以通过蓝牙/UWB进行。通过NFC进行车主配对总共有5个Phase。本文档主要对Phase3进行介绍。 1) Phase0&#xff1a;准备阶段&#xff1b; 2) Phase1&#xff1a;启动流程&#xff1…

攻防世界web篇-unserialize3

得出php代码残篇 将代码补全后再在线php运行工具中进行运行 在浏览器输入后得到下面的界面 这里需要将O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;} 改为 O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}

从零实现FFmpeg6.0+ SDL2播放器

FFmpeg6.0开发环境搭建播放器代码框架分析解复用模块开发实现包队列和帧队列设计音视频解码线程实现SDL2音频声音输出SDL2视频画面渲染-YUV显示音视频同步-基于音频 地址: https://xxetb.xet.tech/s/3NWJGf

【STM32】--基础了解

一、STM32来历背景 1.从51到STM32 &#xff08;1&#xff09;单片机有很多种 &#xff08;2&#xff09;STM32内核使用ARM&#xff0c;但是ARM不一定是STM32 &#xff08;3&#xff09;ATM32是当前主流的32位高性能单片机 &#xff08;4&#xff09;STM32的特点&#xff1a;高…

docker入门加实战—部署Java和前端项目

docker入门加实战—部署Java和前端项目 部署之前&#xff0c;先删除nginx&#xff0c;和自己创建的dd两个容器&#xff1a; docker rm -f nginx dd部署Java项目 作为演示&#xff0c;我们的Java项目比较简单&#xff0c;提供了一个接口&#xff1a; 配置文件连接docker里的m…

03、爬取资料---但是失败,仅作为记录

1、找网址 进入直播间&#xff0c;里面的用户被设置不对外查看。 如图&#xff0c;找url 2、伪装 user-agent 用户代理 cookie 用户登录后保留的信息 登录信息&#xff1a;找cookie 浏览器信息&#xff1a;找user-agent user-agent 用户代理 cookie 用户登录后保留的信…

Linux-Jconsole连接远程服务器

Jconsole连接远程服务器 一、修改jmxremote.password.template文件二、启动jar项目三、jconsole远程连接1、打开的你jconsole2、远程连接 一、修改jmxremote.password.template文件 进去你的/idk/jre/lib/management目录下可以看到jmxremote.password.template文件 修改jmxr…

sqoop 脚本密码管理

1&#xff1a;背景 生产上很多sqoop脚本的密码都是铭文&#xff0c;很不安全&#xff0c;找了一些帖子&#xff0c;自己尝试了下&#xff0c;记录下细节&#xff0c;使用的方式是将密码存在hdfs上然后在脚本里用别名来替代。 2&#xff1a;正文 第一步&#xff1a;创建密码对…

中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例

中文编程开发语言工具编程实际案例&#xff1a;美发店会员管理系统软件编程实例 中文编程开发语言工具编程实际案例&#xff1a;美发店会员管理系统软件编程实例。 软件功能&#xff1a; 1、系统设置&#xff1a;参数设定&#xff0c;账号及权限设置&#xff0c;系统初始化&a…