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

相关推荐
ltl3 小时前
内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
linux
·薯条大王3 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
小小、码农6 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b6 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
沫璃染墨8 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
AIgorithmGEEK9 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
酷可达拉斯10 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
Molesidy10 小时前
【Linux】基于busybox的根文件系统的完善
linux·服务器·嵌入式linux
jufeng130713 小时前
【系列:MiniKV 原理剖析 · 第 6 篇】
linux·软件工程·个人开发·makefile
IT摆渡者14 小时前
ubuntu系统网络问题
linux·运维·ubuntu