一:概述
除了掌握 Vim 的基本操作,利用 Vim 阅读项目源码的方法同样重要,这对实际项目开发大有裨益。虽然现在有许多人选择使用 VSCode,但在某些环境中,可能无法安装 VSCode 或联网下载插件,这时使用 Vim 就显得尤为合适。此外,熟练掌握 Vim 可以显著提升阅读代码的效率,特别是在处理大型代码库时。本文将介绍一些实用的方法,帮助您更有效地使用 Vim 来阅读和理解项目源码。
二:在vim中如何进行函数跳转
- 首先安装标签生成工具:
cpp
sudo apt update
sudo apt install exuberant-ctags
- 在项目源码根目录下,运行命令:
ctags -R . 在项目根目录生成tags 文件。
cpp
ctags -R .
- 在vim 中,使用 Ctrl - ] 跳转到标识符定义,使用 Ctrl - t 返回。
三:如何在vim中同时查看多个文件:
-
分割窗口:使用
:split
或:vsplit
将窗口分割,可以同时查看多个文件。 -
在窗口间切换: 使用
Ctrl-w
加上方向键在分屏之间切换。 -
关闭当前窗口:使用 :q 然后回车,强制关闭使用 :q!, 或使用 Ctrl + w + c 关闭
-
关闭所有其他窗口:使用 :only
四:如何浏览项目文件
- 安装插件管理器 Vim-Plug
cpp
sudo apt install curl
git clone https://github.com/junegunn/vim-plug.git ~/.vim/autoload/plug.vim
- 添加插件到配置文件:打开你的
.vimrc
文件(在终端中运行vim ~/.vimrc
),并添加以下内容:
cpp
call plug#begin('~/.vim/plugged')
" 安装 NERDTree
Plug 'preservim/nerdtree'
" 安装 vim-vinegar
Plug 'tpope/vim-vinegar'
call plug#end()
" 显示隐藏文件
let NERDTreeShowHidden=1
" 自动打开 NERDTree
autocmd VimEnter * NERDTree
- 安装插件
cpp
启动 Vim。
输入 :PlugInstall 并按回车。
- 使用NERDTree插件
cpp
1. 在 Vim 中运行 :PlugInstall。
2. 打开和关闭 NERDTree
打开 NERDTree:在 Vim 中输入 :NERDTreeToggle,或使用快捷键 Ctrl-n(如果设置了)。
关闭 NERDTree:再次运行 :NERDTreeToggle 或使用 :q 关闭 NERDTree 窗口。
3. 窗口操作
切换焦点:使用 Ctrl-w 加方向键在 Vim 窗口之间切换。
关闭当前窗口:在 NERDTree 窗口中,可以使用 :q 关闭该窗口。
4. 文件和目录操作
打开文件:在 NERDTree 中选择文件并按 Enter 打开。
切换目录:选择目录并按 Enter 进入。
返回上级目录:在目录中按 h 返回上级目录。
创建新文件:在 NERDTree 窗口中,选择目录并按 m 打开菜单,然后选择 New file,输入文件名并按 Enter。
创建新目录:同样,选择父目录并按 m,选择 New folder,输入目录名并按 Enter。
删除文件或目录:选择文件或目录,按 m,然后选择 Delete,确认删除。
重命名文件或目录:选择文件或目录,按 m,然后选择 Rename,输入新名称并按 Enter。
5. 高级操作
查看文件内容:在 NERDTree 中选择文件,按 t 在新标签页中打开文件,或按 i 在新窗口中打开。
搜索文件:按 f,然后输入文件名的部分匹配,NERDTree 会过滤显示匹配的文件。
打开最近文件:按 r 打开最近访问的文件列表。
- 也可以使用 vim-vinegar 查看文件
cpp
1 文件浏览
打开文件浏览器:在命令模式下输入 -,这会打开当前目录的文件浏览器(类似于 NERDTree,但更加简单)。
2 文件操作
在文件浏览器中,你可以使用以下操作:
导航:
使用方向键或 j 和 k 键来上下移动选择。
按 Enter 打开文件或进入目录。
按 h 返回上级目录。
创建新文件或目录:
在文件浏览器中,按 N 可以创建新文件或目录。
删除文件或目录:
选择文件后,按 d 删除文件,确认后文件会被删除。
重命名文件或目录:
选择文件或目录后,按 r 进行重命名。
3 打开文件
快速打开文件:使用 Enter 来打开选中的文件或目录。
在新标签页中打开文件:在文件名上按 t。
在新窗口中打开文件:在文件名上按 i。
4 快速文件查找
快速查找文件:在命令模式下,输入 :e filename,可以快速打开指定的文件。
3. 结合其他插件使用
vim-vinegar 可以与其他插件结合使用,增强文件浏览体验:
fzf.vim:使用 fzf 进行模糊查找文件时,可以在 Vim 中打开文件浏览器。
NERDTree:虽然 vim-vinegar 和 NERDTree 功能相似,但可以根据需求选择使用一个或同时使用。
五:如何跳转到指定行或文件
- 使用命令
cpp
1. 跳转到行:输入 :line_number 直接跳转到指定行。
2. 跳转到上一个/下一个文件:使用 :bprev 和 :bnext 切换缓冲区。
3. 跳转到指定文件: :e /path/to/your/file.txt 文件名使用Tab补全
4. 与 find 结合: :!find . -name "filename.txt" 或者 :e `find . -name "filename.txt"`
5. 与 grep 结合: :grep "search_pattern" *
6. 使用vimgrep: :vimgrep /search_pattern/ *.txt
7. 使用copen: :copen
- 使用fzf.vim 插件
六:如何设置代码补全和高亮
cpp
启用语法高亮:在 .vimrc 中添加 syntax on 来启用语法高亮。
设置颜色方案:选择适合阅读的颜色方案,例如 set background=dark 和 colorscheme desert
使用 YouCompleteMe 或 coc.nvim 提供代码补全和语法检查
cpp
set hlsearch " 启用搜索高亮
nnoremap <C-l> :nohlsearch<CR> " 取消搜索高亮的快捷键
set incsearch " 自动高亮搜索结果
set ignorecase " 忽略搜索时的大小写
set smartcase " 智能大小写处理