Linux中的 `vi` 与 `vim` 使用详解

server/2024/10/20 18:56:50/
views" class="markdown_views prism-atom-one-dark">

文章目录

  • Linux中的 `vi` 与 `vim>vim` 使用详解
    • 1. `vi` 编辑器
      • 1.1 什么是 `vi`
      • 1.2 `vi` 的基本用法
        • 1.2.1 启动 `vi`
        • 1.2.2 模式
        • 1.2.3 基本操作
        • 1.2.4 常用命令
      • 1.3 `vi` 的特点
    • 2. `vim>vim` 编辑器
      • 2.1 什么是 `vim>vim`
      • 2.2 `vim>vim` 的基本用法
        • 2.2.1 启动 `vim>vim`
        • 2.2.2 模式
        • 2.2.3 `vim>vim` 的增强功能
        • 2.2.4 `vim>vim` 的基本操作
      • 2.3 安装插件
    • 3. `vi` 与 `vim>vim` 的区别
    • 总结



vi__vim>vim__6">Linux中的 vivim>vim 使用详解

在Linux中,vivim>vim 都是非常流行的文本编辑器,尤其在系统管理、程序开发和配置文件编辑中被广泛使用。vim>vimvi 的增强版本,具有更多功能。下面详细讲解它们各自的特点、使用方式以及二者之间的区别。

vi__10">1. vi 编辑器

vi_12">1.1 什么是 vi

vi 是一种经典的文本编辑器,最早在Unix系统中出现,几乎在所有类Unix系统中都有预装。vi 是一个简单、轻量的编辑器,非常适合在命令行环境中进行快速编辑。由于其普及性和无处不在的特性,vi 已成为Linux/Unix用户的基本工具。

vi__16">1.2 vi 的基本用法

vi_18">1.2.1 启动 vi

在终端中输入以下命令即可打开一个文件:

vi filename
  • 如果文件 filename 存在,vi 将打开它进行编辑。
  • 如果文件不存在,vi 将创建一个新文件并打开。
1.2.2 模式

vi 编辑器有三种基本模式:

  1. 普通模式(Normal mode):这是 vi 的默认模式,用于浏览和操作文本。启动 vi 后首先进入此模式。在普通模式下可以进行复制、粘贴、删除、移动光标等操作。按 Esc 键可以随时返回普通模式。
  2. 插入模式(Insert mode):用于编辑文本。在普通模式下按 i 进入插入模式。插入模式下可以输入文本,按 Esc 返回普通模式。
  3. 命令模式(Command mode):用于执行保存、退出、查找、替换等命令。在普通模式下按 : 进入命令模式。
1.2.3 基本操作
  • 插入模式:在普通模式下按 i 开始插入文本。
  • 保存文件:在普通模式下按 : 进入命令模式,然后输入 w 保存文件。
  • 退出编辑器:在普通模式下按 : 进入命令模式,然后输入 q 退出。若文件有修改但未保存,可以使用 :q! 强制退出。
  • 保存并退出:wq:x
1.2.4 常用命令
  • 移动光标
    • h 左移,j 下移,k 上移,l 右移。
    • w 向前移动一个单词,b 向后移动一个单词。
  • 删除文本
    • x 删除光标处的字符。
    • dd 删除整行。
  • 复制和粘贴
    • yy 复制当前行。
    • p 在光标后粘贴。
  • 撤销操作u 撤销上一步操作。

vi__57">1.3 vi 的特点

  • 轻量级,速度快,适合在资源有限的环境中使用。
  • 无需鼠标,只需使用键盘操作,适合在终端和远程SSH环境下使用。
  • 所有Unix和Linux系统中几乎都默认安装。

vim>vim__63">2. vim>vim 编辑器

vim>vim_65">2.1 什么是 vim>vim

vim>vim 是 “Vi IMproved” 的缩写,即 vi 编辑器的增强版本。vim>vimvi 的基础上增加了许多功能,如语法高亮、代码折叠、多文件编辑、插件支持等,使其更适合编程和复杂文本处理。vim>vim 也是在大多数Linux发行版中默认预装的编辑器之一。

vim>vim__69">2.2 vim>vim 的基本用法

vim>vim_71">2.2.1 启动 vim>vim

vi 类似,在终端中输入以下命令打开文件:

vim>vim filename

如果文件存在,vim>vim 将打开文件进行编辑;如果文件不存在,vim>vim 将创建新文件。

2.2.2 模式

vim>vimvi 拥有相同的三种基本模式(普通模式、插入模式、命令模式),但 vim>vim 的每种模式都有更多的功能和更好的体验。例如,vim>vim 提供了可视模式,用于高效选择文本块。

vim>vim__85">2.2.3 vim>vim 的增强功能
  • 语法高亮vim>vim 可以根据文件类型自动进行语法高亮,方便程序开发者编写和调试代码。
  • 多文件编辑:可以在同一窗口中打开多个文件,使用 :e filename 打开文件,使用 :n:prev 在文件间切换。
  • 分屏:使用 :split:vsplit 进行水平或垂直分屏,方便同时查看和编辑多个文件。
  • 代码折叠:支持折叠代码块,以减少视觉干扰,专注于当前的编辑区域。
  • 撤销树:相比 vi 仅支持一步撤销,vim>vim 允许多步撤销,并且可以管理一个撤销树,进行更复杂的撤销和重做操作。
  • 插件系统vim>vim 拥有强大的插件系统,可以安装各种插件来增强功能,比如代码自动补全、文件树、语法检查等。常用的插件管理器包括 vim>vim-plugVundle 等。
vim>vim__94">2.2.4 vim>vim 的基本操作

vim>vim 继承了 vi 的所有命令,并进行了扩展。例如:

  • 可视模式:按 v 进入可视模式,可以选择文本块,再进行复制、删除等操作。

  • 替换:s/old/new/ 替换当前行第一个匹配的字符串,:%s/old/new/g 替换整个文件中的所有匹配字符串。

  • 搜索:按 / 输入要查找的内容,按 n 查找下一个匹配项,N 查找上一个匹配项。

  • 配置:通过 ~/.vim>vimrc 文件自定义配置,设置缩进、显示行号、语法高亮等。例如:

    vim>vim">set number      " 显示行号
    syntax on       " 启用语法高亮
    set tabstop=4   " 设置tab宽度为4
    

2.3 安装插件

vim>vim 可以通过插件扩展功能,下面介绍简单的插件管理方式:

  • vim>vim-plug:一个流行的插件管理器,易于使用,安装新插件非常方便。安装 vim>vim-plug 后,在 ~/.vim>vimrc 中配置插件列表,然后执行 :PlugInstall 即可安装所有插件。

vi__vim>vim__115">3. vivim>vim 的区别

功能vivim>vim
语法高亮不支持支持多种编程语言语法高亮
撤销操作只支持单步撤销支持多步撤销
多文件编辑支持,但功能有限完善的多文件编辑功能
插件支持不支持支持,可扩展性强
配置文件少量配置丰富的配置项,.vim>vimrc 文件
可视模式不支持支持选择文本块
分屏功能基本支持支持水平和垂直分屏

总结

  • vi 是一个简单、轻量的文本编辑器,在所有Unix和Linux系统中几乎都有预装。适合基本的文本编辑和在资源有限的环境中使用。
  • vim>vimvi 的增强版,具有丰富的功能,如语法高亮、插件支持、多文件编辑、分屏等,适合程序开发和复杂文本处理。对于Linux用户,尤其是程序员来说,vim>vim 是一个功能强大的工具。


http://www.ppmy.cn/server/127385.html

相关文章

Oracle 配置恢复目录catalog

一.介绍 Oracle中使用RMAN备份的数据我们分为两类 RMAN知识库数据库的数据块 Oracle默认把 RMAN知识库 放在目标数据库的控制文件中,在以后进行恢复的时候 我们要先读知识库的信息然后才能恢复。 但这样就产生了一个问题,知识库放在了控制文件上&#xf…

国庆更新|芒果YOLOv8改进181:即插即用,最新注意力机制EMA:具有跨空间学习的高效多尺度注意力模块,ICCASSP论文

💡本篇内容:芒果YOLOv8改进135:最新注意力机制EMA:即插即用,具有跨空间学习的高效多尺度注意力模块,ICCASSP 论文 **EMA|具有跨空间学习的高效多尺度注意力模块 | 即插即用 该模块通常包括多个并行的注意力子模块,每个子模块关注于输入数据的不同尺度或分辨率。这些子模块…

2017~2018博文汇总目录

2018 设置IDEA支持JS ES6语法_idea 社区版 js语法-CSDN博客 Slf4j 不起作用的问题_slf4j不起作用-CSDN博客 GC垃圾回收器:CMS收集器和G1收集器优缺点_g1gc的缺点-CSDN博客 Java并发之AQS详解-CSDN博客 计数排序、桶排序、基数排序_if (array.length 0) return …

检查cuda和显卡的可用性

检查cuda和显卡的可用性 import torch device_gpu torch.device(cuda if torch.cuda.is_available() else cpu) print(device_gpu) print(torch.cuda.is_available())

通讯录动态+文件版本

通讯录 前言初始化通讯录增加联系人展示通讯录查找联系人删除联系人修改联系人排序加载文件到通讯录保存通讯录到文件销毁通讯录 源代码文末 前言 🎊个人主页:https://blog.csdn.net/2401_83251330?spm1000.2115.3001.5343 🎀 🎉欢迎大家点赞…

macOS编译和运行prometheus2.54

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文详述了在macOS(M2芯片)上编译和运行prometheus2.54版本的过程,以及安装node_exporter和grafana并使用prometheus指标进行展示 本地…

FastAPI: websocket的用法及举例

1. Websocket 1.1 Websocket介绍 WebSocket 是一种在单个TCP连接上进行全双工通信的协议,允许客户端和服务器之间相互发送数据,而不需要像传统的HTTP请求-响应模型那样频繁建立和断开连接。 全双工通信(Full-Duplex Communication)是一种通信模式&#…

RabbitMQ的应用问题

一、幂等性保障 幂等性是数学和计算机科学中某些运算的性质, 它们可以被多次应⽤, ⽽不会改变初始应⽤的结果 数学上的幂等性: f(x)=f(f(x)) |x| 数据库操作幂等性: 数据库的 select 操作. 不同时间两次查询的结果可能不同, 但是这个操作是符合幂等性的. 幂等性指的是对资…