Linux 新手村Linux 新手村
🏠 首页
📖 教程
  • Linux 官网
  • Ubuntu 官网
  • CentOS 官网
🏠 首页
📖 教程
  • Linux 官网
  • Ubuntu 官网
  • CentOS 官网
  • 🚀 入门篇 - 欢迎来到 Linux 世界

    • 📚 长安的教程导航
    • 🐧 什么是 Linux?
    • 💿 安装 Linux
    • 🎉 首次开机
  • 🎯 基础篇 - 必备生存技能

    • ⌨️ 基础命令
    • 🗂️ 文件系统
    • 📝 文件操作
    • 👥 用户与权限
  • ⚔️ 进阶篇 - 成为高手之路

    • ⚔️ Vim 编辑器
    • 🤖 Shell 脚本
    • ⚙️ 进程与服务
    • 🌐 网络基础
  • 🏆 高级篇 - 突破自我

    • 💡 高级技巧
    • 🔧 故障排查
    • 🎭 日常案例与血泪教训

⚔️ Vim 编辑器

大家好,我是长安!今天来聊聊被称为"编辑器之神"的 Vim,学会它你就是终端里最靓的仔。

🎯 本章目标

跟着长安读完这一章,你将学会:

  • Vim 的三种模式
  • 基本的编辑操作
  • 查找和替换
  • 保存和退出(这个最重要!😂)

🤔 为什么要学 Vim?

你可能听说过这个笑话:

问:如何产生一个随机字符串? 答:让新手退出 Vim。

Vim 确实有一定的学习曲线,但它是 Linux 系统管理员的必备技能,原因是:

  1. 几乎所有 Linux 系统都预装 Vim
  2. 服务器通常没有图形界面,只能用 Vim
  3. 一旦学会,编辑效率超高
  4. 装X必备(开玩笑的...但确实很酷)

🎯 学习建议

不需要一次学完所有功能! 先学会基本操作(移动、编辑、保存),够用就行。 随着使用慢慢积累更多技巧。

🚪 如何打开和退出 Vim

打开文件

# 打开文件(不存在会创建)
vim filename.txt

# 打开多个文件
vim file1.txt file2.txt

# 打开文件并跳到指定行
vim +10 filename.txt

# 以只读模式打开
vim -R filename.txt

退出 Vim(最重要!)

这是新手最关心的问题,先把它搞定:

按 Esc 确保在普通模式,然后输入:

:q      退出(文件未修改)
:q!     强制退出(放弃修改)
:wq     保存并退出
:wq!    强制保存并退出
:x      保存并退出(同 :wq)
ZZ      保存并退出(不用输入冒号)
ZQ      不保存退出

⚠️ 退出秘籍

如果你完全懵了,按下面的步骤操作:

  1. 疯狂按 Esc(确保退出插入模式)
  2. 输入 :q!
  3. 按 Enter

这样就能退出了,虽然不会保存修改。

🎮 Vim 的三种模式

Vim 有三种主要模式:

┌─────────────┐
│  普通模式   │ ← 默认模式,按 Esc 回到这里
│  (Normal)   │
└──────┬──────┘
       │
       │ 按 i/a/o 进入
       ↓
┌─────────────┐
│  插入模式   │ ← 可以输入文字的模式
│  (Insert)   │
└─────────────┘

       │ 按 : 进入
       ↓
┌─────────────┐
│  命令模式   │ ← 输入命令的模式
│  (Command)  │
└─────────────┘

模式切换

从到按键
任何模式普通模式Esc
普通模式插入模式i / a / o
普通模式命令模式:
普通模式可视模式v

📝 普通模式操作

移动光标

       ↑
       k
   ← h   l →    (方向键也可以用)
       j
       ↓

更多移动方式:

按键功能
h左移一个字符
l右移一个字符
j下移一行
k上移一行
w跳到下一个单词开头
b跳到上一个单词开头
e跳到单词末尾
0跳到行首
$跳到行尾
^跳到行首第一个非空字符
gg跳到文件开头
G跳到文件末尾
数字G跳到指定行(如 10G 跳到第10行)
Ctrl+f向下翻一页
Ctrl+b向上翻一页

进入插入模式

按键功能
i在光标前插入
I在行首插入
a在光标后插入
A在行尾插入
o在下方新建一行并插入
O在上方新建一行并插入

删除操作

按键功能
x删除光标所在字符
X删除光标前的字符
dd删除整行
d$ 或 D删除到行尾
d0删除到行首
dw删除一个单词
3dd删除 3 行
dG删除到文件末尾
dgg删除到文件开头

💡 小技巧

Vim 的"删除"其实是"剪切",删除的内容可以用 p 粘贴回来。

复制粘贴

按键功能
yy复制当前行
3yy复制 3 行
yw复制一个单词
y$复制到行尾
p粘贴到光标后
P粘贴到光标前

撤销和重做

按键功能
u撤销(Undo)
Ctrl+r重做(Redo)
.重复上一个操作

✏️ 插入模式操作

进入插入模式后,就可以像普通编辑器一样输入文字了。

在插入模式下的快捷键:

按键功能
Ctrl+h删除前一个字符
Ctrl+w删除前一个单词
Ctrl+u删除到行首
Esc返回普通模式

🔍 查找和替换

查找

在普通模式下:

/pattern    向下搜索
?pattern    向上搜索
n           跳到下一个匹配
N           跳到上一个匹配
*           搜索光标所在的单词

示例:

/hello      搜索 "hello"
/error      搜索 "error"

替换

在命令模式(按 : 进入)下:

# 替换当前行第一个匹配
:s/old/new/

# 替换当前行所有匹配
:s/old/new/g

# 替换全文第一个匹配(每行)
:%s/old/new/

# 替换全文所有匹配(最常用)
:%s/old/new/g

# 替换时询问确认
:%s/old/new/gc

# 替换指定行范围(第 5 到 10 行)
:5,10s/old/new/g

💾 命令模式操作

按 : 进入命令模式:

命令功能
:w保存
:w filename另存为
:q退出
:q!强制退出(不保存)
:wq保存并退出
:e filename打开另一个文件
:set number显示行号
:set nonumber隐藏行号
:数字跳到指定行
:!command执行外部命令

👁️ 可视模式

可视模式用于选择文本:

按键功能
v字符选择模式
V行选择模式
Ctrl+v块选择模式(列选择)

选中后可以进行:

  • d - 删除选中内容
  • y - 复制选中内容
  • > - 向右缩进
  • < - 向左缩进

⚙️ 常用配置

创建或编辑 ~/.vimrc 文件:

vim ~/.vimrc

添加以下常用配置:

" 显示行号
set number

" 语法高亮
syntax on

" 自动缩进
set autoindent

" Tab 用空格替代
set expandtab

" Tab 宽度
set tabstop=4
set shiftwidth=4

" 搜索高亮
set hlsearch

" 增量搜索
set incsearch

" 忽略大小写搜索
set ignorecase

" 智能大小写
set smartcase

" 显示光标位置
set ruler

" 显示模式
set showmode

" 使用鼠标
set mouse=a

" 配色方案
colorscheme desert

🎯 新手生存指南

如果你是第一次用 Vim,记住这几个就够了:

1. 打开文件:vim filename
2. 按 i 进入插入模式
3. 编辑你的内容
4. 按 Esc 退出插入模式
5. 输入 :wq 保存并退出

常见问题处理

Q: 我按了很多键,屏幕乱了怎么办?

按 Esc,然后按 u 撤销,多按几次

Q: 我不知道在什么模式?

疯狂按 Esc,回到普通模式

Q: 我想放弃所有修改?

按 Esc,然后输入 :q! 回车

🎮 Vim 练习游戏

想要更有趣地学习 Vim?试试这些:

  1. vimtutor - Vim 自带教程

    vimtutor
    
  2. Vim Adventures - 在线游戏 https://vim-adventures.com/

  3. OpenVim - 交互式教程 https://www.openvim.com/

📝 本章小结

最重要的命令

操作按键
退出不保存Esc → :q!
保存退出Esc → :wq
进入插入模式i
回到普通模式Esc
删除一行dd
复制一行yy
粘贴p
撤销u
搜索/关键词

模式记忆

普通模式:浏览和操作,默认模式
插入模式:输入文字,按 i 进入
命令模式:执行命令,按 : 进入

💡 学习建议

  1. 先学会打开、编辑、保存、退出
  2. 慢慢学习移动和删除操作
  3. 遇到问题多按 Esc 和 u
  4. 坚持使用,熟能生巧

🚀 下一步

Vim 入门了,接下来跟着长安学习 Shell 脚本,让你的电脑自动干活!

—— 编程指南社区 · 长安

最后更新: 2025/12/1 15:56
Next
🤖 Shell 脚本