学会了装软件,下一步是编辑代码。Linux 服务端没有图形 IDE,日常编写代码、改配置都依赖终端编辑器。vim 是 vi 的增强版,支持语法高亮、多级撤销、插件扩展等。它最大的特点------或者说门槛------是模式编辑。
目录
[1. 三种基本模式](#1. 三种基本模式)
[2. 命令模式:移动、删除、复制](#2. 命令模式:移动、删除、复制)
[3. 底行模式:保存、退出、搜索](#3. 底行模式:保存、退出、搜索)
[4. 简单配置](#4. 简单配置)
1. 三种基本模式
vim 不只是"打开文件、打字、保存"这样简单的线性操作。它有多种模式,初学时只要理解三种:
-
命令模式(Normal Mode):打开文件后的默认模式。不能直接输入文字,而是用键盘发出删除、复制、移动光标等命令。
-
插入模式(Insert Mode) :用来输入文字。按
i、a、o键从命令模式进入。 -
底行模式(Last Line Mode) :用来保存、退出、搜索等。命令模式下按
:进入。
三种模式的切换是一个环形结构:
text
命令模式 → 按 i/a/o → 插入模式 → 按 ESC → 命令模式
命令模式 → 按 : → 底行模式 → 按 ESC → 命令模式
一打开 vim 就在命令模式,这是最常见的困惑来源------刚入门的人不知道"现在不能打字"是正常的。
2. 命令模式:移动、删除、复制
命令模式是 vim 的灵魂。真正的高手大部分时间都待在命令模式,偶尔切到插入模式写几个字,又退回来继续操作。所有操作都是通过键盘完成的,不用鼠标,手指不离主键盘区。
移动光标:
text
h (左) j (下) k (上) l (右) # 基本移动
w # 跳到下个单词开头
b # 跳到上个单词开头
e # 跳到当前单词末尾
$ # 行尾
^ # 行首(第一个非空字符)
gg # 文件开头
Shift+g # 文件末尾
#G # 跳到指定行,如 15G→跳到第15行
Ctrl+b # 上翻一页
Ctrl+f # 下翻一页
删除:
text
x # 删除光标处一个字符
#x # 向后删除#个字符,如 6x
X # 删除光标前一个字符
#X # 向前删除#个字符
dd # 删除当前行
#dd # 向下删除#行,如 5dd
复制与粘贴:
text
yy # 复制当前行
#yy # 向下复制#行,如 3yy
yw # 复制到当前单词末尾
p # 在光标处粘贴
其他:
text
u # 撤销
Ctrl+r # 重做(撤销的逆操作)
r # 替换光标处一个字符
3. 底行模式:保存、退出、搜索
命令模式下按 : 进入底行模式,常见的操作:
text
:w # 保存
:q # 退出
:wq # 保存并退出
:q! # 不保存,强制退出
set nu # 显示行号
set nonu # 取消行号
/keyword # 搜索关键词,n 下一个,N 上一个
?keyword # 反向搜索
:# # 跳转到指定行,如 :20→到第20行
set nu 和 /keyword 是日常用的最多的底行命令。写代码时开着行号,报错定位会快很多。
4. 简单配置
vim 的配置文件在:
-
系统级:
/etc/vimrc -
用户级:
~/.vimrc
在用户目录下创建 .vimrc,加几行基本配置:
vim
syntax on " 语法高亮
set nu " 显示行号
set shiftwidth=4 " 缩进宽度为4空格
进阶玩家可以通过插件(TagList、WinManager 等)把 vim 打造成接近 IDE 的形态,但日常工作里这几行基础配置已经够用。