Vim 编辑器完全指南
字数:
641
·
阅读:
4 分钟
·
访问:
-
Vim 是一个功能强大的文本编辑器,被广泛应用于 Linux/Unix 系统中。本文将从基础操作开始,逐步介绍 Vim 的各种功能和使用技巧。
基础操作
模式切换
Vim 有几种不同的工作模式:
- 普通模式(Normal Mode):默认模式,用于浏览和操作文本
 - 插入模式(Insert Mode):用于输入文本
 - 可视模式(Visual Mode):用于选择文本
 - 命令模式(Command Mode):用于执行命令
 
模式切换快捷键
i- 在光标前进入插入模式I- 在行首进入插入模式a- 在光标后进入插入模式A- 在行尾进入插入模式o- 在下一行进入插入模式O- 在上一行进入插入模式Esc- 返回普通模式v- 进入可视模式V- 进入行可视模式Ctrl+v- 进入块可视模式:- 进入命令模式
光标移动
基本移动
h- 左移一个字符j- 下移一行k- 上移一行l- 右移一个字符w- 移动到下一个单词开头b- 移动到上一个单词开头e- 移动到当前单词结尾
快速移动
0- 移动到行首^- 移动到行首第一个非空字符$- 移动到行尾gg- 移动到文件开头G- 移动到文件结尾nG- 移动到第 n 行(如10G移动到第10行)Ctrl+f- 向下翻页Ctrl+b- 向上翻页Ctrl+d- 向下翻半页Ctrl+u- 向上翻半页
文本编辑
删除操作
x- 删除光标下的字符X- 删除光标前的字符dd- 删除当前行ndd- 删除 n 行(如3dd删除3行)dw- 删除到下一个单词db- 删除到上一个单词d$- 删除到行尾d0- 删除到行首
复制和粘贴
yy- 复制当前行nyy- 复制 n 行yw- 复制一个单词y$- 复制到行尾p- 在光标后粘贴P- 在光标前粘贴
撤销和重做
u- 撤销上一次操作Ctrl+r- 重做被撤销的操作U- 撤销对当前行的所有修改
查找和替换
查找操作
/pattern- 向下查找 pattern?pattern- 向上查找 patternn- 查找下一个匹配项N- 查找上一个匹配项*- 查找光标下的单词(向下)#- 查找光标下的单词(向上)
替换操作
:s/old/new/- 替换当前行第一个 old 为 new:s/old/new/g- 替换当前行所有 old 为 new:s/old/new/gc- 替换当前行所有 old 为 new,并提示确认:%s/old/new/g- 替换所有行所有 old 为 new:%s/old/new/gc- 替换所有行所有 old 为 new,并提示确认:n,ms/old/new/g- 替换第 n 行到第 m 行的 old 为 new
查找选项设置
:set ic- 忽略大小写:set noic- 不忽略大小写:set hlsearch- 高亮搜索结果:set nohlsearch- 不高亮搜索结果:set incsearch- 实时搜索:set noincsearch- 不实时搜索:noh- 清除当前高亮
文件操作
打开和保存文件
:e filename- 打开文件:w- 保存文件:w filename- 另存为:wq- 保存并退出:q- 退出:q!- 强制退出(不保存):x- 保存并退出(等同于:wq)
文件浏览
:find filename- 查找并打开文件:ls- 显示缓冲区列表:b n- 切换到缓冲区 n:bn- 切换到下一个缓冲区:bp- 切换到上一个缓冲区:bd- 删除当前缓冲区
窗口和标签页操作
窗口操作
:split或:sp- 水平分割窗口:vsplit或:vsp- 垂直分割窗口Ctrl+w h- 移动到左边窗口Ctrl+w j- 移动到下边窗口Ctrl+w k- 移动到上边窗口Ctrl+w l- 移动到右边窗口Ctrl+w w- 在窗口间循环切换Ctrl+w q- 关闭当前窗口Ctrl+w =- 平均分配窗口大小
标签页操作
:tabnew- 新建标签页:tabedit filename- 在新标签页中打开文件gt- 切换到下一个标签页gT- 切换到上一个标签页:tabclose- 关闭当前标签页:tabonly- 关闭其他标签页
显示设置
行号和界面
:set nu- 显示行号:set nonu- 不显示行号:set rnu- 显示相对行号:set nornu- 不显示相对行号:set wrap- 自动换行:set nowrap- 不自动换行:set ruler- 显示光标位置:set noruler- 不显示光标位置
高亮和匹配
:set showmatch- 显示括号匹配:set noshowmatch- 不显示括号匹配:set cursorline- 高亮当前行:set nocursorline- 不高亮当前行:set cursorcolumn- 高亮当前列:set nocursorcolumn- 不高亮当前列
代码折叠
:set foldenable- 启用折叠:set nofoldenable- 禁用折叠:set foldmethod=indent- 按缩进折叠:set foldmethod=syntax- 按语法折叠za- 切换折叠状态zo- 打开折叠zc- 关闭折叠zR- 打开所有折叠zM- 关闭所有折叠
高级技巧
宏录制
qa- 开始录制宏到寄存器 aq- 停止录制宏@a- 执行寄存器 a 中的宏@@- 重复执行上一次的宏
寄存器操作
"ayy- 复制当前行到寄存器 a"ap- 粘贴寄存器 a 的内容:reg- 查看所有寄存器内容
标记和跳转
ma- 在当前位置设置标记 a'a- 跳转到标记 a''- 跳转到上一次位置Ctrl+o- 跳转到上一个位置Ctrl+i- 跳转到下一个位置
常用配置
基础配置建议
在 ~/.vimrc 文件中添加以下配置:
" 基础设置
set number              " 显示行号
set relativenumber      " 显示相对行号
set cursorline          " 高亮当前行
set hlsearch            " 高亮搜索结果
set incsearch           " 实时搜索
set ignorecase          " 搜索忽略大小写
set smartcase           " 智能大小写匹配
set autoindent          " 自动缩进
set smartindent         " 智能缩进
set tabstop=4           " Tab 宽度
set shiftwidth=4        " 缩进宽度
set expandtab           " 用空格替代 Tab
set showmatch           " 显示括号匹配
set ruler               " 显示光标位置
set laststatus=2        " 总是显示状态栏
" 语法高亮
syntax on
filetype plugin indent on
" 搜索设置
set hlsearch
set incsearch
nnoremap <leader><space> :nohlsearch<CR>
" 快捷键映射
let mapleader = ","
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
实用插件推荐
- vim-plug - 插件管理器
 - NERDTree - 文件树浏览器
 - fzf.vim - 模糊查找
 - vim-airline - 状态栏美化
 - auto-pairs - 自动配对括号
 - vim-commentary - 快速注释
 - vim-surround - 快速编辑包围字符
 
总结
Vim 是一个功能强大的编辑器,虽然学习曲线较陡峭,但掌握后能大大提高编辑效率。建议:
- 先熟练掌握基本的模式切换和光标移动
 - 逐步学习文本编辑和查找替换功能
 - 根据需要学习高级功能如宏、寄存器等
 - 通过配置文件个性化 Vim 环境
 - 多练习,形成肌肉记忆
 
记住:Vim 的哲学是"组合命令",掌握基本命令后可以灵活组合使用,这是它强大之处。