使用 cscope 在头文件和实现文件之间切换的 Vim 脚本

2024-04-23

我目前使用的是A.vim http://vim.wikia.com/wiki/Easily_switch_between_source_and_header_file在头文件和实现文件之间交换的插件。该脚本的局限性在于,它仅在两者位于同一文件夹中时才有效。

如果您的代码有 cscope 数据库,您可以通过执行以下操作轻松找到特定实现文件的标头:cscope find f ImplementationFileName.h.

您将如何编写此脚本以获取不带扩展名的当前文件名并搜索添加了 .h 后缀的该名称?


使用 A.vim 应该可以开箱即用。查看:帮助替代配置。具体来说,关于搜索路径的部分:

b) 搜索路径:在许多项目中 源文件的位置和 对应的头文件不是 始终相同的目录。这个插件 允许它使用的搜索路径 找到源文件和头文件 配置。搜索路径是 通过设置指定 g:alternateSearchPath 变量。这 默认设置如下,

g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc'

这表明对应的 文件将在以下位置搜索 ../源,../src。 ../包括和 ../inc 全部相对于当前 正在切换的文件。的价值 g:alternateSearchPath 变量是 只是一个逗号分隔的列表 前缀和目录。 “sfr:” 前缀表示路径是 相对于文件。其他前缀 是“wdr:”,这表明 目录是相对于当前目录的 工作目录和“abs:” 表示路径是绝对路径。如果不 假设指定了前缀“sfr:”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 cscope 在头文件和实现文件之间切换的 Vim 脚本 的相关文章

  • 在 VIM 中缩进文件夹中的所有文件

    我有一个包含数百个 TTL TeraTermLanguage 文件的文件夹 现在我想缩进所有这些文件 我已经创建了用于缩进的 teraterm vim 并使用 VIM 打开一个文件并执行 gg G 整个文件得到了正确的缩进 但是有什么方法可
  • VIM:在窗口顶部显示自定义参考栏

    我想设置一个 vim 环境来使用基本的 HTML 编辑 由其他人 为此 我想设置一个快速参考栏 显示在窗口顶部 例如
  • Foldmethod=同时标记和语法?

    同一文件是否可以根据标记和语法使用折叠 Since foldmethod一次只能设置为一个 我认为您真正可以做到这一点的唯一方法是使用 set foldmethod expr并与foldexpr 即使如此 我也不确定它是否能够完全按照您的要
  • vim 映射键不起作用

    我一直在尝试映射 ctrl 来在 vim 的插入模式下保存 它似乎永远不起作用 http vim wikia com wiki Map Ctrl S to save current or new files http vim wikia c
  • 在键盘快捷键上插入预定义文本

    我经常插入binding pry当我调试我的 ruby 文件时 当我使用 Vim 时 我希望将其自动化 以避免每次都重新输入 我怎样才能做到呢 我想要映射的确切顺序是 插入新行 Insert binding pry到新创建的行 返回正常模式
  • VIM 始终使用选项卡式页面

    我想要一个可以放入 vimrc 文件中的命令 该命令将使 vim 始终以选项卡式页面模式打开 而无需传递 p在命令行上 有这样的命令吗 如果没有 是否有更好的方法来做到这一点 目前 我正在使用 alias vi vim p 在我的 bash
  • C# 开发人员有什么理由应该学习 Emacs/Vim 吗?

    我在一家纯粹的 Microsoft 商店担任 C 开发人员 最近 我开始在工作之余的空闲时间使用 Gas 和 Linux 自学汇编 我喜欢摆弄 Linux 尽管我对它还很陌生 我一直听说我应该学习 VIM 或 Emacs 但事实是 我绝对不
  • 尝试安装已安装 vimballPlugin 的 vimball

    我想安装这个plugin http www vim org scripts download script php src id 16854 所以首先我提取 zip 的内容 然后执行以下操作 vim camelcasemotion vba
  • 在 Vim 分割窗口中打开函数定义?

    我知道你可以使用ctrl 在 Vim 中跳转到定义 但是有没有办法让它在分割窗口而不是当前缓冲区中打开 我知道我可以打开一个新的分割窗口 然后使用ctrl 但是有没有更快的方法呢
  • VIM:禁用光标/箭头键,但仅用于导航

    inoremap
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • 开发人员实际上是否使用 vim 在 Windows 操作系统上编写代码(Java)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 (Mac)Vim 中查看 ri 时摆脱 ANSI 转义字符

    我在 gvim 和 MacVim 中查看 ri 文档时遇到问题 在两者上都尝试过 一些 ri 文档包含在终端窗口中查看时看起来不错的文本装饰 但在 gvim MacVim 中查看时包含 ANSI 转义字符 例如 以下 ri 片段来自 ri
  • 如何在 Vim 中同时打开多个文件?

    有没有办法从 Vim 中打开目录中的所有文件 所以一个 command这实际上是说 打开下面的所有文件 some path进入缓冲区 理想情况下 递归地打开目录下的所有文件会很棒 您正在寻找的命令是 args 例如 args path to
  • 如何使用 vim 作为寻呼机设置彩色 git diff

    我无法配置 git 来遵循我的请求 使用 vim 作为差异分页器 在交互模式下添加文件时保留差异颜色 My gitconfig setup color ui auto diff false pager diff vim 通过此配置 交互模式
  • MacVim:跨窗口共享命名寄存器?

    我想跨 MacVim 窗口共享命名寄存器缓冲区 就像我在单个实例中跨缓冲区一样 换句话说 假设我标记了一个位置 m 然后去其他地方 我将一些文本拉入寄存器 a 从当前点到 m a m 然后我转到另一个窗口 不 我不是指同一窗口中的另一个分割
  • 在 Archlinux 上使用 Vim 作为 Haskell 的 IDE 目前情况如何?

    如果可行的话 我的目标是通过 YouCompleteMe 在 Vim 中完成 Haskell 的命令 在这方面 正如您在下面看到的 我还没有找到关于如何让它发挥作用的共识 相关评论的最新评论YouCompleteMe 上的问题 https
  • 这个格式错误的命令实际上发生了什么?

    问题在Vim 向后范围 可以交换 https stackoverflow com q 28224540 1427295原来是失踪了g在命令中 2 userid d 但是该命令仍然会运行 并将其转换为 userid firstname sur
  • 在 vim 中执行 python 命令并获取输出

    当 Vim 编译时支持 Python 时 您可以使用 Python 编写 Vim 脚本 python命令 我将如何使用它来执行命令并将结果插入光标下 例如 如果我要执行 python import os os listdir aDirect
  • vim e518:未知选项:

    我在 UNIX 系统上有一个文本文件 以下文本文件内容会产生问题 good ok line vi bad line ok ok line 所以如果我运行 vim test txt 我收到以下错误 test txt 3L 39C Error

随机推荐