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

embedded/2024/10/21 6:04:45/
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/embedded/123326.html

相关文章

GPT带我学-设计模式18-访问者模式

概述 访问者模式(Visitor Pattern)是一种行为型设计模式,用于将操作封装到一个访问者对象中,从而可以对不同类型的元素进行操作,而不需要改变这些元素的类。 主要应用场景 访问者模式的主要应用场景包括&#xff1a…

LabVIEW裂纹深度在线监测系统

随着铁路运输技术的快速发展,火车安全问题成为重中之重,尤其是轮面裂纹的检测和管理。裂纹的出现可能导致严重的列车事故,因此,建立可靠的在线监测系统,实时掌握裂纹情况,对保障铁路运输安全至关重要。 La…

昇思学习打卡营学习记录:CycleGAN壁画修复

按照提示,运行实训代码 进入实训平台:https://xihe.mindspore.cn/projects 选择“jupyter 在线编辑器” 启动“Ascend开发环境” :Ascend开发环境需要申请,大家可以申请试试看 启动开发环境后,在左边的文件夹中&am…

oracle 新建用户,用户插入数据报错:ORA-01950: 对表空间 ‘USERS‘ 无权限

oracle 新建用户,用户插入数据报错:ORA-01950: 对表空间 ‘USERS’ 无权限 根据业务需求创建了一个新的表空间和一个新的用户,当用这个新用户创建表时,报错:ORA-01950: 表空 间’USERS’中无权限。我已经把创建表的权限赋给了此用…

C++仿函数的介绍以及priority_queue的介绍和模拟实现

目录 1.仿函数 1.1仿函数的介绍 1.2自定义类型使用仿函数 1.3自定义支持比较大小,但是比较的逻辑不是自己想要的逻辑 2.优先级队列priority_queue 2.1priority_queue的介绍 2.2priority_queue的使用 2.3priority_queue的模拟实现 1.仿函数 1.1仿函数的介绍…

高级java每日一道面试题-2024年9月30日-服务器篇[Redis篇]-Redis持久化有几种方式?

如果有遗漏,评论区告诉我进行补充 面试官: Redis持久化有几种方式? 我回答: Redis 是一个高性能的键值存储系统,常用于缓存、消息队列和实时数据分析等场景。为了保证数据的持久性,Redis 提供了两种主要的持久化方式:RDB(Redi…

C#串口温度读取

背景:每天学点,坚持 要安装好虚拟串口和modbus poll,方便调试(相关资源在文末,也可以私信找我要) 传感器部分使用的是达林科技的DL11B-MC-D1,当时42软妹币买的(官网上面有这个传感…

k8s 之常用命令

作者:程序那点事儿 日期:2024/01/30 01:29 route route -n kubectl apply(不存在就创建,存在就更新,执行的文件较小) kubectl apply -f kube-flannel.yml kubectl apply -f nfs-storage-class.yaml ku…