C++ 在项目中使用vim

news/2024/10/30 18:25:36/

一:概述

        除了掌握 Vim 的基本操作,利用 Vim 阅读项目源码的方法同样重要,这对实际项目开发大有裨益。虽然现在有许多人选择使用 VSCode,但在某些环境中,可能无法安装 VSCode 或联网下载插件,这时使用 Vim 就显得尤为合适。此外,熟练掌握 Vim 可以显著提升阅读代码的效率,特别是在处理大型代码库时。本文将介绍一些实用的方法,帮助您更有效地使用 Vim 来阅读和理解项目源码。

二:在vim中如何进行函数跳转

       1. 首先安装标签生成工具:

sudo apt update
sudo apt install exuberant-ctags

        2. 在项目源码根目录下,运行命令:ctags -R . 在项目根目录生成tags 文件。

 ctags -R . 

         3. 在vim 中,使用 Ctrl - ] 跳转到标识符定义,使用 Ctrl - t 返回。

三:如何在vim中同时查看多个文件:

         1. 分割窗口:使用 :split:vsplit 将窗口分割,可以同时查看多个文件。

         2. 在窗口间切换: 使用 Ctrl-w 加上方向键在分屏之间切换。

         3. 关闭当前窗口:使用 :q 然后回车,强制关闭使用 :q!, 或使用 Ctrl + w + c 关闭

         4. 关闭所有其他窗口:使用 :only  

四:如何浏览项目文件

        1. 安装插件管理器 Vim-Plug 

sudo apt install curl git clone https://github.com/junegunn/vim-plug.git ~/.vim/autoload/plug.vim

        2. 添加插件到配置文件:打开你的 .vimrc 文件(在终端中运行 vim ~/.vimrc),并添加以下内容:

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

         3. 安装插件

启动 Vim。
输入 :PlugInstall 并按回车。

         4. 使用NERDTree插件

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 打开最近访问的文件列表。

         5. 也可以使用 vim-vinegar 查看文件

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 功能相似,但可以根据需求选择使用一个或同时使用。

五:如何跳转到指定行或文件

        1. 使用命令

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 

     2. 使用fzf.vim 插件

六:如何设置代码补全和高亮

启用语法高亮:在 .vimrc 中添加 syntax on 来启用语法高亮。设置颜色方案:选择适合阅读的颜色方案,例如 set background=dark 和 colorscheme desert使用 YouCompleteMe 或 coc.nvim 提供代码补全和语法检查
set hlsearch              " 启用搜索高亮
nnoremap <C-l> :nohlsearch<CR>  " 取消搜索高亮的快捷键
set incsearch             " 自动高亮搜索结果
set ignorecase            " 忽略搜索时的大小写
set smartcase             " 智能大小写处理

        


http://www.ppmy.cn/news/1543159.html

相关文章

2023IKCEST第五届“一带一路”国际大数据竞赛--社交网络中多模态虚假 媒体内容核查top11

比赛链接&#xff1a;https://aistudio.baidu.com/competition/detail/1030/0/introduction PPT链接&#xff1a;https://www.ikcest.org/bigdata2024/zlxz/list/page.html 赛题 社交网络中多模态虚假媒体内容核查 背景 随着新媒体时代信息媒介的多元化发展&#xff0c;各种内容…

【verilog】四位全加器

文章目录 前言一、实验原理二、实验过程三、实验结果参考文献 前言 进行 FPGA 全加器 实验 一、实验原理 module adder(ain,bin,cin,cout,s); input ain,bin,cin; output cout,s; assign coutain&bin | ain&cin | bin&cin; assign sain^bin^cin; endmoduletimesc…

Matlab 车牌识别技术

1.1设计内容及要求&#xff1a; 课题研究的主要内容是对数码相机拍摄的车牌&#xff0c;进行基于数字图像处理技术的车牌定位技术和车牌字符分割技术的研究与开发&#xff0c;涉及到图像预处理、车牌定位、倾斜校正、字符分割等方面的知识,总流程图如图1-1所示。 图1-1系统总…

504 Gateway Time-outopenresty

504 Gateway Time-out openresty 问题背景&#xff1a; 当自己点开知乎页面以后&#xff0c;发现官网没有出现任何问题&#xff0c;点击官网以后开始出现各种各样的报错&#xff01; 一下是来源ai的介绍&#xff1a;&#xff08;通过搜索这种形式帮助自己进行记忆&#xff09;…

HTML入门教程18:HTML类

一、定义类 在HTML中&#xff0c;你使用class属性来为元素分配类名。类名可以是任何你选择的名称&#xff0c;但最好使用能够描述元素用途或样式的名称。类名前面用一个点&#xff08;.&#xff09;表示&#xff0c;但在HTML中给元素分配类名时不需要这个点。 <div class&…

Python中的HTTP高手:如何玩转requests模块

目录 引言 一、HTTP协议基础 1. URL解析 2. 请求方法 3. 请求与响应格式 4. 常用状态码 二、requests模块基础 1. 安装requests模块 2. 发送GET请求 3. 发送带参数的GET请求 4. 发送POST请求 5. 发送JSON数据 6. 添加请求头 7. 处理JSON响应 8. 处理错误和异常 …

告别冰冷机器声:GLM-4-Voice开启情感语音交互新时代!

目录 引言一、GLM-4-Voice概述二、GLM-4-Voice的架构三、GLM-4-Voice的主要功能四、GLM-4-Voice的技术原理五、GLM-4-Voice的应用场景六、GLM-4-Voice体验快速开始结语 引言 在人工智能的不断进步中&#xff0c;语音交互技术正逐渐成为人机沟通的重要桥梁。它不仅极大地提升了…

SQL 随笔记: 常见的表连接方式

文章目录 1. 内连接&#xff08;INNER JOIN&#xff09;2. 外连接&#xff08;OUTER JOIN&#xff09;2.1 左外连接&#xff08;LEFT JOIN&#xff09;2.2 右外连接&#xff08;RIGHT JOIN&#xff09;2.3 全外连接&#xff08;FULL JOIN&#xff09; 3. 交叉连接&#xff08;C…