当前位置: 首页 > news >正文

秒变 Vim 高手:必学的编辑技巧与隐藏功能大揭秘

文章目录

  • 前言
  • 一、vi与vim
  • 二、Vim的三种模式
    • 1. 普通模式
    • 2. 插入模式
    • 3. 命令模式
  • 三、Vim中的查找与替换
    • 1. 查找
    • 2. 替换
  • 四、给Vim设置行号
    • 1. 临时显示行号
    • 2. 永久显示行号
  • 总结


前言

在Linux系统中,文本编辑器是开发者和系统管理员日常工作中的重要工具之一。其中,vi和vim是最常用的两个编辑器。本文将介绍vi和vim的基本区别,深入讲解vim的三种模式、常用操作,以及如何在命令模式下进行查找替换,最后会介绍如何在vim中显示行号。
在这里插入图片描述


一、vi与vim

vi (Visual Interface)Linux/Unix系统中内置的一个标准文本编辑器。虽然功能强大,但相对简洁,无法满足更高层次的编辑需求。vim (Vi IMproved) 是对vi的增强版,它在vi的基础上增加了许多功能,比如语法高亮、分屏操作、插件支持等。

vi和vim的区别:

  • 功能增强:vim支持语法高亮、插件、宏等功能,vi相对较为简陋。
  • 兼容性:vim完全兼容vi,因此使用vim进行简单的编辑工作与vi基本一致。
  • 可扩展性:vim支持丰富的扩展功能,用户可以根据需求安装插件。

如果你想使用vim,只需在终端输入vim命令。大多数现代的Linux发行版默认已安装vim,如果未安装可以通过以下命令安装:

sudo apt install vim  # 对于Debian/Ubuntu系统
sudo yum install vim  # 对于CentOS/Fedora系统

二、Vim的三种模式

Vim编辑器有三种主要的模式,每种模式都有其特定的操作方式:

  1. 普通模式 (Normal Mode):默认进入vim时所在的模式,主要用于浏览文件、删除、复制、粘贴等操作。
  2. 插入模式 (Insert Mode):允许用户输入和修改文本的模式。
  3. 命令模式 (Command Mode):用户可以执行文件保存、退出、查找、替换等操作。

1. 普通模式

在系统提示符后输入vim和想要编辑(或建立)的文件名,便可进入vim,如:
在这里插入图片描述
在这里插入图片描述

如果只输入vim,而不带文件名,也可以进入vim,相当于是使用帮助
在这里插入图片描述
在这里插入图片描述

进入vim之后,首先进入的就是普通模式,普通模式是vim的默认模式。在这个模式下,你可以通过移动光标、删除、复制和粘贴文本,还可以切换到其他模式。常见操作包括:

  • 移动光标:用hjkl分别移动光标到左、下、上、右
  • 删除操作:x删除光标下的字符,dd删除当前行
  • 复制与粘贴:yy复制当前行,p在光标之后粘贴

要回到普通模式,按下Esc键即可

2. 插入模式

在插入模式下,用户可以输入文本。进入插入模式的方法包括:
在这里插入图片描述

进入插入模式后,可以正常输入文本,编辑完成后按Esc返回到普通模式。
在这里插入图片描述

3. 命令模式

命令模式用于执行文件操作、查找替换等操作。进入命令模式的方法是在普通模式下按:,此时vim会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为命令模式的提示符,等待用户输入命令。
在这里插入图片描述
在命令模式下,常见操作有:

  • :w:保存
  • :w filename:另存为filename
  • :wq:保存退出
  • :wq filename:以filename为文件名保存后退出
  • :q!:不保存退出
  • :x:保存并退出,功能和:wq相同,其后可以跟文件名

通常退出vim命令为:wq:q!
在这里插入图片描述


三、Vim中的查找与替换

在命令模式下,vim提供了强大的查找与替换功能

1. 查找

首先按Esc键,进入命令模式;输入/?就可以进行查找了

例如:在一个文件中查找ll单词,然后在命令模式下输入:
/ll?ll
在这里插入图片描述

2. 替换

:[范围]s/查找内容/替换内容/[选项]

范围:指定替换的范围,比如%表示整个文件,1,10表示第1到第10行,不指定范围的话就是当前行
选项

  • g:全局替换,即每行中所有匹配的内容都替换
  • c:在替换前确认
  • i:忽略大小写

例子:

  1. 查找并替换当前行:
:s/old/new/g

这条命令会将当前行中的所有old替换为new
在这里插入图片描述

在这里插入图片描述

  1. 查找并替换整个文件:
:%s/old/new/g

这条命令会将文件中的所有old替换为new
在这里插入图片描述
在这里插入图片描述

  1. 全局替换并逐一确认:
:%s/old/new/gc

在替换前会逐个提示用户确认是否替换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、给Vim设置行号

在编写代码时,行号通常非常重要,vim提供了显示行号的功能。可以通过以下两种方式在vim中显示行号:

1. 临时显示行号

在vim中输入以下命令可以临时显示行号,退出vim后行号设置会恢复默认状态:

:set number

在这里插入图片描述
要关闭行号显示,可以使用:

:set nonumber

在这里插入图片描述

2. 永久显示行号

如果你希望每次打开vim时都显示行号,可以通过vim ~/.vimrc命令编辑vim配置文件.vimrc,在其中添加以下内容:

set number

保存配置后,行号会永久生效


总结

通过本文,我们详细介绍了如何在Linux环境下使用Vim编辑器进行文本编辑,并深入探讨了Vim的三种模式及其各自的操作方式。文章从vi与vim的区别开始,逐步讲解了Vim的普通模式、插入模式、命令模式的使用方法,特别是在命令模式下如何进行查找和替换操作。我们还展示了如何通过命令或配置文件来为Vim添加行号功能。希望这篇文章能帮助你更好地掌握Vim编辑器,提高在Linux系统中编辑文本的效率。如果你有任何疑问或建议,欢迎在评论区留言讨论🌹


http://www.mrgr.cn/news/33498.html

相关文章:

  • 开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序
  • ubuntu20.04 解决Pytorch默认安装CPU版本的问题
  • Linux中.NET读取excel组件,不会出现The type initializer for ‘Gdip‘ threw an exception异常
  • 第8章利用CSS制作导航菜单
  • D63【python 接口自动化学习】- python基础之数据库
  • 基于Python的网上银行综合管理系统
  • ActivityManagerService bindService(7)
  • 第十四章:html和css做一个心在跳动,为你而动的表白动画
  • ARM(Day 1)思维导图
  • EECS498 Deep Learning for Computer Vision (一)软件使用指南
  • 【Webpack--015】打包速度优化--loader配置oneOf
  • 江上场景目标检测系统源码分享
  • [mongodb][备份]MongoDBBak.bat
  • 【C++前缀和 排序】2171. 拿出最少数目的魔法豆|1748
  • .netCore运行的环境WindowsHosting和dotnet-sdk区别
  • 返回倒数第k个节点
  • 三阶魔方还原法 勾上回下 上右左左右
  • 字节数据转16进制对应十进制数
  • 【基础算法总结】模拟篇
  • C++之模版的进阶
  • arm-硬件
  • 240922-Conda的在线下载与离线安装
  • LeetcodeTop100 刷题总结(二)
  • 如何用Shell命令结合 正则表达式 统计文本中的ip地址数量
  • 【LeetCode热题100】位运算
  • MELON的难题- 华为OD统一考试(E卷)