Vim 基础命令详解与使用指南
Vim 是一个功能强大的文本编辑器,因其强大的编辑功能和灵活性而受到程序员和系统管理员的青睐。以下是对 Vim 的详细讲解,包括基本操作、模式切换、配置文件设置、插件管理等。
1. Vim 的基本概念
1.1 模式
Vim 有以下三种主要模式:
普通模式(Normal Mode):默认模式,用于导航和操作文本。
插入模式(Insert Mode):用于输入文本。
命令模式(Command Mode):用于执行文件保存、退出、搜索等命令。
此外,还有:
可视模式(Visual Mode):用于选择文本块。
替换模式(Replace Mode):用新文本覆盖现有文本。
选择模式(Select Mode):类似普通模式,但会覆盖选择的内容。
1.2 启动与退出
启动 Vim:
vim filename # 打开文件vim # 打开空编辑器
退出 Vim:
:q
:退出。:q!
:强制退出,不保存修改。:wq
或:x
:保存并退出。ZZ
:保存并退出(普通模式下)。
2. 基本操作
2.1 在文件中导航
h
:向左移动光标。l
:向右移动光标。j
:向下移动光标。k
:向上移动光标。gg
:跳转到文件开头。G
:跳转到文件末尾。:n
:跳转到第 n 行(如:10
跳到第 10 行)。w
:跳到下一个单词开头。b
:跳到上一个单词开头。
2.2 文本编辑
i
:进入插入模式,在光标前插入。a
:进入插入模式,在光标后插入。o
:在当前行下方插入新行并进入插入模式。dd
:删除当前行。yy
:复制当前行。p
:粘贴到光标后。x
:删除光标处的字符。
2.3 撤销与重复
u
:撤销操作。Ctrl + r
:重做操作。.
:重复上一次操作。
3. 查找与替换
3.1 查找
/pattern
:向下搜索pattern
。?pattern
:向上搜索pattern
。n
:重复上一次搜索(同方向)。N
:重复上一次搜索(反方向)。
3.2 替换
:s/old/new/
:将当前行中的第一个old
替换为new
。:s/old/new/g
:将当前行中所有的old
替换为new
。:%s/old/new/g
:替换整个文件中的所有old
为new
。:%s/old/new/gc
:替换整个文件中的所有old
为new
,替换前确认。
4. 配置 Vim
4.1 Vim 配置文件
Vim 的配置文件是 ~/.vimrc
。通过编辑该文件可以自定义 Vim 的行为。
" 示例 vimrc 文件 set number " 显示行号 set relativenumber " 显示相对行号 set tabstop=4 " 设置 Tab 键宽度为 4 空格 set expandtab " 将 Tab 替换为空格 set autoindent " 自动缩进 set ignorecase " 搜索时忽略大小写 set smartcase " 如果包含大写字母,则区分大小写 syntax on " 启用语法高亮 set cursorline " 高亮当前行
4.2 保存配置文件
保存 ~/.vimrc
后,运行以下命令加载新配置:
source ~/.vimrc
5. 使用插件增强功能
5.1 安装插件管理器
推荐使用 vim-plug 来管理插件:
安装
vim-plug
:curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
在
~/.vimrc
中添加以下内容:call plug#begin('~/.vim/plugged') Plug 'preservim/nerdtree' " 文件浏览器 Plug 'junegunn/fzf.vim' " 模糊搜索 Plug 'morhetz/gruvbox' " 配色主题 call plug#end()
启动 Vim 并运行以下命令安装插件:
:PlugInstall
5.2 常用插件
NERDTree:文件浏览器,命令:
:NERDTreeToggle
。fzf.vim:模糊文件查找,快捷键:
Ctrl + P
。vim-airline:美化状态栏。
gruvbox:流行的配色主题。
6. 高级功能
6.1 宏
录制宏以重复操作:
按
q
开始录制(例如qa
将宏存储到寄存器a
中)。执行一系列操作。
按
q
停止录制。按
@a
回放宏(或多次使用@@
重复上次宏)。
6.2 分屏与窗口管理
:split
或:sp
:水平分屏。:vsplit
或:vsp
:垂直分屏。Ctrl + w
+h/j/k/l
:在分屏之间切换。Ctrl + w
+q
:关闭当前窗口。
6.3 标记与跳转
m{a-z}
:在当前行设置标记。'a
:跳转到标记a
的行。`a
:跳转到标记a
的位置。
7. 所有基础快捷命令,按功能分类整理
1. 光标移动
快捷键 | 功能 |
---|---|
h | 左移一个字符 |
l | 右移一个字符 |
j | 下移一行 |
k | 上移一行 |
0 | 移动到行首 |
^ | 移动到行首第一个非空字符 |
$ | 移动到行尾 |
gg | 移动到文件开头 |
G | 移动到文件末尾 |
nG | 移动到第 n 行 |
H | 移动到屏幕顶部 |
M | 移动到屏幕中间 |
L | 移动到屏幕底部 |
w | 移动到下一个单词 |
e | 移动到当前或下一个单词尾 |
b | 移动到上一个单词 |
% | 匹配括号跳转(如 () ) |
2. 插入模式
快捷键 | 功能 |
---|---|
i | 在光标前插入 |
I | 在行首插入 |
a | 在光标后插入 |
A | 在行尾插入 |
o | 在当前行下方新建一行并插入 |
O | 在当前行上方新建一行并插入 |
Esc | 退出插入模式,返回普通模式 |
3. 删除和复制
快捷键 | 功能 |
---|---|
x | 删除光标所在的字符 |
X | 删除光标前的字符 |
dd | 删除当前行 |
dw | 删除当前单词 |
d$ | 删除光标到行尾 |
d0 | 删除光标到行首 |
dG | 删除光标到文件末尾 |
dgg | 删除光标到文件开头 |
yy | 复制当前行 |
yw | 复制当前单词 |
y$ | 复制光标到行尾 |
p | 粘贴到光标后 |
P | 粘贴到光标前 |
4. 撤销和重做
快捷键 | 功能 |
---|---|
u | 撤销上一操作 |
Ctrl + r | 重做撤销的操作 |
5. 搜索和替换
快捷键 | 功能 |
---|---|
/pattern | 向下搜索 pattern |
?pattern | 向上搜索 pattern |
n | 搜索下一个匹配项 |
N | 搜索上一个匹配项 |
:s/old/new/ | 替换当前行第一个匹配的 old 为 new |
:s/old/new/g | 替换当前行所有的 old 为 new |
:%s/old/new/g | 替换全文件所有的 old 为 new |
:%s/old/new/gc | 替换时逐一确认 |
6. 文件操作
快捷键 | 功能 |
---|---|
:w | 保存文件 |
:q | 退出文件 |
:q! | 强制退出,不保存更改 |
:wq | 保存并退出 |
:x | 保存并退出(与 :wq 类似) |
:e filename | 打开文件 filename |
:bn | 切换到下一个缓冲区 |
:bp | 切换到上一个缓冲区 |
:bd | 关闭当前缓冲区 |
7. 可视模式
快捷键 | 功能 |
---|---|
v | 进入字符可视模式 |
V | 进入行可视模式 |
Ctrl + v | 进入块可视模式 |
y | 复制选中区域 |
d | 删除选中区域 |
> / < | 缩进选中区域 |
8. 缩进和对齐
快捷键 | 功能 |
---|---|
>> | 向右缩进当前行 |
<< | 向左缩进当前行 |
= | 自动对齐当前行或选中文本 |
9. 窗口操作
快捷键 | 功能 |
---|---|
:split | 水平分割窗口 |
:vsplit | 垂直分割窗口 |
Ctrl + w + w | 在窗口间切换 |
Ctrl + w + q | 关闭当前窗口 |
Ctrl + w + h | 切换到左侧窗口 |
Ctrl + w + l | 切换到右侧窗口 |
Ctrl + w + j | 切换到下方窗口 |
Ctrl + w + k | 切换到上方窗口 |
10. 其他常用快捷键
快捷键 | 功能 |
---|---|
. | 重复上一次操作 |
Ctrl + g | 显示光标所在行号和文件信息 |
:%!command | 将文件内容通过外部命令处理 |
:r filename | 在当前位置插入文件 filename |
8. 小技巧与建议
熟悉键位:初学者可以打印 Vim 键位图,逐步适应。
练习与耐心:Vim 学习曲线较陡,但熟悉后效率极高。
学习快捷键:利用
:help
获取帮助,例如:help gg
。避免关闭 Vim 时遗忘保存:使用
set autowrite
自动保存文件。
Vim 是一个非常强大的工具,初学者可以先熟悉基本命令,然后逐步学习更高级的功能和技巧。通过持续使用,你会发现 Vim 极大地提高了编辑效率。
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!