C++ 在项目中使用vim

一:概述

        除了掌握 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.mzph.cn/news/884023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unreal Engine 5 C++(C#)开发:使用蓝图库实现插件(一)认识和了解Build.cs

目录 引言 一、创建一个C插件TextureReader插件 二、Build.cs文件 三、ModuleRules 四、TextureReader插件的构造 4.1ReadOnlyTargetRules的作用 4.2TextureReaderd的构造调用 4.3设置当前类的预编译头文件的使用模式 4.4PublicIncludePaths.AddRange与PrivateInclude…

探索C嘎嘎:初步接触STL

#1024程序员节&#xff5c;征文# 前言&#xff1a; 在前文小编讲述了模版初阶&#xff0c;其实讲述模版就是为了给讲STL提前铺垫&#xff0c;STL是C中很重要的一部分&#xff0c;各位读者朋友要知道它的份量&#xff0c;下面废话不多说&#xff0c;开始走进STL的世界。 目录&am…

指令系统 I(指令的格式、寻址)

一、指令系统 1. 指令集体系结构 指令&#xff08;机器指令&#xff09;是指示计算机执行某种操作的命令&#xff0c;是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该机的指令系统&#xff0c;也称指令集。 指令系统是指令集体系结构&#xff08;ISA&#xf…

说一说QWidget

目录 关于QWidget 作为界面组件时&#xff0c;你需要有印象的 1. 控制属性 2. 组件状态与交互属性 3. 外观和样式属性 4. 布局与子组件管理属性 5. 图标和光标属性 6. 大小策略属性 作为单独的窗体的属性 写Qt快两年了&#xff0c;也写过一些规模偏大的软件&#xff0c…

刘艳兵-DBA015-对于属于默认undo撤销表空间的数据文件的丢失,哪条语句是正确的?

对于属于默认undo撤销表空间的数据文件的丢失&#xff0c;哪条语句是正确的&#xff1f; A 所有未提交的交易都将丢失。 B 数据库实例中止。 C 数据库处于MOUNT状态&#xff0c;需要恢复才能打开。 D 数据库保持打开状态以供查询&#xff0c;但除具有SYSDBA特权的用…

如何精准选择Yandex关键词

Hey小伙伴们&#x1f44b;&#xff0c;今天来聊聊如何精准选择Yandex关键词&#xff0c;让你的广告投放效果最大化&#xff01;&#x1f50d; 1.使用Yandex关键词工具&#xff1a;Yandex提供了关键词工具&#xff0c;如Yandex Keyword Planner和Yandex Wordstat&#xff0…

快速生成高质量提示词,Image to Prompt 更高效

抖知书老师推荐&#xff1a; 随着 AI 技术的不断发展&#xff0c;视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中&#xff0c;图像与文字的交互需求愈发旺盛&#xff0c;很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…

go语言回调函数的使用

前言 在 Go 语言中&#xff0c;回调函数是一种将一个函数作为参数传递给另一个函数&#xff0c;在特定的事件发生时被调用的编程模式。 一、回调函数的定义 type OnTaskHandler func(r []byte)type remoteTaskClient struct {sync.RWMutexonTask OnTaskHandler } 以上定义了…

Kubernetes(k8s)挂载hostPath和emptyDir两种volume的区别

Kubernetes挂载可以指定多种类型的volume&#xff0c;这篇文章聊一下hostPath和emptyDir两种volume的区别。 hostPath类型是将宿主机的目录或者文件挂载到容器中&#xff0c;这样容器写入和读取的数据是直接反映在宿主机上的&#xff0c;这种方式产生的数据可以在不同pod之间共…

jmeter附件上传

可以采用录制的方式获取附件上传的http请求 普通参数 附件参数 文件名称: 方式一:如果只添项目名称,默认充jmeter的bin目录下获取 方式二:点击文件名称,再点击浏览,可以自己选择文件信息

OpenCV视觉分析之目标跟踪(7)目标跟踪器类TrackerVit的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 VIT 跟踪器由于特殊的模型结构而变得更快且极其轻量级&#xff0c;模型文件大约为 767KB。模型下载链接&#xff1a;https://github.com/opencv/…

如何用Python同时抓取多个网页:深入ThreadPoolExecutor

背景介绍 在信息化时代&#xff0c;数据的实时性和获取速度是其核心价值所在。对于体育赛事爱好者、数据分析师和投注行业而言&#xff0c;能否快速、稳定地抓取到实时比赛信息显得尤为重要。特别是在五大足球联赛中&#xff0c;能够在比赛进行时获得比分、控球率等实时数据&a…

Typora 、 Minio and PicGo 图床搭建

流程介绍 本地安装Typora笔记工具拥有一台装有docker的服务器配置minio云图床管理控制页面下载PicGo上传工具服务器Docker环境搭建—Ubuntu系统 删除旧docker的所有依赖(非root用户) # 删除docker及安装时自动安装的所有包 sudo apt-get autoremove docker docker-ce docker…

【UBuntu20 配置usb网卡】 记录Ubuntu20配置usb网卡(特别是建立热点)

【UBuntu20 配置usb网卡】 Ubuntu20配置usb网卡&#xff08;特别是建立热点&#xff09; 一、 闲言碎语的前言 usb的外置网卡&#xff0c;相比Windows即插即用&#xff0c;Linux买回来一顿折腾&#xff0c;准备把过程梳理一下记录起来。 网卡的方案其实就那几家&#xff0c;…

前端开发模块VUE-Element UI学习笔记

前端开发模块VUE-Element UI学习笔记 文章目录 前端开发模块VUE-Element UI学习笔记 1、Element UI 简介2、Element UI 安装3、Icon 图标4、Button 按钮5、Link 超链接6、Radio 单选框7、Checkbox 多选框8、Input 输入框9、Select 下拉框10、Switch 开关 1、Element UI 简介 基…

Java面试经典 150 题.P169. 多数元素(005)

本题来自&#xff1a;力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解&#xff1a; class Solution {public int majorityElement(int[] nums) …

如何在Python爬虫等程序中设置和调用http代理

在Python爬虫中为了更好地绕过反爬机制&#xff0c;获取网页信息&#xff0c;有时可能需要在Python中应用代理服务&#xff0c;这样做的目的就是防止自己的ip被服务器封禁&#xff0c;造成程序运行时中断连接&#xff0c;那么如何在python中设置代理呢&#xff1f; 我们通过几个…

海思MPP音视频总结

基础篇 1.常用图像格式介绍 常用图像像素格式 RGB 和 YUV。 1.1RGB RGB分类通常指的是将图像或颜色按照RGB&#xff08;红、绿、蓝&#xff09;颜色空间进行分组或分类。RGB图像格式通常包括RGB24&#xff08;RGB888&#xff09;、RGB32、RGBA、RGB565等。 RGB24是一种常用…

一篇万字文章带你快速上手MySQL中表的增删查改操作

1. 创建–CREATE 1.1 基本使用方法 语法&#xff1a; CREATE TABLE table_name (column1 datatype [constraints],column2 datatype [constraints],... );table_name: 要创建的表的名称。column1, column2, …: 表中的列名。datatype: 列的数据类型&#xff0c;如 INT, VARC…

预览 PDF 文档

引言 在现代Web应用中&#xff0c;文件预览功能是非常常见的需求之一。特别是在企业级应用中&#xff0c;用户经常需要查看各种类型的文件&#xff0c;如 PDF、Word、Excel 等。本文将详细介绍如何在Vue项目中实现 PDF 文档的预览功能。 实现原理 后端API 后端需要提供一个…