Linux Vim 编辑器使用指南
一、Vim 简介
Vim(Vi IMproved)是 Linux/Unix 系统中最流行的文本编辑器之一,它是 Vi 的增强版,支持多模式操作、语法高亮、插件扩展等特性,无需鼠标即可高效编辑文本。
二、核心工作模式
Vim 有四种主要模式,通过不同按键快速切换:
命令模式(Normal Mode):
默认模式,用于导航、执行命令和切换到其他模式。
进入方式:启动 Vim 后直接进入;从其他模式按 Esc或 Ctrl+[ 返回。
输入模式(Insert Mode):
用于编辑文本,类似常规编辑器。
进入方式:在命令模式下按 i(光标前插入)、a(光标后插入)、o(下一行插入)、O(上一行插 入)等。
退出方式:按ESC返回命令模式
末行模式(Command-Line Mode)
用于执行文件操作、搜索替换、配置等命令。
进入方式:在命令模式下按 :(冒号)。
退出方式:执行命令后自动退出或按 Esc
可视模式(Visual Mode)
用于选择文本块,支持字符、行、块三种选择方式。
进入方式:在命令模式下按 v(字符)、V(行)或 Ctrl+v(块)。
三、Vim编辑器常用命令与快捷键
1. 文件操作
# 启动Vim并打开文件
vim filename.txt # 打开文件
vim -o file1 file2 # 水平分屏打开多个文件
vim -O file1 file2 # 垂直分屏打开多个文件
# 末行模式命令(需先按冒号:)
:w # 保存文件
:w filename # 另存为
:q # 退出
:wq / :x # 保存并退出
:wq! # 强制保存退出
:q! # 强制退出(不保存)
:e filename # 打开新文件
:bn / :bp # 切换到下一个/上一个文件(多文件编辑时)
2. 光标移动
# 基本移动(命令模式)
h/j/k/l # 左/下/上/右(推荐用方向键替代)
w / b # 跳到下一个/上一个单词开头
e # 跳到单词末尾
0 / ^ # 行首(0到第一个字符,^到非空白字符)
$ # 行尾
gg / G # 文档开头/结尾
5G # 跳到第5行(数字+G)
Ctrl+f / Ctrl+b # 下翻页/上翻页
Ctrl+d / Ctrl+u # 下翻半页/上翻半页
3. 文本编辑
# 插入模式(命令模式下按以下键进入)
i # 在光标前插入
a # 在光标后插入
I # 在行首插入
A # 在行尾插入
o / O # 在当前行下方/上方插入新行
s / S # 删除当前字符/整行并进入插入模式
# 删除与修改
x # 删除当前字符(等同于Delete)
dd # 删除当前行
3dd # 删除当前行及以下3行
d$ # 删除从光标到行尾的内容
d^ # 删除从光标到行首的内容(不包含光标字符)
dw # 删除一个单词
u # 撤销上一步操作
Ctrl+r # 恢复撤销(重做)
4. 复制粘贴
yy # 复制当前行
5yy # 复制当前行及以下5行
yw # 复制一个单词
p / P # 在光标后/前粘贴(小写p贴到下一行,大写P贴到上一行)
"ayy # 将当前行复制到寄存器a(可指定a-z任意寄存器)
"ap # 从寄存器a粘贴内容
5.查找与替换
# 查找(命令模式下)
/keyword # 向下查找keyword
?keyword # 向上查找keyword
n / N # 下一个/上一个匹配项(按查找方向)
:nohlsearch # 取消高亮显示(可简写为:noh)
# 替换(末行模式下)
:%s/old/new/g # 全局替换(%表示全文,g表示替换所有匹配项)
:%s/old/new/gc # 全局替换,每次替换前询问(c表示confirm)
:1,10s/old/new/g # 替换第1-10行的匹配项
6. 可视模式操作
v # 进入字符可视模式(按字符选择)
V # 进入行可视模式(整行选择)
Ctrl+v # 进入块可视模式(矩形区域选择)
# 选中后可执行:
d # 删除选中内容
y # 复制选中内容
p # 粘贴到光标位置
7. 多窗口操作
# 分屏(末行模式)
:split # 水平分屏
:vsplit # 垂直分屏
:split filename # 分屏并打开新文件
# 窗口切换(命令模式)
Ctrl+w w # 循环切换窗口
Ctrl+w h/j/k/l # 切换到左/下/上/右窗口
Ctrl+w q # 关闭当前窗口
8. 寄存器与宏
"ayy # 将当前行复制到寄存器a
"ap # 从寄存器a粘贴
:registers # 查看所有寄存器内容
# 录制宏
qa # 开始录制宏到寄存器a
# 执行一系列操作(如yy,p,j等)
q # 停止录制
@a # 执行宏a
10@a # 重复执行宏a 10次
9. 标记与书签
ma # 在当前位置设置标记a(a-z为局部标记,A-Z为全局标记)
`a # 跳转到标记a的位置
'' # 跳转到上次编辑位置
10. 配置文件(~/.vimrc)
创建或编辑 ~/.vimrc
文件可自定义 Vim 配置:
set number # 显示行号
set relativenumber # 显示相对行号
set tabstop=4 # Tab宽度为4个空格
set shiftwidth=4 # 自动缩进宽度为4个空格
set expandtab # 将Tab转换为空格
set autoindent # 自动缩进
syntax on # 语法高亮
set cursorline # 高亮当前行
set mouse=a # 启用鼠标支持