必知必会的 Vim 编辑器基础命令
创始人
2024-03-02 04:43:58
0

如果你是一名系统管理员或者开发者,当你在终端工作时有时会需要编辑一个文件。在 Linux 系统中有几种文件编辑器,你可以根据需求选择合适的文件编辑器。在这里,我想推荐 Vim 编辑器。

为什么推荐 Vim 编辑器

相对于创建新文件,你更多是修改已经存在的文件。在这种情况下,Vim 快捷键可以有效地满足你的需求。

下列文章可以帮助你了解对文件和目录的操作。

什么是 Vim

Vim 是被 Linux 管理员和开发者广泛使用的最流行和功能强大的编辑器之一。它可以通过高度的自定义配置来提高文本编辑效率。它是在众多 Unix 默认安装的 Vi 编辑器的升级版。

Vim 通常被称为“程序员的编辑器”,但并不限于此,它也可用于编辑任何类型的文件。它具有许多功能,例如:多次撤销、多窗口和缓冲区、语法高亮、命令行编辑、文件名补全、可视选择等等。你可以使用 :help 命令来获取在线帮助。

理解 Vim 的模式

Vim 有两种模式,详细介绍如下:

命令模式: 当启动 Vim 编辑器后,默认处在命令模式下。你可以在文件中移动并且修改内容,剪切、复制和粘贴文件的一部分,同时发出命令执行更多操作(按 ESC 键进入命令模式)

插入模式: 插入模式用于在给定的文档位置插入文本(按 i 键进入插入模式)

我如何知道我正使用哪种 Vim 模式呢?

如果你正在使用插入模式,你会在编辑器的底部看到 INSERT。如果编辑器底部没有显示任何内容,或者在编辑器底部显示了文件名,则处于 “命令模式”。

命令模式下的光标移动

Vim 快捷键允许你使用不同的方式来移动光标:

  • G – 跳转到文件最后一行
  • gg – 跳转到文件首行
  • $ – 跳转到行末尾
  • 0(数字 0) – 跳转到行开头
  • w – 跳转到下一个单词的开始(单词的分隔符可以是空格或其他符号)
  • W – 跳转到下一个单词的开始(单词的分隔符只能是空格)
  • b – 跳转到下一个单词的末尾(单词的分隔符可以是空格或其他符号)
  • B – 跳转到下一个单词的末尾(单词的分隔符只能是空格)
  • PgDn 键 – 向下移动一页
  • PgUp 键 – 向上移动一页
  • Ctrl+d – 向下移动半页
  • Ctrl+u – 向上移动半页

插入模式:插入文字

下面的 Vim 快捷键允许你根据需要在光标的不同位置插入内容。

  • i – 在光标之前插入
  • a – 在光标之后插入
  • I – 在光标所在行的开头插入。当光标位于行中间时,这个键很有用
  • A – 在光标所在行的末尾插入。
  • o – 在光标所在行的下面插入新行
  • O – 在光标所在行的上面插入新行
  • ea – 在单词的末尾插入

拷贝、粘贴和删除一行

  • yy – 复制一行
  • p / P – 将内容粘贴到光标之后 / 之前
  • dd – 删除一行
  • dw – 删除一个单词

在 Vim 中搜索和替换匹配的模式

  • /模式 – 向后搜索给定的模式
  • ?模式 – 向前搜索给定的模式
  • n – 向后重复搜索之前给定的模式
  • N – 向前重复搜索之前给定的模式
  • :%s/旧模式/新模式/g – 将文件中所有的旧模式替换为新模式
  • :s/旧模式/新模式/g – 将当前行中所有的旧模式替换为新模式
  • :%s/旧模式/新模式/gc – 逐个询问是否文件中的旧模式替换为新模式

如何在 Vim 编辑器中跳转到特定行

你可以根据需求以两种方式达到该目的,如果你不知道行号,建议采用第一种方法。

通过打开文件并运行下面的命令来显示行号

:set number

当你设置好显示行号后,按 :n 跳转到相应的行号。例如,如果你想跳转到第 15 行,请输入:

:15

如果你已经知道行号,请使用以下方法在打开文件时直接跳转到相应行。例如,如果在打开文件时直接跳转到 20 行,请输入下面的命令:

$ vim +20 [文件名]

撤销操作/恢复上一次操作/重复上一次操作

  • u – 撤销更改
  • Ctrl+r – 恢复更改
  • . – 重复上一条命令

保存和退出 Vim

  • :w – 保存更改但不退出 vim
  • :wq – 写并退出
  • :q! – 强制退出

via: https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:萌新阿岩 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

画到哪,动到哪!字节跳动发...
Angtian Wang 是字节跳动的研究员,研究方向包括视频生成...
2025-07-03 13:13:17
里通义开源音频生成模型,能...
7月1日消息,阿里通义实验室开源了旗下首个音频生成模型ThinkS...
2025-07-02 06:12:54
AI与机器人盘前速递丨小米...
【市场复盘】 周四(2025年6月26日),截至收盘,科创人工智能...
2025-06-27 09:11:59
等了30年,微软MS-DO...
曾经称“开源是毒瘤”时有多么嫌弃,现在“微软 ❤️ 开源”就有多么...
2025-06-26 09:11:25
Vibe Coding时代...
Vibe Coding时代的开源:Code is cheap, S...
2025-06-20 14:13:00
14.5寸巨屏+原生AI ...
正值暑假临近、高考成绩即将公布之际, 对于马上步入高等学府的准大学...
2025-06-19 11:13:19

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...