专栏首页恩蓝脚本VIM实现文件快速跳转插件详解

VIM实现文件快速跳转插件详解

前言

日常使用 VIM 的时候经常有跳转到特定目录下某个文件的需求:

  • 使用 vimwiki 记笔记时会默认把所有笔记保存在目录 ~/vimwiki 下, 当我们想查看某个笔记时就打开那个目录下的某个文件;
  • 我平时会写一些 shell 工具, 保存在 ~/bin 目录下, 就会有在这个目录下创建或者打开文件的需求;
  • 如果你用 ultisnip 之类的插件的话, 就需要经常编辑不同类型文件对应的 snippets 文件;

根据我个人的使用经验, 在特定目录下打开某个文件 的需求还是很多的, 于是便写了插件 FileJumper 来实现这个需求.

这个插件提供了下面这些功能:

  • 通过一行配置能快速定义和某个目录绑定的 command;
  • 通过执行 command filename 能快速打开对应目录下的某个文件, 能通过 tab 键补全文件名;
  • 能通过指定不同的 vim 命令以不同的模式打开文件, 如 command filename vnew 等;

下面就会介绍如何安装, 配置已经使用这个插件.

安装和配置

可以通过 vim-plug 进行安装:

Plug 'https://github.com/hiberabyss/FileJumper'

安装完成后通过配置变量 g:file_jumper_command 来定义不同的 command, 下面是插件默认的配置:

let g:file_jumper_command = {
   \ "Gbin": {'dir': expand("$HOME/bin"), 'extension': ''},
   \ "Gwiki": {'dir': g:myvimwikidir, 'extension': '.wiki', 'keymap': '<Leader>wg'},
   \ }
  • Gbin 之类的是命令名;
  • dir 表示和这个命令绑定的目录;
  • extension 表示对应目录下的文件的默认后缀名, 在打开文件时会被自动添加上去;
  • keymap 表示给这个命令映射一个快捷键;

如何使用

执行 Gbin pyserver 就会默认通过 tabnew ~/bin/pyserver 来打开对应的文件:

在上面的演示中, 我们只输入了 py 然后按 tab 键就可以自动补全文件名 pyserver.

我们也可以通过添加 vim 命令来决定文件的打开方式:

从上面的演示中可以看出在使用了 vnew 或者 e 之后, vim 打开文件的方式会和默认的不一样. 我们也可以使用 bot vnew 之类的复合命令.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux中查找工具的友好替代方案

    find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录...

    砸漏
  • 使用memory_profiler监测python代码运行时内存消耗方法

    前几天一直在寻找能够输出python函数运行时最大内存消耗的方式,看了一堆的博客和知乎,也尝试了很多方法,最后选择使用memory_profiler中的mpro...

    砸漏
  • jupyter note 实现将数据保存为word

    补充知识:jupyter notebook更改浏览器时候提示GenericBrowser is not difined

    砸漏
  • 05 Confluent_Kafka权威指南 第五章: kafka内部实现原理

    为了在生产环境中运行kafka或者编写使用它的应用程序,并不一定要理解kafka的内部原理。然而,理解kafka的工作原理,有助于故障排查,理解kafka的工作...

    冬天里的懒猫
  • linux分区

    实际上,很多时候我们只需要分两个区:`/`和交换分区,日常使用基本不会有任何影响,甚至于交换分区对于现在的电脑来说都不是必要的,我们完全可以只分配一个根分区。l...

    ianzhi
  • 种草Cypress和TestCafe,QA同学一定想了解的Web UI自动化测试工具

    Cypress和TestCafe这两个工具相比于Selenium都更加的轻量级,且在不同的方面有了改进,比如安装更简单,增加了内置等待机制,调试更加方便等。

    ThoughtWorks
  • 【漏洞通告】Linux Kernel 信息泄漏&权限提升漏洞(CVE-2020-8835)通告

    3月31日,选手Manfred Paul在Pwn2Own比赛上用于演示Linux内核权限提升的漏洞被CVE收录,漏洞编号为CVE-2020-8835。此漏洞由于...

    绿盟科技安全情报
  • vs2015:/utf-8选项解决UTF-8 without BOM 源码中文输出乱码问题

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • 只要你努力,就可以晋升?醒醒吧,想多了

    在近十年的管理经历中,无论在哪家公司,或者这家公司的企业文化是什么,我一直都很重视绩效面谈。因为我很明白,一次好的绩效面谈能让下属对你敞开心扉,并在一番推心置腹...

    吃草的罗汉
  • RedHat Linux服务器安全配置细节

    云豆贴心提醒,本文阅读时间8分钟 1.概述 Linux服务器版本:RedHat Linux AS 2.1 对于开放式的操作系统---Linux,系统的安全设...

    小小科

扫码关注云+社区

领取腾讯云代金券