Vim 基本使用 📝
简介
Vim 是一个高度可配置的文本编辑器,旨在高效地创建和更改任何类型的文本。它是 Vi 编辑器的改进版本,包含了许多增强功能。
- 模式编辑 ⌨️
- 强大的命令 ⚡
- 高效的移动 💨
- 丰富的插件 🔌
- 语法高亮 🎨
快速入门
安装
bash
sudo apt install vimbash
sudo yum install vimbash
brew install vimbash
# 访问官网下载安装包
https://www.vim.org/download.php基本操作
命令速查
| 模式切换 | 说明 | 按键 |
|---|---|---|
| 普通模式 | 默认模式,用于导航和命令 | Esc |
| 插入模式 | 用于输入文本 | i, a, o |
| 可视模式 | 用于选择文本 | v, V, Ctrl+v |
| 命令模式 | 用于执行命令 | : |
模式详解
普通模式
光标移动
基本移动:
h - 左移
j - 下移
k - 上移
l - 右移
单词移动:
w - 下一个单词开头
b - 上一个单词开头
e - 当前单词末尾
W/B/E - 以空格分隔的单词
行内移动:
0 - 行首
$ - 行尾
^ - 行首第一个非空字符
g_ - 行尾最后一个非空字符
文件移动:
gg - 文件开头
G - 文件末尾
:n - 跳转到第n行编辑操作
删除:
x - 删除当前字符
dd - 删除当前行
dw - 删除单词
D - 删除到行尾
复制粘贴:
yy - 复制当前行
yw - 复制单词
p - 在光标后粘贴
P - 在光标前粘贴
撤销重做:
u - 撤销
Ctrl+r - 重做插入模式
进入插入模式的方式
i- 在光标前插入I- 在行首插入a- 在光标后插入A- 在行尾插入o- 在下方新行插入O- 在上方新行插入
可视模式
选择操作
进入可视模式:
v - 字符选择
V - 行选择
Ctrl+v - 块选择
选择范围:
aw - 选择单词
ab - 选择括号内容
aB - 选择大括号内容
at - 选择标签内容
操作:
d - 删除选中
y - 复制选中
> - 增加缩进
< - 减少缩进命令模式
常用命令
文件操作:
:w - 保存
:q - 退出
:wq 或 :x - 保存并退出
:q! - 强制退出不保存
:e <文件名> - 打开文件
:saveas <文件名> - 另存为
搜索替换:
/pattern - 向下搜索
?pattern - 向上搜索
:s/old/new - 替换当前行第一个匹配
:s/old/new/g - 替换当前行所有匹配
:%s/old/new/g - 替换整个文件高级特性
多窗口操作
vim
:sp[lit] - 水平分屏
:vs[plit] - 垂直分屏
Ctrl+w s - 水平分屏
Ctrl+w v - 垂直分屏vim
Ctrl+w h - 切换到左边窗口
Ctrl+w j - 切换到下边窗口
Ctrl+w k - 切换到上边窗口
Ctrl+w l - 切换到右边窗口
Ctrl+w w - 循环切换窗口vim
Ctrl+w = - 使所有窗口等宽等高
Ctrl+w _ - 最大化当前窗口高度
Ctrl+w | - 最大化当前窗口宽度
n Ctrl+w _ - 将当前窗口高度设为 n 行标记与跳转
标记操作
m{a-zA-Z}- 设置标记'{a-zA-Z}- 跳转到标记所在行`{a-zA-Z}- 跳转到标记的确切位置:marks- 查看所有标记
寄存器使用
寄存器类型
命名寄存器:"a-"z
无名寄存器:""
系统剪贴板:"+
小删除寄存器:"-
只读寄存器:":, "., "%
搜索模式寄存器:"/, "?使用方法:
"ay- 复制到寄存器 a"ap- 从寄存器 a 粘贴:reg- 查看所有寄存器内容
配置与定制
基本配置
.vimrc 示例
vim
" 基本设置
set number " 显示行号
set relativenumber " 显示相对行号
set cursorline " 高亮当前行
set ruler " 显示光标位置
set showcmd " 显示命令
set showmode " 显示模式
set wrap " 自动换行
" 搜索设置
set hlsearch " 高亮搜索结果
set incsearch " 增量搜索
set ignorecase " 搜索忽略大小写
set smartcase " 智能大小写
" 缩进设置
set autoindent " 自动缩进
set smartindent " 智能缩进
set expandtab " 使用空格代替制表符
set tabstop=4 " 制表符宽度
set shiftwidth=4 " 缩进宽度快捷键映射
常用映射
vim
" 使用空格作为 leader 键
let mapleader = " "
" 快速保存和退出
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
" 窗口切换
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
" 取消搜索高亮
nnoremap <leader><CR> :nohlsearch<CR>插件推荐
必备插件
- vim-plug - 插件管理器
- nerdtree - 文件树浏览器
- fzf.vim - 模糊查找
- vim-airline - 状态栏美化
- coc.nvim - 代码补全
常见问题
模式切换
问题:按 Esc 后无法退出插入模式 解决:
- 检查是否真的按到了
Esc键 - 尝试按两次
Esc - 使用
Ctrl+[作为替代
复制粘贴
问题:系统剪贴板复制粘贴不生效 解决:
- 确认 Vim 是否支持系统剪贴板:
:echo has('clipboard') - 使用
"+y复制到系统剪贴板 - 使用
"+p从系统剪贴板粘贴
学习资源
学习建议
- 循序渐进,先掌握基本操作
- 使用
vimtutor进行交互式学习 - 坚持使用,养成肌肉记忆
- 定期学习新的技巧和命令
- 根据需求逐步配置和添加插件