作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
我在我的 .vimrc
中获得了以下硬编码命令以正常工作:
nmap ,a :tag Foo.cpp<CR>
因此,如果我点击 ,a
,vim 将查看 ctags 缓存并从标签文件指定的位置打开文件 Foo.cpp
。
问题
我如何修改此命令,以便当我查看 Bar.hpp
时,它会查找 Bar.cpp
,如果我查看 Bar.cpp
,它会查找Bar.hpp
?
据我所知,有很多方法可以给这只猫蒙皮,但我更愿意以某种方式使用 :tag
命令,因为它快速 而且我已经在生成标签无论如何都要归档。
最佳答案
这似乎适用于我的简单案例:
function! OtherName()
if expand('%:e') == "cpp"
return substitute( expand('%:t'), "cpp", "hpp", "" )
elseif expand('%:e') == "hpp"
return substitute( expand('%:t'), "hpp", "cpp", "" )
endif
endfunction
nmap ,a :execute "tag" OtherName()<CR>
如果 hpp 或 cpp 实际出现在文件名中,可能会有些丑陋——也许我需要使用正则表达式来加强替代。此外,如果我们在非 cpp 或 hpp 文件中,事情可能会变得很糟糕。
也许有更多有经验的 vimscripter 可以提高这段代码的健壮性。
关于c++ - 如何使用 :tag command in vim to toggle between . hpp 和相应的 .cpp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20764610/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!