在Linux中使用Vim编辑文本的方法详解

 更新时间:2026年05月28日 08:20:49   作者:诸神缄默不语  
这段描述介绍了Vim编辑器的基本使用、启动方式、三种模式切换、光标移动、文本编辑、撤销重做、复制粘贴、保存退出、搜索文本等基础操作流程,并常见问题解决方法,帮助你快速上掌握Vim的核心功能,需要的朋友可以参考下

1. 什么是 Vim

Vim 是一个在终端窗口中运行的文本编辑器。它不需要图形界面,直接通过键盘操作就能高效编辑文本文件。大多数 Linux 发行版已经预装了 Vim,如果没有,可以通过系统的包管理器简单安装(例如 sudo apt install vimsudo yum install vim)。

2. 启动 Vim

打开终端,输入 vim 后面跟上文件名。如果文件已存在,Vim 会打开它;如果文件不存在,Vim 会在你第一次保存时创建它。

vim hello.txt

执行后,就进入了 Vim 的编辑界面。

vi / vim

在许多 Linux 系统中,输入 vi 也会打开 Vim:

vi hello.txt

这是因为 Vim 是 “Vi Improved” 的缩写,它完全兼容传统的 Vi 编辑器。系统通常将 vi 设置为一个指向 Vim 的链接或别名,所以你使用 vi filename 和使用 vim filename 的效果是一样的,都能进入我们教程中描述的 Vim 环境。

不过,有两点值得留意:

功能可能略有不同
有些系统为了精简,当通过 vi 启动时,Vim 可能会运行在“兼容模式”下,部分进阶功能(如多级撤销、语法高亮)会受到限制。
如果你希望确保使用的是 Vim 的完整功能,直接输入 vim 是最稳妥的做法。

极少数最小化环境
在某些极度精简的 Linux 环境(如容器内部或嵌入式系统)中,vi 可能指向的是原版 Vi 或 BusyBox 提供的简化版,功能比 Vim 少很多。但这种情况在常规桌面和服务器系统中很少见。

3. Vim 的三种基本模式

Vim 存在不同的操作模式,这是它与普通记事本最根本的区别。刚开始使用时,理解模式是正确操作的关键。

1. 普通模式

打开 Vim 后首先进入的就是普通模式。在这个模式下,你不能直接输入文字。键盘上的按键会被视为命令,用来移动光标、删除内容、复制粘贴等。无论在哪种模式下,按 Esc 键都会回到普通模式。

可以注意的是,Linux普通模式下光标在字符上(可视化的文本编辑器,光标一般在字符之间),所以delete键删除的就是当前字符,插入也是插入到这个位置(把后面的字符推后)。

2. 插入模式

只有在这个模式下,你才能像其他编辑器一样自由地输入和修改文字。从普通模式进入插入模式有多种方法,最常用的是按 i 键。

3. 命令行模式

这个模式用于执行保存、退出、搜索、跳转行号等操作。在普通模式下按 : 键,屏幕底部会出现一个冒号,等待你输入命令,按回车键执行。搜索时按 / 也会进入类似的模式。

模式之间的切换关系:

  • 启动 Vim → 普通模式
  • 普通模式 按 i → 插入模式
  • 插入模式 按 Esc → 普通模式
  • 普通模式 按 : → 命令行模式
  • 命令行模式 执行完命令自动返回普通模式,也可以按 Esc 手动返回

4. 移动光标

在普通模式下,可以用方向键移动光标,但 Vim 推荐使用以下按键,手可以不离开主键盘区。

  • h / Backspace —— 光标向左移动一个字符
  • j —— 光标向下移动一行
  • k —— 光标向上移动一行
  • l —— 光标向右移动一个字符

其他常用的移动操作(均在普通模式下):

  • w —— 跳到下一个单词的开头
  • b —— 跳到上一个单词的开头
  • 0(数字零)—— 跳到当前行的行首
  • $ —— 跳到当前行的行尾
  • gg —— 跳到文件的第一行
  • G —— 跳到文件的最后一行
  • :数字 —— 在命令行模式输入数字并回车,光标会跳到对应行。例如 :10 跳到第 10 行。

5. 编辑文本

1. 进入插入模式的方法

从普通模式使用以下按键进入插入模式,记住完成输入后一定要按 Esc 回到普通模式。

  • i —— 在光标当前位置之前开始插入
  • I —— 在当前行的行首开始插入
  • a —— 在光标当前位置之后开始插入(append)
  • A —— 在当前行的行尾开始插入
  • o —— 在当前行的下方新开一行并进入插入模式
  • O —— 在当前行的上方新开一行并进入插入模式

2. 删除文本

这里指的是普通模式下执行的删除操作。
在插入模式中直接用delete/backspace删,效果也是一样的。

  • x / Delete —— 删除光标所在处的一个字符
  • X —— 删除光标前一个字符
  • dw —— 删除从光标位置到当前单词结尾的内容(包含单词后的空格)
  • dd —— 删除光标所在的整行
  • d$ —— 删除从光标到行尾的内容

3. 撤销与重做

  • u —— 撤销上一步修改
  • Ctrl + r —— 重做(恢复被撤销的操作)

4. 复制与粘贴

  • yy —— 复制光标所在的整行
  • yiw —— 复制光标当前所在的整个单词(yank inner word)
  • p —— 在光标之后粘贴复制或删除的内容(小写 p)
  • P —— 在光标之前粘贴(大写 P)

使用 dd 删除一行后,也可以用 p 粘贴出来,这相当于“剪切”。

(这里可以注意的是,有些终端程序本身提供了用 Ctrl + C / Ctrl + V 或者鼠标右键来进行复制粘贴的功能,但是vim本身是没有的)

6. 保存与退出

这些操作在命令行模式下完成。先按 Esc 确保回到普通模式,然后按 : 键,屏幕底部出现冒号,再输入以下命令并回车。
(冒号只输一次就行,不是让你输两次冒号的意思)

  • :w —— 保存文件(write)
  • :q —— 退出 Vim(quit)。如果文件有修改但未保存,会提示无法退出。
  • :wq:x —— 保存并退出。
  • :q! —— 强制退出,放弃本次所有修改。

7. 搜索文本

在普通模式下按 / 键,屏幕底部会出现 /,然后输入要查找的关键词,回车确认。光标会跳到第一个匹配的结果。

  • n —— 跳到下一个匹配项
  • N —— 跳到上一个匹配项

例如搜索 “hello”:按 /hello 然后回车。

8. 基础操作流程示例

  1. 在终端输入 vim myfile.txt 打开或新建文件。
  2. 此时处于普通模式,按 i 进入插入模式。
  3. 输入一些文字。
  4. Esc 回到普通模式。
  5. 使用 hjkl 移动光标检查内容。
  6. 想删除一行,可以移动光标到该行,按 dd。如果反悔,按 u 撤销。
  7. 编辑完成后,按 : 进入命令行模式,输入 wq 保存并退出。

9. 常见问题

  • 查看当前模式:屏幕左下角通常会有提示。插入模式会显示 -- INSERT --,普通模式下一般显示文件名或空白,命令行模式底部会出现 :/ 符号。
  • 误操作卡住:连按几次 Esc 可以回到普通模式,然后重新操作。
  • 想放弃修改并退出:使用 :q! 强制退出,不保存任何修改。

常用命令速查表

目的按键 / 命令说明
进入插入模式i在光标前开始输入
返回普通模式Esc任何情况下按此键
保存文件:w命令行模式下执行
退出:q无未保存修改时可用
保存并退出:wq:x
强制退出:q!放弃修改
光标左移h
光标下移j
光标上移k
光标右移l
删除一个字符x
删除整行dd
复制整行yy
粘贴p粘贴在光标之后
撤销u
重做Ctrl+r
搜索/关键词n 查看下一个匹配项

进一步学习

本教程只涵盖了最基础的操作,帮助你用 Vim 完成简单的文件编辑。Vim 自带一个非常实用的交互式教程,在终端中输入以下命令即可启动:

vimtutor

建议跟着教程动手操作一遍,能让你更快地熟悉这些操作并形成肌肉记忆。

以上就是在Linux中使用Vim编辑文本的方法详解的详细内容,更多关于Linux使用Vim编辑文本的资料请关注脚本之家其它相关文章!

相关文章

  • Linux使用vim编辑文件保存时报E514:write error (file system full?)问题解决

    Linux使用vim编辑文件保存时报E514:write error (file system full?)问题解决

    最近在用vi编辑文档,保存的时候,提示如下错误:E514: write error (file system full?),所以这篇文章主要给大家介绍了关于Linux使用vim编辑文件保存时报E514:write error (file system full?)问题的解决方法,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。
    2018-02-02
  • apache配置文件httpd.conf使用详解

    apache配置文件httpd.conf使用详解

    Apache HTTP服务器的配置文件通常称为 httpd.conf,本文主要介绍了apache配置文件httpd.conf使用详解,该文件包含了各种指令,用于定义 Apache 的行为和功能,感兴趣的可以了解一下
    2024-07-07
  • 详解ubuntu 16.04 LTS 降级安装gcc 4.8

    详解ubuntu 16.04 LTS 降级安装gcc 4.8

    本篇文章主要介绍了ubuntu 16.04 LTS 降级安装gcc 4.8 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 详解linux下安装python3环境

    详解linux下安装python3环境

    这篇文章主要介绍了详解linux下安装python环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Linux下Squid代理服务器的架设与维护经验分享

    Linux下Squid代理服务器的架设与维护经验分享

    现有Chinanet ip 126个,不可能分给所有的用户使用。通过架设代理服务器来实现让所有用户使用网络资源是最简单并且相对安全和可靠的方法。
    2011-06-06
  • Linux 查看远程服务器文件状态的方法

    Linux 查看远程服务器文件状态的方法

    今天小编就为大家分享一篇Linux 查看远程服务器文件状态的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Linux中部署MeterSphere实现远程访问

    Linux中部署MeterSphere实现远程访问

    MeterSphere是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,
    本文介绍Linux中部署MeterSphere实现远程访问MeterSphere界面
    2023-10-10
  • Centos7如何修改ssh连接速度

    Centos7如何修改ssh连接速度

    本文介绍了解决Linux服务器SSH连接速度慢的问题,主要原因是DNS反向解析和GSSAPI认证机制,通过修改SSH配置文件中的GSSAPIAuthentication和UseDNS参数,可以显著提升SSH连接速度,优化后耗时可减少至0.3-0.8秒
    2026-04-04
  • Win7下Linux虚拟机安装教程

    Win7下Linux虚拟机安装教程

    这篇文章主要为大家详细介绍了Win7下Linux虚拟机安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Apache中301重定向的配置代码

    Apache中301重定向的配置代码

    Apache下301重定向代码(因为我使用的是WINDOWS 2003 + APACHE 所以本文仅限APACHE服务器使用。)
    2011-02-02

最新评论