【Linux从入门到精通】vim的基本使用各种操作详解

news/2024/7/21 12:35:35 标签: vim, linux, 编辑器

  

文章目录

vim%E7%BC%96%E8%BE%91%E5%99%A8%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D-toc" style="margin-left:0px;">一、vim编辑器简单介绍

vim%E7%BC%96%E8%BE%91%E5%99%A8%E7%9A%84%E5%9B%9B%E7%A7%8D%E6%A8%A1%E5%BC%8F-toc" style="margin-left:0px;">二、vim编辑器的四种模式

2、1 正常/普通/命令模式(Normal mode)

2、2 插入模式(Insert mode)

2、3 末行模式(last line mode)

三、命令模式的相关操作实例

3、1 光标的相关操作

3、2 文本操作

四、插入模式下的相关操作

五、末行模式下的相关操作


🙋‍♂️ 作者:@Ggggggtm 🙋‍♂️

👀 专栏:Linux从入门到精通 👀

💥 标题:vim的基本使用各种命令详解 💥

 ❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️

  vim下的操作多而杂,本篇文章会对vim下常用的多个操作进行详细解释。附加动图解释多个操作,超级详细,希望会对你有所帮助。 

vim%E7%BC%96%E8%BE%91%E5%99%A8%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D">一、vim编辑器简单介绍

  vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vimvi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x windowmac os、windows。通俗来讲,vim就是从 vi 发展出来的一个文本编辑器,是程序开发者的一项很好用的工具。

  我们可先看一下vim的键盘图大概了解一下:

  下面会给大家详细解释vim编辑器的使用细节。 

vim%E7%BC%96%E8%BE%91%E5%99%A8%E7%9A%84%E5%9B%9B%E7%A7%8D%E6%A8%A1%E5%BC%8F">二、vim编辑器的四种模式

  vim编辑器下一共有四种模式:正常/普通/命令模式(Normal mode) 插入模式(Insert mode) 、末行模式(last line mode)、可视化模式Visual Mode)

  我们初学的时候主要掌握正常/普通/命令模式(Normal mode) 插入模式(Insert mode) 、末行模式(last line mode)三种模式即可。这三种模式也基本可以满足我们在Linux下编程的需要了。下面对上述的主要三种模式主要功能简单阐述一下:

2、1 正常/普通/命令模式(Normal mode)

  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

2、2 插入模式(Insert mode)

  只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

2、3 末行模式(last line mode)

  文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

三、命令模式的相关操作实例

3、1 光标的相关操作

  vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。为什么「h」、「j」、「k」、「l」还能控制光标上下移动呢?原因很简单,在最早的时候,键盘上并没有上下左右那四个按键,并且也没有鼠标。所以移动光标只能设置到字母上。

  当一行很长的时候,我们查看到行中时,想切换到行尾或者行首。这里就引出了光标位置锚点:shift + ^(光标切换到行首)shift + $(光标切换到行尾)

  正常情况下,一个字母一个字母的移动似乎也很慢,这里也可通过:w(从左往右以单词为单位移动)、b(从右往左以单词为单位移动)。

  相同的问题:一个项目很大时,我们总不能一行一行的移动。所以我们这里就有相关的操作光标可以整个文本移动gg(光标移到起始行)、shift+g(光标移到起结束行)、n+shift+g(光标移到指定的第n行)

3、2 文本操作

  首先复制、粘贴肯定少不了,也是常用的。我们复制可通过:yy(复制当前行)、n+yy(复制当前行和之后的n-1行)。复制后粘贴可通过:p(粘贴)、n+p(一次重复粘贴n行)。

  剪切当然也是必不可少:dd(删除当前所在行)、n+dd(删除当前所在行及后n-1行)、dd后再按p(前且功能)。

  大小写的快速切换shift + ~

  我们知道剪切功能可删除一行,那要是我们想要删除其中的一部分呢?其中删除光标之后的字符:x(删除光标之后的一个字符)、n+x(从左向右删除光标之后的n个字符)、shift+x(从右向左删除光标前的一个字符)、n+shift+x(从右向左删除光标前的n个字符)。

  其中我们还可以进行替换操作r(替换一个光标所在位置的字符)、n+x(替换n哥字符)、shift+r(进入到替换模式)。 

  我们还可进行撤销操作u(撤销误操作)、ctrl+r(撤销最近的撤销)。 

  以上操作均为命令模式下的操作。上述的操作其实我们在插入模式下都可以完成的。

四、插入模式下的相关操作

  插入模式没什么好说的。我们了解怎么进入插入模式就行:

  • 命令模式+i,转换到插入模式,在光标前一个位置进行插入;
  • 命令模式+a,转换到插入模式,在光标后一个位置进行插入; 
  • 命令模式+o,转换到插入模式,在当前行下再新建一行进行插入。

  我们按 Esc 键可从插入模式转换到命令模式。

五、末行模式下的相关操作

  在末行模式的情况下,我们最常用的操作就是:q(退出编辑模式,并没有保存)、w(写入文件,也就是保存) 、wq(保存并退出编辑模式)、!(q!、w!、wq!表示强制操作)。

  在命令模式下,我们可按 shift + : 键可切换到末行模式。正常情况下,我们每行是没有行号的,我们可通过:set nu(列出行号)、set nonu(取消行号)。

  还有一种情况就是我们需要同时对多个文件进行编辑,我们可通过:vs+文件名(开启另一个文件框)

  我们可通过:ctrl +w+w(光标从一个文件转换到另一个文件)。当然,我们想退出其中一个时,我们可进入到末行模式进行退出。注意,此时退出的为光标所在的文件

  以上就是我们在vim下进场用的操作。我们应该多加训练,达到熟练的掌握状态。本篇文章的内容讲解到这里,希望以上内容贵对你有所帮助ovo~


http://www.niftyadmin.cn/n/277647.html

相关文章

一步步解密微商城系统开发流程

作为现代商业的重要组成部分,电子商务系统的建设对于企业的发展至关重要。然而,对于一些小型企业来说,建设一个完整的电子商务系统可能会耗费大量的时间和金钱。微商城系统的出现有效地解决了这个问题,因为它可以在不需要太多资金…

压缩HTML引用字体

内容简介 有些网站为了凸显某部分字体,而引入自定义字体,但由于自定义字体相对都比较大(几M),导致页面加载缓慢;所以本文介绍三种压缩字体的方法,可根据项目情况自行选择。 压缩方法 1、利用Fontmin程序&a…

A 股指数分时行情数据 API 数据接口

A 股指数分时行情数据 API 数据接口 多维度分时指标,指数分时,多时间区间查询参数。 1. 产品功能 支持所有指数数据查询;支持指数分时数据查询;多时间维度分时数据;多维度的统计时间以及数据结果;秒级查询…

C++/Qt 小知识记录3

工作中遇到的一些小问题,总结的小知识记录:C/Qt 小知识 QLineEdit限制输入大于0的正整数QLayout内清空已布局的WidgetWindows结束进程直接结束,子进程不响应结束事件正常结束,子进程响应结束事件 CMake关闭控制台Console实体与值对…

泛型——List 优于数组

数组与泛型有很大的不同: 1. 数组是协变的(covariant) 意思是:如果Sub是Super的子类型,则数组类型Sub[] 是数组类型Super[] 的子类型。 2. 泛型是不变的(invariant) 对于任何两种不同的类型Ty…

Photoshop如何使用选区之实例演示?

文章目录 0.引言1.利用快速选择工具抠图2.制作网店产品优惠券3.利用选区改变眼睛颜色4.抠取复杂的花束5.制作丁达尔光照效果6.利用选区调整图像局部颜色 0.引言 因科研等多场景需要进行绘图处理,笔者对PS进行了学习,本文通过《Photoshop2021入门教程》及…

大数据之Spark集群角色

文章目录 前言一、Spark集群角色介绍(一)Spark集群简介(二)集群角色介绍 总结 前言 #博学谷IT学习技术支持# 上篇文章主要介绍了Spark的运行流程,可以通过链接复习以加深印象:Spark运行流程,本…

评价基于GPT和Bert的方法并用于生信文本识别PPI

检测蛋白质-蛋白质相互作用(PPI)对于理解遗传机制、疾病发病机制和药物设计至关重要。然而,随着生物医学文献的快速增长,越来越需要自动和准确地提取PPI以促进科学知识发现。预训练语言模型,例如生成式预训练Transform…