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

文章目录


前言

在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,如果未安装可以通过以下命令安装:

bash 复制代码
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. 替换

bash 复制代码
:[范围]s/查找内容/替换内容/[选项]

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

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

例子:

  1. 查找并替换当前行:
bash 复制代码
:s/old/new/g

这条命令会将当前行中的所有old替换为new

  1. 查找并替换整个文件:
bash 复制代码
:%s/old/new/g

这条命令会将文件中的所有old替换为new

  1. 全局替换并逐一确认:
bash 复制代码
:%s/old/new/gc

在替换前会逐个提示用户确认是否替换



四、给Vim设置行号

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

1. 临时显示行号

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

bash 复制代码
:set number

要关闭行号显示,可以使用:

bash 复制代码
:set nonumber

2. 永久显示行号

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

bash 复制代码
set number

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


总结

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

相关推荐
White_Mountain1 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
cominglately2 小时前
centos单机部署seata
linux·运维·centos
魏 无羡2 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
coder_pig2 小时前
📝小记:Ubuntu 部署 Jenkins 打包 Flutter APK
flutter·ubuntu·jenkins
CircleMouse2 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
木子Linux3 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.8243 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维3 小时前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
paintstar3 小时前
vscode 快速切换cangjie版本
ide·vscode·编辑器·仓颉·cangjie
科协软件20183 小时前
vscode+latex快捷键
ide·vscode·编辑器