# myvim **Repository Path**: cpp_10/myvim ## Basic Information - **Project Name**: myvim - **Description**: 我的vim配置 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 安装依赖 ``` //CentOs用下列命令 yum install ncurses-devel //Ubuntu用下列命令 sudo apt install universal-ctags //安装vim8.1(如果是centos7,默认是vim7.4,需要升级到8.1) //如果是centos8,默认是vim8.0,不需要升级 //如果是ubuntu,默认是vim8.0,不需要升级 //如果是ubuntu18.04,默认是vim8.1,不需要升级 //如果是ubuntu20.04,默认是vim8.2,不需要升级 //如果是ubuntu22.04,默认是vim9.0,不需要升级 wget ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2 tar xvf vim-8.1.tar.bz2 cd vim81 make install ``` #验证安装成功 ``` which vim /apps/sylar/bin/vim ``` # 使用方式 ``` 把 .vimrc copy 到 ~/ 路径下 把 .vim copy 到 ~/ 路径下 ctags 生成c++ tags: ctags -R --c++-kinds=+p --fields=+iaS --extras=+q 为了方便使用在profile里面 alias vctags="ctags -R --c++-kinds=+p --fields=+iaS --extras=+q" 当代码有新的结构,函数定义后,执行以下,就可以了 ``` # Vim 日常实用技巧快捷键表格 下面是一份常用的 Vim 快捷键表格,结合了基本操作和您配置文件中使用的功能。 ## 一、基本编辑操作 | 快捷键 | 功能描述 | |--------|----------| | `i` | 进入插入模式 | | `Esc` | 退出插入模式,回到普通模式 | | `:w` | 保存文件 | | `:q` | 退出 Vim | | `:wq` | 保存并退出 | | `:q!` | 强制退出,不保存 | | `u` | 撤销上一步操作 | | `Ctrl + r` | 重做上一步操作 | | `y` | 复制(yank) | | `d` | 删除(delete) | | `p` | 粘贴(put) | | `yy` | 复制当前行 | | `dd` | 删除当前行 | | `D` | 删除从光标到行尾的内容 | | `x` | 删除当前字符 | | `r` | 替换当前字符 | ## 二、移动光标 | 快捷键 | 功能描述 | |--------|----------| | `h` | 向左移动光标 | | `j` | 向下移动光标 | | `k` | 向上移动光标 | | `l` | 向右移动光标 | | `0` | 移动到行首 | | `$` | 移动到行尾 | | `gg` | 移动到文件开头 | | `G` | 移动到文件结尾 | | `Ctrl + f` | 向下翻页 | | `Ctrl + b` | 向上翻页 | | `Ctrl + d` | 向下滚动半页 | | `Ctrl + u` | 向上滚动半页 | | `w` | 移动到下一个单词开头 | | `e` | 移动到当前单词结尾 | | `b` | 移动到上一个单词开头 | ## 三、窗口和标签管理 | 快捷键 | 功能描述 | |--------|----------| | `:split` 或 `Ctrl + w s` | 水平分割窗口 | | `:vsplit` 或 `Ctrl + w v` | 垂直分割窗口 | | `Ctrl + w h/j/k/l` | 在窗口间移动光标 | | `Ctrl + w +` | 增加当前窗口高度 | | `Ctrl + w -` | 减少当前窗口高度 | | `Ctrl + w >` | 增加当前窗口宽度 | | `Ctrl + w <` | 减少当前窗口宽度 | | `Ctrl + w =` | 使所有窗口大小相等 | | `:tabnew` | 创建新标签页 | | `:tabn` | 切换到下一个标签页 | | `:tabp` | 切换到上一个标签页 | | `:tabs` | 列出所有标签页 | ## 四、搜索和替换 | 快捷键 | 功能描述 | |--------|----------| | `/pattern` | 向下搜索 pattern | | `?pattern` | 向上搜索 pattern | | `n` | 跳转到下一个匹配 | | `N` | 跳转到上一个匹配 | | `:%s/old/new/g` | 全局替换所有 old 为 new | | `:%s/old/new/gc` | 全局替换所有 old 为 new,每次替换前确认 | | `:s/old/new/` | 替换当前行第一个 old 为 new | | `:s/old/new/g` | 替换当前行所有 old 为 new | ## 五、插件相关快捷键 | 快捷键 | 功能描述 | |--------|----------| | `F7` | 切换标签列表(TagList 插件) | | `Tab` | 补全代码(SuperTab 插件) | | `Ctrl + x Ctrl + o` | 智能代码补全 | ## 六、其他实用技巧 | 快捷键 | 功能描述 | |--------|----------| | `:set nu` | 显示行号 | | `:set nonu` | 隐藏行号 | | `:set hlsearch` | 高亮搜索结果 | | `:set nohlsearch` | 关闭搜索结果高亮 | | `:nohl` | 暂时关闭当前搜索结果高亮 | | `:set autoindent` | 启用自动缩进 | | `:set expandtab` | 使用空格代替制表符 | | `:set tabstop=4` | 设置制表符宽度为 4 | | `:set shiftwidth=4` | 设置缩进宽度为 4 | | `:e filename` | 打开文件 filename | | `:bprev` | 切换到上一个缓冲区 | | `:bnext` | 切换到下一个缓冲区 | | `:ls` | 列出所有缓冲区 | | `:!command` | 执行外部命令 command | | `:%!command` | 将文件内容通过 command 过滤 | | `:help` 或 `:h` | 打开帮助文档 | # Vim 高级操作技巧 ## 一、分屏技巧 分屏功能是 Vim 中非常实用的功能,可以让你在同一个窗口中同时查看和编辑多个文件。 ### 1. 创建分屏 | 快捷键/命令 | 功能描述 | |------------|----------| | `:split` 或 `Ctrl + w s` | 创建水平分屏(上下布局) | | `:vsplit` 或 `Ctrl + w v` | 创建垂直分屏(左右布局) | | `:split filename` | 水平分屏并打开指定文件 | | `:vsplit filename` | 垂直分屏并打开指定文件 | | `:new` | 创建新的水平分屏窗口 | | `:vnew` | 创建新的垂直分屏窗口 | ### 2. 窗口切换 | 快捷键 | 功能描述 | |--------|----------| | `Ctrl + w h` | 切换到左侧窗口 | | `Ctrl + w j` | 切换到下方窗口 | | `Ctrl + w k` | 切换到上方窗口 | | `Ctrl + w l` | 切换到右侧窗口 | | `Ctrl + w w` | 循环切换到下一个窗口 | | `Ctrl + w p` | 切换到上一个访问的窗口 | ### 3. 窗口调整 | 快捷键 | 功能描述 | |--------|----------| | `Ctrl + w +` | 增加当前窗口高度 | | `Ctrl + w -` | 减少当前窗口高度 | | `Ctrl + w >` | 增加当前窗口宽度 | | `Ctrl + w <` | 减少当前窗口宽度 | | `Ctrl + w =` | 使所有窗口大小相等 | | `Ctrl + w _` | 最大化当前窗口高度 | | `Ctrl + w |` | 最大化当前窗口宽度 | ### 4. 关闭窗口 | 命令 | 功能描述 | |------|----------| | `:q` | 关闭当前窗口 | | `:qa` | 关闭所有窗口 | | `:only` | 关闭其他所有窗口,只保留当前窗口 | ## 二、缓冲区知识 缓冲区是 Vim 中用于存储文件内容的内存区域。当你打开一个文件时,Vim 会将其内容加载到缓冲区中。 ### 1. 缓冲区基本操作 | 命令 | 功能描述 | |------|----------| | `:e filename` | 打开文件到新缓冲区 | | `:bnext` 或 `:bn` | 切换到下一个缓冲区 | | `:bprev` 或 `:bp` | 切换到上一个缓冲区 | | `:bfirst` 或 `:bf` | 切换到第一个缓冲区 | | `:blast` 或 `:bl` | 切换到最后一个缓冲区 | | `:bdelete` 或 `:bd` | 删除当前缓冲区 | | `:bdelete!` 或 `:bd!` | 强制删除当前缓冲区,不保存更改 | | `:bdelete 1 3 5` | 删除编号为 1、3、5 的缓冲区 | ### 2. 列出缓冲区 | 命令 | 功能描述 | |------|----------| | `:ls` 或 `:buffers` | 列出所有缓冲区 | | `:ls!` 或 `:buffers!` | 列出所有缓冲区,包括不可见的 | 缓冲区列表中的状态标记: - `%` : 当前缓冲区 - `#` : 替代缓冲区(上一个使用的缓冲区) - `a` : 活动缓冲区(在某个窗口中显示) - `h` : 隐藏缓冲区(不在任何窗口中显示) - `=` : 只读缓冲区 - `-` : 可修改但未修改的缓冲区 - `+` : 已修改的缓冲区 ### 3. 缓冲区高级操作 | 命令 | 功能描述 | |------|----------| | `:sbuffer` 或 `:sb` | 水平分屏并切换到指定缓冲区 | | `:vert sbuffer` 或 `:vert sb` | 垂直分屏并切换到指定缓冲区 | | `:buffer! filename` | 强制切换到指定文件的缓冲区,不保存当前缓冲区的更改 | ## 三、标签页技巧 标签页允许你将多个窗口组织成不同的工作区。 ### 1. 创建标签页 | 命令 | 功能描述 | |------|----------| | `:tabnew` | 创建新的空标签页 | | `:tabnew filename` | 创建新标签页并打开指定文件 | | `:tab split` | 将当前窗口拆分为新标签页 | ### 2. 切换标签页 | 快捷键/命令 | 功能描述 | |------------|----------| | `:tabnext` 或 `:tabn` | 切换到下一个标签页 | | `:tabprevious` 或 `:tabp` | 切换到上一个标签页 | | `:tabfirst` 或 `:tabf` | 切换到第一个标签页 | | `:tablast` 或 `:tabl` | 切换到最后一个标签页 | | `:tabn N` | 切换到第 N 个标签页(N 为标签页编号) | | `gt` | 切换到下一个标签页 | | `gT` | 切换到上一个标签页 | | `Ngt` | 切换到第 N 个标签页(N 为标签页编号) | ### 3. 关闭标签页 | 命令 | 功能描述 | |------|----------| | `:tabclose` 或 `:tabc` | 关闭当前标签页 | | `:tabclose N` | 关闭第 N 个标签页 | | `:tabonly` 或 `:tabo` | 关闭其他所有标签页,只保留当前标签页 | ### 4. 标签页操作 | 命令 | 功能描述 | |------|----------| | `:tabs` | 列出所有标签页 | | `:tabmove N` | 将当前标签页移动到第 N 个位置(0 表示第一个位置) | | `:tabmove` | 将当前标签页移动到最后一个位置 | ## 四、实用组合技巧 1. **在新标签页中打开文件**: `:tabe filename` 2. **在水平分屏中打开缓冲区**: `:sb N` (N 为缓冲区编号) 3. **在垂直分屏中打开缓冲区**: `:vert sb N` (N 为缓冲区编号) 4. **快速切换标签页**: `1gt` 切换到第一个标签页,`2gt` 切换到第二个标签页,以此类推 5. **关闭所有未修改的标签页**: `:tabonly` 然后 `:qa!` 希望这些 Vim 高级操作技巧能帮助你更高效地使用 Vim 进行编辑工作!