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

Linux 高手进阶:Vim 核心模式与分屏操作详解

哎呦 资料合集
链接:https://pan.quark.cn/s/770d9387db5f

在 Linux 的世界里,Vim 被誉为“编辑器之神”,它不仅仅是一个文本编辑器,更是一种高效的编程哲学。无论是修改服务器上的配置文件,还是进行大型项目开发,熟练掌握 Vim 都能极大地提升我们的工作效率。今天的这篇博客,我们将从最基础的核心模式讲起,逐步深入到能够让效率倍增的分屏操作,并通过详细的案例与结果展示,助您彻底征服 Vim。

一、 Vim 的灵魂:理解三大核心模式

Vim 与我们常见的 Windows 记事本等编辑器最大的不同在于其独特的模式设计。理解并熟练切换这三种模式,是掌握 Vim 的第一步。

模式关系图:​启动 Vim​​ -> ​​[命令模式]​​ <-> ​​[编辑模式]​​ ​​启动 Vim​​ -> ​​[命令模式]​​ <-> ​​[末行模式]​

注意: 编辑模式和末行模式之间不能直接切换,必须通过命令模式作为“中转站”。

1. 命令模式 (Command Mode)

这是我们打开 Vim 后默认进入的模式。在此模式下,你敲击的任何按键都会被 Vim 解析为命令,而不是输入字符。例如,移动光标、删除文本、复制粘贴等操作都在此模式下完成。

  • 进入方式:在 Shell 中输入 vim 文件名 后回车,即可打开文件并进入命令模式。
  • 核心特性:它是连接编辑模式和末行模式的桥梁。
2. 编辑模式 (Insert/Edit Mode)

顾名思义,这个模式就是用来进行文本内容输入的。

  • 切换方法:在命令模式下,按下以下任意一个键即可进入编辑模式:
  • ​i​​:在当前光标插入。
  • ​a​​:在当前光标追加。
  • ​o​​:在当前行的下一行新建一行并开始编辑。
  • ​I​​:在当前行的行首插入。
  • ​A​​:在当前行的行尾追加。
  • ​O​​:在当前行的上一行新建一行并开始编辑。
  • ​s​​:删除当前光标所在字符,并进入编辑模式。
  • ​S​​:删除当前光标所在行,并进入编辑模式。
  • 返回命令模式:在编辑模式下,按 Esc 键。

【代码案例】

  1. 在您的 Linux 终端中创建一个新文件并用 Vim 打开:
vim hello.txt
  1. 运行结果: 您会看到一个空白的 Vim 界面,光标在左上角闪烁,此时正处于命令模式
  2. 操作: 按下 i 键。
  3. 运行结果: 注意 Vim 窗口的左下角,会出现 -- INSERT ---- 插入 -- 的提示。这表示您已成功进入编辑模式,现在可以自由输入文本了。
-- INSERT --
  1. 操作: 输入 "Hello, Vim!",然后按 Esc 键。
  2. 运行结果: 左下角的 -- INSERT -- 提示消失,您已返回命令模式
3. 末行模式 (Last-Line Mode)

此模式用于执行保存、退出、查找、替换等高级指令。

  • 进入方式:在命令模式下,按 : 键。
  • 常用命令
  • ​:w​​:保存 (Write) 文件。
  • ​:q​​:退出 (Quit) 编辑器。
  • ​:wq​​:保存并退出。
  • ​:q!​​:强制退出,不保存任何修改。
  • ​:x​​:功能同 ​​:wq​​,在文件有修改时保存并退出。
  • 返回命令模式
  • 成功执行命令后,通常会自动返回命令模式。
  • 如果输入了命令但不想执行,可以按两次 ​​Esc​​ 键返回。

【代码案例】

  1. 接上例,我们已经输入了 "Hello, Vim!" 并回到了命令模式
  2. 操作: 按下 : 键。
  3. 运行结果: 光标会立即跳转到 Vim 窗口的左下角,并显示一个冒号,等待您输入命令。
:
  1. 操作: 输入 wq 并回车。
:wq
  1. 运行结果: Vim 将会保存文件内容并退出,返回到您的 Shell 终端。您可以使用 cat hello.txt 命令查看文件内容,确认 "Hello, Vim!" 已被成功写入。
二、 效率倍增器:Vim 分屏操作详解

当需要同时查看或编辑多个文件,或者一个文件的不同部分时,Vim 强大的分屏功能就派上用场了。

1. 翻屏快捷键(快速浏览)

在深入分屏前,先了解几个在命令模式下快速浏览文件的快捷键,这在处理大文件时非常有用。

  • ​Ctrl + u​​:向上翻半屏 (Up)。
  • ​Ctrl + d​​:向下翻半屏 (Down)。
  • ​Ctrl + f​​:向下翻一屏 (Forward)。
  • ​Ctrl + b​​:向上翻一屏 (Backward)。
2. 水平分屏 (​​:sp​​)

将当前窗口水平分割为上下两个。

  • ​:sp​​:将当前文件在下方新窗口中打开。
  • ​:sp 文件名​​:在下方新窗口中打开指定文件。

【代码案例】

  1. 打开我们之前创建的 hello.txt 文件。
vim hello.txt
  1. 操作: 在命令模式下,输入 :sp 并回车。
  2. 运行结果: 屏幕会被一条状态栏水平分割成上下两个窗口,两个窗口都显示 hello.txt 的内容。光标会停留在上方的窗口。
+---------------------------------+
| Hello, Vim!                     |  <-- 光标在这里
| ~                               |
| ~                               |
+=================================+
| Hello, Vim!                     |
| ~                               |
| ~                               |
+---------------------------------+
:sp
3. 垂直分屏 (​​:vsp​​)

将当前窗口垂直分割为左右两个。

  • ​:vsp​​:将当前文件在右侧新窗口中打开。
  • ​:vsp 文件名​​:在右侧新窗口中打开指定文件。

【代码案例】

  1. 假设我们有一个 main.cpp 和一个 utils.h 文件。先用 Vim 打开 main.cpp
vim main.cpp
  1. 操作: 在命令模式下,输入 :vsp utils.h 并回车。
  2. 运行结果: 屏幕被垂直分割,左侧是 main.cpp,右侧是 utils.h。这对于参照头文件编写实现代码的场景极为方便。
+----------------------+----------------------+
| // main.cpp          | // utils.h           |
| #include "utils.h"   | void helper();       |
|                      |                      |
| int main() {         |                      |
|   helper();          |                      |
|   return 0;          |                      |
| }                    |                      |
+======================+======================+
:vsp utils.h
4. 窗口切换

在多个分屏窗口间移动光标。

  • ​Ctrl + w + w​​:循环地在所有窗口间切换。
  • ​Ctrl + w + 方向键(h,j,k,l)​​:切换到指定方向的窗口(例如 ​​Ctrl+w+l​​ 切换到右侧窗口)。

【代码案例】

  1. 接上例,当前光标在右侧的 utils.h 窗口。
  2. 操作: 按下 Ctrl + w,然后迅速按下 h
  3. 运行结果: 光标会立即从右侧的 utils.h 窗口移动到左侧的 main.cpp 窗口。使用 Ctrl+w+w 也能达到同样的效果(在只有两个窗口时)。
5. 窗口退出
  • ​:q​​:关闭当前光标所在的窗口。
  • ​:wq​​:保存并关闭当前光标所在的窗口。
  • ​:qa​​ 或 ​​:qall​​:关闭所有窗口。如果存在未保存的修改会失败。
  • ​:wqa​​ 或 ​​:wqall​​:保存所有窗口的修改并全部关闭。

【代码案例】

  1. 在左右分屏的状态下,光标位于左侧的 main.cpp 窗口。
  2. 操作: 输入 :q 并回车。
  3. 运行结果: 左侧的 main.cpp 窗口被关闭,整个 Vim 界面只剩下右侧的 utils.h 窗口。关闭最后一个窗口将会退出 Vim。
三、知识小结与实战演练

为了巩固所学,我们来完成一个常见的开发任务:从头文件中复制函数声明到源文件中

  1. 准备文件
echo "void print_message();" > func.h
echo -e "#include \"func.h\"\n\nint main() {\n\n  return 0;\n}" > main.c
  1. 打开并分屏
vim main.c
:vsp func.h  # 垂直分屏打开头文件
  • 结果:左边是 ​​main.c​​,右边是 ​​func.h​​。
  1. 切换并复制
  • 按 ​​Ctrl + w + l​​ 切换到右边的 ​​func.h​​ 窗口。
  • 移动光标到 ​​void print_message();​​ 这一行。
  • 在命令模式下按 ​​yy​​ 复制整行。
  1. 切换并粘贴
  • 按 ​​Ctrl + w + h​​ 切换回左边的 ​​main.c​​ 窗口。
  • 将光标移动到 ​​main​​ 函数下方,用于实现函数。
  • 按 ​​p​​ 粘贴。
  1. 编辑并保存退出
  • 在 ​​main.c​​ 中完成 ​​print_message​​ 函数的实现。
  • 输入 ​​:wqa​​ 保存所有文件并退出 Vim。

通过这个简单的流程,我们实践了分屏、窗口切换、跨文件复制粘贴以及全部保存退出,这正是 Vim 分屏操作在实际工作中的威力体现。

核心知识点回顾表

知识点

核心内容

易混淆点/操作要点

Vim 模式

命令模式(中枢)、编辑模式(输入)、末行模式(指令)

模式间切换必须经过命令模式。

进入编辑模式

​i​​​, ​​a​​​, ​​o​​​, ​​I​​​, ​​A​​​, ​​O​​ 等

小写字母在光标附近操作,大写字母在行首/尾操作。

末行模式命令

​:w​​​ (保存), ​​:q​​​ (退出), ​​:wq​​​ (保存退出), ​​:q!​​ (强退)

​:q!​​ 会丢失未保存的修改,请谨慎使用。

水平分屏

​:sp [文件名]​​,将屏幕上下分割。

适合查看同一文件的不同部分。

垂直分屏

​:vsp [文件名]​​,将屏幕左右分割。

对比不同文件(如 .h 和 .c)的利器。

窗口切换

​Ctrl + w + w​​​ (循环), ​​Ctrl + w + 方向键​​ (定向)

方向键 ​​h,j,k,l​​ 分别对应左、下、上、右。

窗口退出

​:q​​​ (关闭当前), ​​:wqa​​ (保存并关闭所有)

注意区分关闭单个窗口和关闭所有窗口的命令。


http://www.dtcms.com/a/457424.html

相关文章:

  • 计组2.2.0——逻辑门电路,多路选择器,三态门
  • intellij 网站开发公司网页制作哪家比较好
  • 基于GD32的RT-Thread移植(邪修版)
  • 如何让百度口碑收录自己的网站怎么用vs2015做网站
  • 2017优秀网站设计案例个人域名备案有什么风险
  • [论文阅读] AI+软件工程(需求工程)| 告别需求混乱!AI-native时代,需求工程的5大痛点与3大破局方向
  • WPF基本布局容器与控件
  • 临时需电子印章?无需下载注册生成高清印章
  • Qt基础之五十:Qt设置样式的几种方式
  • 理解Roo Code的速率限制与成本优化
  • 农村建设集团有限公司网站重庆南川网站制作价格
  • 爬虫调试技巧:常用工具与日志分析,快速定位问题
  • 反向代理和负载均衡
  • 水果网站设计论文网页传奇游戏中心
  • 兰州网站建设lst0931wordpress调用函数大全
  • JavaScript核心构成与基础语法详解1
  • Redission分布式锁、WatchDog续约、布隆过滤器
  • 《jQuery 捕获》
  • 【开题答辩全过程】以 阿歹果园养鸡场管理系统为例,包含答辩的问题和答案
  • 【数据结构】考研数据结构核心考点:二叉排序树(BST)全方位详解与代码实现
  • 河北做网站哪家公司好广州市网站建设公
  • AI学习日记——卷积神经网络(CNN):卷积层与池化层的概念
  • JavaScript中的axios
  • 我们提供的网站建设响应式网站 尺寸
  • Robotframework 并发执行
  • 兰州拼团网站建设网站建设知识点的总结
  • 做门窗的建网站怎么赚钱网页设计图片怎么变小
  • 第十六篇: 算法复杂度分析:大O表示法实战指南
  • 网站倍攻击wordpress 换行符
  • 【PyTorch】神经风格迁移