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入门方式。

相关推荐
向日葵.1 小时前
linux & qnx & git 命令 2
linux·运维·git
丑过三八线1 小时前
Systemd Cgroup 驱动详解
linux·ubuntu·容器
用户805533698031 小时前
嵌入式Linux开发——烧写你的镜像:存储介质基础 - 先分清 SD、eMMC 和块设备
linux·嵌入式
Android系统攻城狮1 小时前
Linux Pulseaudio深度解析之pa_context_set_sink_mute_by_index用流程与实战(四十七)
linux·运维·服务器·音频进阶·pulseaudio进阶
木白CPP2 小时前
aarch64-linux-gnu* (gcc,ld,objcopy,objdump)工具总结
linux·运维·gnu
豆是浪个2 小时前
Linux(Centos 7.6)命令详解:xargs
linux·运维·服务器
艾莉丝努力练剑2 小时前
【Linux网络】网络层IP协议(二):网段划分
linux·运维·服务器·网络·tcp/ip·udp
艾莉丝努力练剑2 小时前
【Linux网络】网络层IP协议(三):网段划分(下)
linux·运维·服务器·网络·tcp/ip
CodeStats2 小时前
从 CPU 指令执行到权限管控:对比三大操作系统,梳理编程语言演进,解读 HTML/CSS/JS 浏览器解析的共通底层逻辑
java·linux·windows