GVim管理”工程“?

2024-01-09 17:20
文章标签 管理 工程 gvim

本文主要是介绍GVim管理”工程“?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GVim管理”工程“?

  经常看到新手朋友问Vim怎么管理工程之类的问题,其实这是对Vim的误解,它只是个编辑器而不是IDE,它不负责工程管理。工程管理应该交给CMake之类的(不然你还指望能像vscode那样有WorkSpace功能吗?目前我没发现)。如果你只是想用GVim方便的管理文件和文件夹的话还是能做到的,具体可以用Vim自带的目录树管理插件或用NerdTree之类的插件。
  用过之后你可能会郁闷遇到“如何让GVim启动就默认打开某个目录或文件?”,更方便点“如何想让哪个文件或文件夹用GVim启动就能立刻启动?”。这篇博客就是回答这两个问题的。

如何让GVim启动就默认打开某个目录或文件?

  • 借助插件
      其实很多插件都集成了MRU,它可以罗列出近期访问过的文件清单,你可以从清单里选择你需要的文件直接打开它。这样的插件有ctrlp、fzf、leaderf等,还有挺多人用vim-startify这个插件,它专门有个界面在启动时把近期文件列出来让你选择,不过我个人还是习惯用简单的leaderf的mru。

  • 在vimrc中加入指令
      网上有一些大神自己写了vim脚本,把访问过的文件路径写入到本地一个备份文件中,下次自动打开。不过这种方法用起来不直观,不能像mru那样直观的选择,具体代码网上有我就不搬运了。
      可能有些人不知道vim自带一个指令可以显示最近访问过的文件。:browse oldfiles,输入这个指令后就会出现文件清单,找到你想打开的文件后按q退出,推出前会让你输入文件编号,输入并回车可以打开。以下是效果图:
    [外链图片转存失败(img-4Y2sQ00J-1564202796438)(.\png\BrowseOldfiles.png "browse oldfils")]
      效果很差,罗列了一堆不需要的临时文件。
      在vimrc里店家cd指令,因为GVim支持cd指令,在vimrc中写入可以保证在GVim启动后立刻进入某个目录。示例:
    [外链图片转存失败(img-JsCBnrxO-1564202796440)(.\png\cd.png "cd")]
      这个指令是我早期经常用的,我会把最近经常编辑的工程根目录路径写入到vimrc中,通过cd指令下次自动进入跟目录。现在基本不用了(我现在喜欢更灵活的鼠标右键启动,下文会讲),因为我经常访问的目录可能有三四个,而cd每次只能执行一个。

如何想让哪个文件或文件夹用GVim启动就能立刻启动?

  • 将GVim添加到鼠标右键启动。
      鼠标右键启动是一种很灵活有效的方式,当你想对哪个文件或文件夹用GVim启动时,无需再手动切换路径或输入指令,从右键菜单里启动GVim,它就会在你期望的路径打开你期望的文件。
      怎么实现将GVim添加到鼠标右键启动项里呢?Windows下当然需要添加到注册表里。按鼠标右键的对象不同,可以分为三种情况,这三种情况都需要分别设置注册表。以下讲解这三种情况的设置,具体的添加方式你可以写个批处理自动执行或手动设置,我这里讲下手动设置。

    • 对文件鼠标右键
        在运行里输入regedit即可打开注册表编辑器,找到选项HKEY_CLASSES_ROOT -> * -> shell,在shell下新建项(鼠标右键)将其命名为GVim,在新建项GVim下新建字符串值(鼠标右键),这时候右边除了默认还多了一个,将其命名为Icon,双击编辑它,在数值数据里写入如:D:\cpy\WorkSpace\Install\gvim_8.1.1006_x64\Vim\vim81\gvim.exe,0,路径指向你的gvim.exe(根据你自己的路径修改),他的作用就是鼠标右键菜单时有个GVim的图标。
        只给了了图标的路径还需要给出可执行文件exe的启动路径。在刚才的GVvim下新建项命名为Command,选中Commond双击右边窗口的(默认)选项,将数值数据填入D:\cpy\WorkSpace\Install\gvim_8.1.1006_x64\Vim\vim81\gvim.exe "%1",这里启动路径指向exe,%1意思是当前文件的路径(也就是你鼠标选中的文件的全路径(包含文件名)),启动时1%表示的路径将传入gvim.exe因此也就启动并打开了被选中文件,并且GVim也将处于该文件所处的文件夹路径下,你的NerdTree将聪明的来到该路径下显示其他的文件和文件夹。
      [外链图片转存失败(img-o6MYVhA8-1564202796440)(.\png\文件鼠标右键.png "文件鼠标右键")]

    • 对文件夹鼠标右键
        以上方法仅对问价鼠标右键有用,对文件夹方法类似。注册表找到Directory -> shell,在shell下新建项GVim,对其新建字符串值命名为Icon,双击右边的新添加的Icon在数值数据里填入D:\cpy\WorkSpace\Install\gvim_8.1.1006_x64\Vim\vim81\gvim.exe,0,对刚才新建的GVim新建项命名为Command,双击右边窗口的(默认)在数值数据里填入D:\cpy\WorkSpace\Install\gvim_8.1.1006_x64\Vim\vim81\gvim.exe --cmd "cd "%v"",这里--cmdcd是GVim所支持的指令,具体在vim帮助文档staring.txt中可以查到。%v表示所选文件夹的路径。在GVim启动时会传入这些指令,让其执行cmd指令及cd到所选文件夹路径内。
        这里讲以下遇到的坑,如果你看过文档就会发现里面还有个类似的指令-c/+,如果用这个指令当路径含中文时时打不开的,貌似乱码了。
      [外链图片转存失败(img-Uca5RbpZ-1564202796440)(.\png\文件夹鼠标右键.png "文件夹鼠标右键")]

    • 对桌面或文件夹空白处鼠标右键
        Directory -> Background -> shell下新建项GVim,对其新建字符串值命名为Icon,双击右边的新添加的Icon,在数值数据中填入D:\cpy\WorkSpace\Install\gvim_8.1.1006_x64\Vim\vim81\gvim.exe,0,对新建的GVim新建项命名为Command,双击右边的(默认)在数值数据里填入D:\cpy\WorkSpace\Install\gvim_8.1.1006_x64\Vim\vim81\gvim.exe --cmd "cd "%v"",和上面一样的就不啰嗦了。
      [外链图片转存失败(img-q6IvI7mg-1564202796441)(.\png\空白鼠标右键.png "空白鼠标右键")]

      搞完了,去试试效果吧。呼呼,终于可以休息了。

这篇关于GVim管理”工程“?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/587857

相关文章

MyBatisX逆向工程的实现示例

《MyBatisX逆向工程的实现示例》本文主要介绍了MyBatisX逆向工程的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录逆向工程准备好数据库、表安装MyBATisX插件项目连接数据库引入依赖pom.XML生成实体类、

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构