【Linux】Vim编辑器:从入门到高效使用

目录

🚀前言

大家好!我是 EnigmaCoder

  • 本文将介绍Vim编辑器的三大模式及其常见的命令,同时也介绍持久化设置和官方入门教程。

🤔Vim编辑器简介

VimLinux系统中广泛使用的一款高效文本编辑器,作为vi编辑器的升级版本,它不仅能实现基本的文件查看、编辑和保存功能,还新增了语法高亮显示和语法检测等实用特性。

  • Vim的优点:
    • 极致高效的模块化编辑,摆脱鼠标依赖。
    • 轻量化与全场景适配,是跨场景文本处理的"万能工具"。
    • 成熟生态与兼容性,学习成本和使用成本低。

☘️Vim的三大模式

  • 命令模式:可以实现基础的复制、粘贴、删除内容以及页面跳转操作。
  • 编辑模式/插入模式:可以编辑文本的内容、进行增删改操作。
  • 退出模式/末行模式:可以保存文件或另存为文件。

💯模式切换的快捷键

  1. 从命令模式切换到编辑模式:
快捷键 说明
i 光标所在处切换到编辑模式
a 光标后面一个字符切换到编辑模式
o 光标所在行的下一行切换到编辑模式
s 删除光标所在处的字符切换到编辑模式
I 光标所在行的最前面切换到编辑模式
A 光标所在行的最后面切换到编辑模式
O 光标所在处的上一行切换到编辑模式
S 删除光标所在行的整行内容切换到编辑模式
  1. 从命令模式切换到退出模式:Shift :组合键
  2. 从退出模式/插入模式切换到命令模式:ESC

打开文件默认进入命令模式,编辑模式和退出模式无法直接切换,中间必须经过命令模式。

🌟Vim的常用命令

💯命令模式

命令模式下的常用命令:

命令 功能描述
yy 复制当前光标所在的行
P 光标所在行的下一行进行粘贴
p 光标所在行的上一行进行粘贴
dd 删除光标所在行整行的内容
dG 删除光标所在行及其后面的所有内容
nG(n表示数字) 跳转到第n行内容
G 跳转到最后一行
gg 跳转到文件的第一行
x 删除光标所在处的单个字符
u 撤销上一个操作
/关键字 可以匹配关键字,输入'n'进行下一个关键字的跳转,输入'N'跳转到上一个关键字

这些命令用于实现光标快速移动、文本编辑(删/复/粘/改)、调用行命令及切换其他模式,是Vim高效操作的核心指令。

💯编辑模式

编辑模式下的常用命令:

命令 功能描述
退出编辑模式
EscCtrl + [ 退出编辑模式,返回命令模式(最常用)
Ctrl + c 功能同 Esc,退出编辑模式(部分环境可能有差异)
文本删除
Ctrl + h 删除光标前的一个字符(相当于退格键 Backspace
Ctrl + w 删除光标前的一个单词(以空格、标点等为分隔符)
Ctrl + u 删除从光标位置到行首的所有内容
临时执行命令模式命令
Ctrl + o 临时进入命令模式,执行一个命令后自动返回编辑模式(如快速保存 :w
插入特殊字符
Ctrl + v 插入特殊字符(如 Ctrl + v + Enter 插入换行符 ^MCtrl + v + 065 插入 A
自动补全
Ctrl + x + Ctrl + f 补全文件名
Ctrl + x + Ctrl + l 补全整行(基于当前文件已有内容)
Ctrl + x + Ctrl + n 补全当前文件中出现过的单词
Ctrl + x + Ctrl + k 补全字典中的单词(需配置字典路径)
缩进调整
Ctrl + t 编辑模式下,将当前行向右缩进(增加缩进)
Ctrl + d 编辑模式下,将当前行向左缩进(减少缩进)

这些命令主要用于在编辑模式下高效编辑文本,减少切换到命令模式的频率。如果需要更复杂的操作(如批量替换、行跳转等),通常还是需要切换到命令模式执行。

💯退出模式

退出模式下的命令:

命令 功能描述
基础跳转/定位
:nn 为数字) 跳转到第 n
:1 跳转到第 1 行(等效普通模式 gg
:$ 跳转到最后一行(等效普通模式 G
保存与退出
:w 路径 将当前文件另存为指定路径(如 :w ~/backup.txt
:w! 强制保存(忽略只读属性,需系统权限)
:wq 保存并退出(写入+退出)
:x 保存并退出(同 :wq,但文件无修改时不更新修改时间
:q 正常退出(文件无修改时生效,否则拒绝退出)
:q! 强制退出,丢弃未保存修改
内容操作
:%d 清空当前文件所有内容
:s/旧/新/ 替换当前行第一个 匹配项(不加 g
:s/旧/新/g 替换当前行所有匹配项
:s/旧/新/gi 替换当前行所有匹配项,忽略大小写i = ignore case)
:%s/旧/新/g 替换整个文件所有匹配项
:%s/旧/新/gi 全局替换+忽略大小写
:s#旧#新#g # 作分隔符(避免与路径中 / 冲突,如 :s#/old#/new#g
系统交互与扩展
:!命令 执行系统命令(如 :!ls 查目录、:!gcc % 编译当前文件)
窗口/分屏
:split 文件名 水平分屏打开文件(无文件名则分屏当前文件)
:vsplit 文件名 垂直分屏打开文件
:close 关闭当前分屏窗口
缓冲区管理
:bnext 切换到下一个缓冲区(已打开的其他文件)
:bprev 切换到上一个缓冲区
:bd 删除当前缓冲区(关闭文件,不退出 Vim)
设置类(临时生效)
:set number 显示行号
:set nonumber 关闭行号
:set hlsearch 高亮搜索匹配结果(如 /关键字 后,匹配项高亮)
:set nohlsearch 关闭搜索高亮
:set shiftwidth=4 设置自动缩进宽度为 4 个空格(需配合 expandtab 更规范)
:set expandtab Tab 键 输入转为空格(需结合 shiftwidth 定义空格数)
  • 持久化设置 :若需永久生效,需修改 ~/.vimrc 配置文件(如 set number 加入配置)。
  • 分隔符灵活用 :替换命令的分隔符可换为 #@(如 :s@old@new@g),避免与关键字冲突。

🐧持久化设置

在 Vim 中,持久化设置 指让配置(如行号显示、缩进规则等)永久生效,而非仅当前会话有效。以下是核心原理和实现方法:

💯为什么需要"持久化"?

临时设置(如 :set number)仅对当前 Vim 窗口 有效,关闭后就会重置。如果想让配置"记住"你的习惯(比如每次打开都显示行号、Tab 自动转空格),就需要 持久化配置

💯实现方式:编辑 Vim 配置文件

Vim 会自动加载用户目录下的 .vimrc 文件(隐藏文件),将设置命令写入该文件,即可实现"启动即生效"。

  1. 配置文件位置
系统 配置文件路径 说明
Linux/Mac ~/.vimrc(用户主目录下) 仅对当前用户生效
Windows C:\Users\你的用户名\_vimrc 需手动创建(若不存在)
  1. 编辑配置文件的步骤

Linux/Mac 为例(Windows 操作类似):

  • 打开配置文件:在终端或 Vim 中执行

    vim 复制代码
    vim ~/.vimrc

    如果文件不存在,Vim 会自动新建。

  • 添加持久化设置

    在文件中写入需要永久生效的命令,每行一条。例如:

    vim 复制代码
    " 显示行号(引号开头是注释,方便记录)
    set number  
    
    " Tab 按一下,自动插入 4 个空格(规范缩进)
    set expandtab  
    set shiftwidth=4  
    
    " 搜索时实时高亮匹配结果
    set hlsearch  
    set incsearch  
    
    " 显示光标所在行列号
    set ruler  
  • 保存退出 :按 :wq 保存并退出 Vim。

  • 立即生效 :下次启动 Vim 时,配置会自动加载;也可通过 :source ~/.vimrc 命令,无需重启 直接应用新配置。

💯临时 vs 持久化

操作 作用范围 重启后是否保留
:set number 仅当前 Vim 窗口 ❌ 不保留
写入 .vimrc 所有新启动的 Vim 窗口 ✅ 永久保留

💯进阶技巧

  1. 注释配置 :用 " 开头写注释,方便整理配置逻辑:

    vim 复制代码
    " 【缩进相关】
    set expandtab      " Tab → 空格
    set shiftwidth=4   " 自动缩进 4 个空格
  2. 覆盖系统配置

    系统级配置文件(如 /etc/vim/vimrc)会先加载,再加载用户的 ~/.vimrc用户配置优先级更高,可覆盖系统默认设置。

  3. 恢复默认

    • 临时关闭:执行 :set nonumber(仅当前会话);
    • 永久关闭:删除 .vimrc 里的 set number 行(需重启或 :source 生效)。

简单来说:把临时生效的 :set xxx 命令"抄"进 .vimrc,就能让配置"永远记住"你的习惯 。如果想定制更复杂的 Vim 环境(比如主题、快捷键),.vimrc 也是核心入口。

💻官方入门教程

Linux 中练习 Vim,可以选择优先从官方自带的交互式教程入手,它是 Vim 自带的免费教程,分 8 个章节,从基础光标移动、编辑到保存退出, step-by-step 引导,适合纯新手。

  • 启动命令:直接在 Linux 终端输入
bash 复制代码
vimtutor

按照教程提示,在 Vim 内直接操作(教程会教你如何移动、删除、修改文本),完成所有章节后,能掌握 70%的日常基础操作。

相关推荐
领尚几秒前
openclaw 极简安装(Ubuntu 24.04 server)
linux·运维·ubuntu
Gofarlic_OMS15 分钟前
Windchill的license合规使用报告自动化生成与审计追踪系统
大数据·运维·人工智能·云原生·自动化·云计算
迷途之人不知返19 分钟前
shell相关知识与Linux权限
linux
SPC的存折22 分钟前
3、主从复制实现同步数据过滤
linux·运维·服务器
SPC的存折24 分钟前
openEuler 24.03 MariaDB Galera 集群部署指南(cz)
linux·运维·服务器·数据库·mysql
xcbrand26 分钟前
文旅行业品牌策划公司找哪家
大数据·运维·人工智能·python
SPC的存折38 分钟前
MySQL 8.0 分库分表
linux·运维·服务器·数据库·mysql
cyber_两只龙宝1 小时前
【Oracle】Oracle之DQL中WHERE限制条件查询
linux·运维·数据库·云原生·oracle
斌味代码1 小时前
Shell 性能监控:指标采集、告警规则与可视化大盘设计
运维
22信通小白1 小时前
USRP初学者使用手册(基础配置及bug记录)——Linux+Clion(单台X310收发)
linux·运维·c++·5g·bug·信息与通信