linux的vim编辑器

Vim编辑器完全指南

一、什么是Vim

Vim = Vi IMproved,是Vi的升级版本,是一个多模式文本编辑器

简单理解:Vim是Linux终端里的"高级记事本",支持语法高亮、可视化操作,可以在终端、Windows、Mac等平台运行。

vi vs vim

对比 vi vim
关系 基础版 vi的升级版
特性 基础编辑功能 兼容vi + 语法高亮、可视化等增强功能

二、三大核心模式

模式 名称 核心功能 如何进入
命令模式 Normal mode 移动光标、删除、复制、粘贴 默认进入 / 按ESC
插入模式 Insert mode 输入/编辑文字 iao
末行模式 Last line mode 保存文件、退出、查找、替换 命令模式下按:

提示:Vim一共有12种模式,但掌握这3种就能完成90%的工作。

模式切换图

复制代码
        启动Vim
           ↓
    ┌──────────────┐
    │   命令模式    │ ←─────────┐
    │ (Normal mode) │          │
    └──────┬───────┘           │
           │ 按 i/a/o          │ 按 ESC
           ↓                   │
    ┌──────────────┐           │
    │   插入模式    │ ──────────┘
    │ (Insert mode) │
    └───────────────┘
           │
           │ 按 :
           ↓
    ┌──────────────┐
    │   末行模式    │
    │ (Last line)  │
    └──────────────┘

三、命令模式操作大全

3.1 光标移动

按键 作用 按键 作用
h / j / k / l 左 / 下 / 上 / 右 gg 跳到文件开头
w 跳到下个单词开头 G (Shift+g) 跳到文件末尾
e 跳到单词结尾 ^ 跳到行首
b 跳到上个单词开头 $ 跳到行尾
Ctrl+f 向下翻一页 Ctrl+b 向上翻一页
Ctrl+d 向下翻半页 Ctrl+u 向上翻半页

3.2 删除操作

按键 作用
x 删除光标所在字符
#x 删除光标后#个字符(如6x删除6个)
X 删除光标前一个字符
#X 删除光标前#个字符
dd 删除光标所在整行
#dd 从光标行开始删除#行

3.3 复制粘贴

按键 作用
yy 复制光标所在行
#yy 复制从光标开始的#行
yw 复制光标到单词结尾
#yw 复制#个字
p 在光标后粘贴
P 在光标前粘贴

3.4 撤销与恢复

按键 作用
u 撤销上一步操作
Ctrl+r 恢复被撤销的操作

3.5 替换

按键 作用
r 替换光标处单个字符
R 连续替换模式(覆盖),按ESC结束

3.6 跳转到指定行

按键 作用
Ctrl+g 显示当前行号
#G 跳转到第#行(如15G跳转到第15行)

四、插入模式进入方式

按键 作用
i 在光标当前位置开始插入
a 在光标下一个位置开始插入
o 下一行新开一行开始插入
I 跳到行首开始插入
A 跳到行尾开始插入
O 上一行新开一行开始插入

ESC键从插入模式返回命令模式。


五、末行模式常用命令

5.1 文件操作

命令 作用
:w 保存文件
:q 退出Vim
:wq 保存并退出
:q! 强制退出(不保存)
:x 保存并退出(等同于:wq

5.2 行号操作

命令 作用
:set nu 显示行号
:set nonu 隐藏行号
:# 跳转到第#行(如:15跳转到第15行)

5.3 查找功能

命令 作用
/关键词 向下搜索关键词
?关键词 向上搜索关键词
n 重复搜索(下一个匹配)
N 反向重复搜索(上一个匹配)

问题/?的区别?

  • /:向下搜索(从光标位置向后)
  • ?:向上搜索(从光标位置向前)

5.4 替换功能

命令 作用
:s/old/new 替换当前行第一个old
:s/old/new/g 替换当前行所有old
:%s/old/new/g 替换整个文件所有old
:%s/old/new/gc 替换前逐个确认

六、Vim配置

配置文件位置

级别 路径 作用范围
全局配置 /etc/vimrc 所有用户
用户配置 ~/.vimrc 当前用户(推荐自定义)

常用配置选项(在~/.vimrc中添加)

vim 复制代码
syntax on           " 开启语法高亮
set nu              " 显示行号
set shiftwidth=4    " 设置缩进空格数为4
set tabstop=4       " Tab键宽度为4个空格
set expandtab       " 将Tab转换为空格
set autoindent      " 开启自动缩进

插件配置(进阶)

可以安装TagList、WinManager等插件增强Vim功能。


七、新手快速上手(10个必记命令)

序号 操作 命令
1 进入编辑模式 i
2 保存文件 :w
3 退出Vim :q
4 保存并退出 :wq:x
5 不保存强制退出 :q!
6 删除整行 dd
7 复制整行 yy
8 粘贴 p
9 撤销 u
10 查找 /关键词

八、常见问题与解决

问题 解决方法
不知道怎么输入文字 i进入插入模式
按了半天没反应 可能在其他模式,按ESC回到命令模式
不知道怎么退出 ESC:q! 强制退出
不小心改错了文件 ESC:q! 不保存退出
想删除整行 命令模式下按dd
撤销错了 Ctrl+r 恢复

九、核心要点总结

复制代码
┌─────────────────────────────────────────────────────────────┐
│                     Vim 核心三要素                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   三种模式:命令模式 + 插入模式 + 末行模式                       │
│                                                             │
│    两个切换:i 进入插入,ESC 返回命令                           │
│                                                             │
│    一个原则:在正确的模式下做正确的操作                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

学习建议:在终端输入vimtutor,这是一个30分钟的交互式教程,是最好的Vim入门方式。

相关推荐
敖行客 Allthinker1 小时前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
keyipatience2 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
j7~3 小时前
【Linux】二十二.《Linux 信号机制完全指南:表示、捕捉与处理》
linux·信号处理·volatile·可入重函数·保存信号
观山岳五楼3 小时前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu
m0_715646764 小时前
20260720
linux·arm
寒晓星4 小时前
[linux]线程及多线程
linux·运维
辰痕~4 小时前
物理机装Linux操作系统(Ubuntu为例)
linux·ubuntu
国服第二切图仔6 小时前
13其他工具 - Skill/LSP/Sleep等
linux·运维·里氏替换原则
就不掉头发7 小时前
计算机的虚拟内存
linux·服务器·windows
暴力求解7 小时前
Linux ---线程控制(二)
linux·运维·服务器·操作系统