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

【Linux】开发工具命令指南:深度解析Vim的使用操作

在这里插入图片描述
欢迎各位佬进行交流,我们一起无限进步!!!!!!!!!!

文章目录

    • Vim:多模式高效文本编辑器
      • 1. 初次体验 Vim
      • 2. Vim 核心工作模式(5 种模式详解)
      • 3. 命令模式:高效操作核心区
        • (1)光标定位(精准移动,告别方向键)
        • (2)编辑命令(复制、删除、撤销)
        • (3)模式切换命令
      • 4. 命令行模式(底行模式):文件与编译操作
        • (1)文件基础操作
        • (2)搜索与替换
        • (3)编译与运行(以 C 语言为例)
        • (4)分屏操作(多文件同时编辑)
      • 5. 可视模式:批量操作神器
        • (1)批量添加注释(以 C 语言 `//` 为例)
        • (2)批量取消注释
        • (3)批量剪切/复制
      • 6. Vim 配置:自定义你的编辑器
        • (1)基础配置流程(新手必备)
        • (2)进阶配置与模式查询


Vim:多模式高效文本编辑器

1. 初次体验 Vim

  • 启动与基础操作:终端输入 vim 文件名(如 vim test.c)启动,默认进入命令模式(此时输入字符会被识别为命令,而非文本);
    • 若启动后无明显反应,无需慌张,按 i 键即可进入插入模式(界面会显示 --INSERT-- 提示),此时可正常输入代码;
    • 退出提示:若需放弃编辑退出,按 Esc 返回命令模式,输入 :q! 强制退出;若需保存退出,输入 :wq 或快捷键 Shift+zz
  • Vim 界面参考:
    Vim 界面示意图:展示命令模式与插入模式切换

2. Vim 核心工作模式(5 种模式详解)

Vim 的核心优势是“模式化编辑”,不同模式对应不同操作场景,新手可先掌握前 3 种基础模式,后续逐步熟悉剩余模式。模式分类及操作逻辑如下表:

模式类型触发方式核心用途退出方式(返回命令模式)新手重点度
命令模式(默认)启动 Vim 或按 Esc光标移动、复制/删除/撤销等无需退出(默认状态)★★★★★
插入模式i(光标前)/a(光标后)/o(新行)输入文本内容Esc★★★★★
命令行模式(底行):(即 Shift+;保存、退出、编译、搜索等Esc 或执行命令后返回★★★★☆
可视模式(块级/行级)Ctrl+v(块级)/v(字符级)/V(行级)批量注释、删除、复制Esc★★★☆☆
替换模式Shift+r(即 R实时替换光标后字符Esc★★☆☆☆

关键规则:插入模式、命令行模式、可视模式、替换模式之间无法直接切换,必须先按 Esc 返回命令模式,再切换至其他模式。

  • 模式切换逻辑参考:
    Vim 模式切换示意图:展示各模式间的切换关系

3. 命令模式:高效操作核心区

命令模式无需触发,启动后默认进入,所有操作通过“快捷键命令”完成,按功能分类如下:

(1)光标定位(精准移动,告别方向键)
  • 行级定位:

    • 跳转到第 n 行:n gg(n 为数字,如 5 gg 跳转到第 5 行,无需加“+”);
    • 跳转到文件首行:gg(无数字,直接按 gg);
    • 跳转到文件末尾:G(即 Shift+G无需加数字,原“n+Shift+G”为错误命令,会导致跳转到第 n 行而非末尾)。
  • 行内定位:

    • 行尾:Shift+$(光标快速移到当前行最后一个字符);
    • 行首:Shift+^(光标快速移到当前行第一个非空字符);
    • 方向替代(兼容无方向键设备):h(左)、j(下)、k(上)、l(右)(原“左下上右”顺序错误,需纠正为“左、下、上、右”);
    • 单词级移动:w(跳转到下一个单词开头)、b(跳转到上一个单词开头)。
(2)编辑命令(复制、删除、撤销)
  • 复制与粘贴:
    • 复制 n 行:n yy(如 3 yy 复制当前行及下方共 3 行);
    • 粘贴:n p(将复制内容粘贴到当前行下方,n 为粘贴次数,如 2 p 粘贴 2 次)。
  • 撤销与重做:
    • 撤销上一步:u(可连续撤销,只要不退出 Vim);
    • 重做撤销操作:Ctrl+r(恢复被 u 撤销的步骤)。
  • 删除与剪切:
    • 删除 n 行(剪切):n dd(如 2 dd 删除当前行及下方 1 行,删除内容可通过 p 粘贴,等同于“剪切”);
    • 字符级删除:x(删除光标后 1 个字符)、X(删除光标前 1 个字符)。
  • 其他实用命令:
    • 大小写转换:Shift+~(光标所在字符切换大小写,按 n Shift+~ 连续转换 n 个字符);
    • 局部替换:n r(从光标开始替换 n 个字符,如 4 r1 将光标及后续 3 个字符替换为 1)。
(3)模式切换命令
  • 进入替换模式:Shift+r(即 R),此时输入的字符会直接覆盖光标后的字符,界面显示 --REPLACE-- 提示;
    Vim 替换模式示意图:展示实时替换字符的效果
  • 进入插入模式:i(光标前插入)、a(光标后插入)、o(当前行下方新增一行并插入),按需选择即可(如在单词末尾补全用 a,新增行写代码用 o)。

4. 命令行模式(底行模式):文件与编译操作

: 触发命令行模式,输入命令后按回车执行,核心命令按场景分类:

(1)文件基础操作
  • 保存与退出:
    • :w:仅保存文件(不退出,适合编辑中阶段性保存);
    • :q:退出 Vim(需先保存,未保存时会报错);
    • :wq:保存并退出(等同于命令模式的 Shift+zz);
    • :!:强制执行(如 :q! 强制退出不保存、:w! 强制保存只读文件)。
  • 行号控制:
    • :set nu:显示行号(写代码查错必备);
    • :set nonu:隐藏行号(需简洁界面时使用)。
(2)搜索与替换
  • 关键词搜索::/关键词(如 :/printf,回车后定位到第一个匹配项,按 n 找下一个,Shift+n 找上一个);
  • 全局替换:::%s/旧内容/新内容/g% 表示整个文件,s 表示替换,g 表示全局匹配,如 :%s/int/long/g 将所有 int 改为 long);
    Vim 全局替换示意图:展示底行模式下的替换命令与效果
(3)编译与运行(以 C 语言为例)
  • 编译代码::! gcc 源码文件 -o 输出文件名(如 :! gcc code.c -o myprog,生成可执行文件 myprog);
    • 简化编译:若无需自定义文件名,可直接输入 :! gcc code.c(默认生成 a.out);
  • 运行程序::! ./输出文件名(如 :! ./myprog,执行编译后的程序并查看输出);
  • 快速执行历史命令:按 :! 后加“命令首字母”,按 Tab 键可补全历史命令(如 :!g 补全 ! gcc code.c)。
(4)分屏操作(多文件同时编辑)
  • 垂直分屏::vs 文件名(如 :vs test.c,在当前窗口右侧新增分屏并打开 test.c,光标在哪就从哪个窗口分屏);
    Vim 垂直分屏示意图:展示两个文件同时编辑的分屏界面
  • 分屏切换:Ctrl+ww(在多个分屏间循环切换,按一次切换一个窗口);
  • 关闭分屏:在目标分屏中输入 :q(若为最后一个分屏则退出 Vim)。

5. 可视模式:批量操作神器

可视模式主要用于“批量选中文本”,其中 块级可视模式Ctrl+v 触发)最适合代码注释、删除等场景,操作步骤如下:

(1)批量添加注释(以 C 语言 // 为例)
  1. 命令模式下按 Ctrl+v 进入块级可视模式;
  2. j/k 方向键选中需要注释的所有行(仅需选中每行的开头位置,无需全选);
  3. Shift+i 进入“块插入模式”,输入注释符号 //(此时仅第一行显示输入内容);
  4. Esc 键,选中的所有行开头会自动添加 //,完成批量注释;
    Vim 批量注释示意图:展示块级可视模式选中与注释添加过程
(2)批量取消注释
  1. 命令模式下按 Ctrl+v 进入块级可视模式;
  2. h/l/j/k 选中所有行的 // 符号(确保仅选中注释部分,不包含代码);
  3. d 键删除选中的 //,所有行注释同步取消;
    Vim 批量取消注释示意图:展示块级可视模式选中注释符号与删除过程
(3)批量剪切/复制
  • 批量剪切:选中内容后按 d 键,直接删除并保存到剪贴板;
  • 批量复制:选中内容后按 y 键,复制到剪贴板,再按 p 粘贴到目标位置。

6. Vim 配置:自定义你的编辑器

Vim 支持通过 ~/.vimrc 文件自定义功能(如默认显示行号、自动缩进),配置仅对当前用户生效,步骤如下:

(1)基础配置流程(新手必备)
  1. 返回家目录:终端输入 cd ~~ 代表当前用户的主目录,如 /home/yourname);
  2. 创建配置文件:输入 touch .vimrc.vimrc 是 Vim 的默认配置文件,前缀 . 表示隐藏文件);
  3. 编辑配置文件:输入 vim .vimrc,进入 Vim 编辑界面;
  4. 添加基础配置(可直接复制以下内容,按 Esc 后输入 :wq 保存生效):
    " 显示行号(写代码查错必备)
    set nu
    " Tab 键对应 4 个空格(符合多数代码缩进规范)
    set tabstop=4
    " 自动缩进(新行与上一行缩进对齐,写循环/函数时不用手动缩进)
    set autoindent
    " 高亮当前行(方便定位光标位置)
    set cursorline
    " 插入模式下按 jj 快速返回命令模式(替代 Esc 键,更顺手)
    inoremap jj <Esc>
    " 搜索时忽略大小写(输入 /Printf 和 /printf 效果一致)
    set ignorecase
    
(2)进阶配置与模式查询
  • 进阶配置:若需代码补全、主题美化等功能,可创建 ~/.vim 目录,下载插件(如 Vundle 插件管理器)放入该目录,具体配置可参考 AI 或 Vim 插件文档;
  • 查看所有模式:vim-modes 命令错误(Vim 无此命令),正确方式是在 Vim 内输入 :help modes 并回车,查看官方模式说明文档;
    Vim 模式说明文档示意图:展示通过 help 命令查看模式的界面
  • 配置效果参考:
    Vim 配置示例示意图:展示配置后的行号、高亮等效果

注意:不同用户的 Vim 配置相互独立(每个用户的 ~/.vimrc 仅作用于自己),无需担心影响其他用户。


http://www.xdnf.cn/news/1361863.html

相关文章:

  • Java项目-苍穹外卖_Day1
  • 计算机毕业设计 java 血液中心服务系统 基于 Java 的血液管理平台Java 开发的血液服务系统
  • 【应急响应工具教程】Unix/Linux 轻量级工具集Busybox
  • 页面中嵌入Coze的Chat SDK
  • (多线程)线程安全和线程不安全 产生的原因 synchronized关键字 synchronized可重入特性死锁 如何避免死锁 内存可见性
  • 前端通过node本地转译rtsp流,配合hls实现浏览
  • Go语言运算符全解析
  • 用 fastmcp 2.0 做一个“短期记忆(Redis)”的 MCP 服务器(Server)+ 一个简单的 Client 例子
  • Java项目-苍穹外卖_Day2
  • Ubuntu24.04配置yolov5
  • 使用 Gemini CLI作为 Claude Code的 subagent
  • 分布式锁设计实战:多级缓存防御设计优化同步性能
  • 《眼科学》10月版面征稿论文速递
  • Nestjs生命周期中全局方法执行顺序
  • 嵌入式开发学习———Linux环境下网络编程学习(六)
  • MySQL 行转列与列转行的实现方式
  • 在新塘SDK下面,有四中文件夹,GCC、IAR、KEIL、和Keil_AC6.这4个工程有什么区别。各自是怎样配置寄存器并实现SPI功能的
  • Aligning Effective Tokens with Video Anomaly in Large Language Models
  • Node.js面试题及详细答案120题(43-55) -- 性能优化与内存管理篇
  • 《飞算Java开发实战:从入门安装到项目部署》
  • 【GEE+Python 实战】用 Sentinel-2 监测 2024 年研究区 NDVI 变化(附完整源码与避坑指南)
  • Codejock Suite ProActiveX COM Crack
  • 一文掌握 Java 键盘输入:从入门到高阶(含完整示例与避坑指南)
  • LIANA | part1 intro部分
  • VMware Workstation 不可恢复错误:(vcpu-0)
  • 详细的周任务清单(Week1-Week24,每周具体目标+任务)
  • Socket some functions
  • 基于PHP服装租赁管理系统/基于php的服装管理系统的设计与实现
  • C#_gRPC
  • 【图像处理基石】基于 Python 的图像行人删除技术:实现街景无干扰化处理