linux中的vim编辑器

news/2024/7/21 13:37:21 标签: vim, linux, 编辑器

Vim是一款强大的文本编辑器,可以在终端中使用。它有很多优点,比如快速、高效、灵活等,但同时也有一些难以掌握的操作。在本篇博客中,我们将详细介绍Vim的各种功能,以及如何使用它来提高的编辑效率。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ApeIbePG-1682147830047)(v2-53579b05d8e5a22e4700170a6132db04_720w.jpg)]

1.基本模式

Vim具有三种基本模式:命令模式、插入模式和查看模式。

1.1命令模式

当打开Vim时,它默认是进入命令模式。在这个模式下,可以使用各种快捷键来执行一系列的操作。

按下(冒号)键或者/ (斜杠),也会进入命令模式。

在命令模式中可以执行一些输入并执行一些 VIM 或插件提供的指令。这些指令包括设置环境、文件操作、调用某个功能等等。

以下是一些常用的Vim命令模式命令:

移动光标:

  • h, j, k, l 分别代表左、下、上、右移动光标
  • 0 或者 | 将光标移到行首
  • $ 将光标移到行尾
  • gg 将光标移到文件的第一行
  • G 将光标移到文件的最后一行

搜索和替换:

  • /text 搜索文本(向下搜索)
  • ?text 搜索文本(向上搜索)
  • n 重复上一次搜索
:s/old/new/g 全局替换 old 为 new

删除和粘贴:

  • x 删除当前光标所在的字符
  • dd 删除当前行
  • yy 复制当前行
  • p 粘贴之前复制的内容

插入模式:

  • i 在当前光标处进入插入模式
  • a 在当前光标后进入插入模式
  • o 在当前行下面新开一行并进入插入模式

保存和退出:

  • :w 保存文件
  • :q 退出 Vim
  • :wq 保存并退出 Vim

1.2插入模式

在命令模式下,如果想要输入文本,需要切换到插入模式。可以按下i键或a键来进入插入模式。在插入模式下,可以像在普通的文本编辑器中一样输入字符。如果想要回到命令模式,可以按下Esc键。

以下是一些常用的 Vim 插入模式命令:

进入插入模式:

  • i 在光标所在位置之前进入插入模式
  • a 在光标所在字符之后进入插入模式
  • I 在光标所在行的开头进入插入模式
  • A 在光标所在行的结尾进入插入模式
  • o 在光标所在行下面插入新的一行并进入插入模式
  • O 在光标所在行上面插入新的一行并进入插入模式

退出插入模式:

  • Esc 退出插入模式并回到命令模式

移动光标:

  • 方向键 或者 hjkl(分别对应左下上右)移动光标

删除字符:

  • Backspace 删除光标左边的字符
  • Delete 删除光标右边的字符
  • X 删除光标左侧的字符

复制粘贴:

  • yy 复制当前行
  • p 在光标所在位置之后粘贴文本(复制或剪切的内容由 y 或 d 命令完成)

撤销和恢复:

  • u 撤销上一次操作
  • Ctrl + r 恢复上一次被撤销的操作

1.3查看模式

可视模式允许选择文本。可以按下v键进入查看模式。可以使用以下命令来浏览文件:

  • j或向下箭头:向下移动一行。
  • k或向上箭头:向上移动一行。
  • Ctrl+d:向下滚动半页。
  • Ctrl+u:向上滚动半页。
  • Ctrl+f:向下滚动一页。
  • Ctrl+b:向上滚动一页。
  • G:移到文件的末尾。
  • gg:移到文件的开头。
  • /string:搜索字符串“string”。按n键继续查找下一个匹配项。
  • ?string:反向搜索字符串“string”。

仅查看,不允许对其进行修改。

1.4快速理解

简单的说,我们可以将这三个模式想成底下的图标来表示,三种模式的切换如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y4Xi35uQ-1682147830050)(image-20230419154903627.png)]

2.高级操作

Vim还有一些高级操作,可以帮助更高效地编辑文本。下面是一些常用的命令:

  • /:查找文本。
  • n:在查找结果中查找下一个匹配项。
  • N:在查找结果中查找上一个匹配项。
  • u:撤销最近的操作。
  • Ctrl+r:重做最近一次被撤销的操作。
  • yy:复制当前行。
  • p:粘贴刚刚复制的内容。
  • :set number:显示行号。
  • :set nonumber:隐藏行号。

3.配置文件

Vim的配置文件为~/.vimrc,在其中可以设置各种选项,以满足的需求。下面是一些常用的配置选项:

  • set tabstop=4:设置制表符宽度为4个空格。
  • set expandtab:将制表符转换为空格。
  • set shiftwidth=4:设置自动缩进宽度为4个空格。
  • set number:显示行号。
  • set hlsearch:高亮显示搜索结果。

4.插件

Vim有很多插件,可以扩展其功能。下面是一些常用的插件:

  • Vundle:用于管理插件。
  • NERDTree:在Vim中浏览文件系统。
  • YouCompleteMe:自动补全代码。
  • Syntastic:检查代码语法错误。
  • CtrlP:快速查找文件。

5.常用示例:

5.1基本常用命令

  1. 打开文件:在命令行中输入“vim 文件名”,例如“vim example.txt”可以打开名为 example.txt 的文件。

  2. 保存文件:在命令模式下,输入“:w”即可保存文件。如果想要保存并退出 Vim,可以输入“:wq”。

  3. 插入模式:在命令模式下按下“i”键即可进入插入模式。在插入模式中,可以直接编辑文本。

  4. 替换模式:在命令模式下按下“R”键即可进入替换模式。在替换模式中,新输入的字符将取代光标后的字符。

  5. 移动光标:在命令模式下使用方向键或“hjkl”键可以移动光标。其中,“h”表示左,“j”表示下,“k”表示上,“l”表示右。

  6. 删除文本:在命令模式下使用“x”键可以删除光标所在位置的字符。使用“dd”可以删除整行文本。

  7. 撤销操作:在命令模式下输入“u”可以撤销上一次操作。多次按下“u”可以一步步地撤销更多的操作。

  8. 查找和替换文本:在命令模式下输入“/关键字”可以查找包含该关键字的文本。输入“:%s/旧字符串/新字符串/g”可以替换文件中所有的旧字符串为新字符串。

5.2演示

要求:创建一个filename.txt,并在里边输入内容,然后查看该文件,并保存退出。

1.首先查看该目录下的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XdlF3Rzo-1682147830051)(image-20230419154149817.png)]

该目录下没有filename.txt文件

2.创建filename.txt,使用vim filename.txt命令

按下回车进入filename.txt的vim编辑器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2fOkYy1-1682147830052)(image-20230419154332763.png)]

此时为命令模式。

3.输入i进入插入模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dFp84GPw-1682147830053)(image-20230419154435999.png)]

在插入模式中进行文本编辑。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ByTjS1LZ-1682147830053)(image-20230419154527737.png)]

4.返回命令模式,按下ESC键。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8WfrA0V8-1682147830054)(image-20230419154606505.png)]

此时为命令模式

5.进入查看模式,按下v键

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KXIGGTYI-1682147830055)(image-20230419155021471.png)]

6.保存退出

首先按下ESC键进入命令模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ntEX1XQd-1682147830056)(image-20230419155100007.png)]

然后输入:wq推出并保存

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zKIBxRt1-1682147830057)(image-20230419155156548.png)]

6.总结

Vim是一款强大的文本编辑器,可以帮助更高效地编辑文本。

它有很多优点,比如快速、高效、灵活等。在使用Vim时,需要掌握一些基本操作,如移动光标、删除文本、保存文件等,同时也需要学习一些高级操作,如查找文本、撤销操作、复制粘贴等。还可以通过修改配置文件和安装插件来扩展Vim的功能,使其更加适合的编辑需求。总之,掌握Vim可以大大提高的编辑效率,让的工作更加高效和便捷。


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

相关文章

初识Java

文章目录 Ⅰ. Java语言概述1、Java是什么2、Java语言重要性3、Java语言发展简史4、Java语言特性 Ⅱ. Java环境安装搭建Ⅲ. 第一条Java语句的执行1、运行Java程序2、java的main方法 Ⅳ. 注释1、基本规则2、注释规范 Ⅴ. 标识符Ⅵ. 关键字 Ⅰ. Java语言概述 1、Java是什么 Java…

SPI协议——同步全双工串行通信方式

文章目录 前言一、简要介绍1、优点2、缺点 二、信号线和连接方式1、四根信号线2、连接方式2.1 多NSS形式2.2 菊花链形式 三、SPI配置1、时钟极性CPOL2、时钟相位CPHA3、四种模式4、数据大小5、其他配置参数 四、通信过程 前言 2023.4.22 阴 一、简要介绍 SPI:Seri…

Hadoop笔记整理

Hadoop 一. 引言 1.1 什么是大数据 大数据:(Big Data):数据量级很大的应用处理。TB级 ,日数据增长GB级 K -- M---- G ---- T ----PB ---- EB ---ZB 1024通过对海量数据进行分析,挖掘,进而发现数据内在的规律,从而为企业或者…

细讲const与引用的关系

目录 先了解语言层面的权限 进入正题引用与const权限关系 引用权限的概念 const引用返回值时错误情况 一:返回到临时空间时权限问题 二:临时空间到调用处保存问题 结论:如果不对子函数内部数据修改、那么在父函数变量ret的类型可以设置…

MATLAB中的函数句柄 理解

MATLAB中的函数句柄 理解 https://zhuanlan.zhihu.com/p/266263265 https://blog.csdn.net/kevinhg/article/details/8861774 1、何为函数句柄? 函数句柄也是MATLAB中的一种常见的数据类型,它的地位类似于其它计算机语言里的函数对象(Javascript,Pyt…

c++11 标准模板(STL)(std::priority_queue)(一)

适配一个容器以提供优先级队列 std::priority_queue 定义于头文件 <queue> template< class T, class Container std::vector<T>, class Compare std::less<typename Container::value_type> > class priority_queue; priority_queu…

安卓SDK和安卓版本的对应关系

安卓SDK和安卓版本的对应关系 Android 14 SDK API level 34 Android 13 SDK API level 33 Android 12L SDK API level 32 Android 12 SDK API level 31 Android 11 SDK API level 30 Android 10 SDK API level 29 Andr…

SQL Server基础 第二章 表结构管理

目录 一、数据类型 1&#xff0c;字符类数据类型 2&#xff0c;数值型数据类型 3&#xff0c;日期/时间型数据类型 二、主键&#xff08;Primary key&#xff09; 三、默认值 四、唯一键&#xff08;Unique&#xff09; 五、自增标识 六、约束 七、外键 一、数据类型 …