假设我有一个文件夹,里面有很多.h和.cpp文件。我经常需要执行以下操作:
1.打开一个文件prefix_SomeReallyLongFileName.h
,
1.对它进行一些更改,
1.然后打开prefix_SomeReallyLongFileName.cpp
。
我可以使用:e <filename>
自动完成,但由于前缀是相同的许多文件,这变得不方便。
是否有快速打开与当前文件同名但扩展名不同的文件的方法?
其他人也遇到过这种情况吗?如果有,你更喜欢用什么方式来导航目录中的C++文件?谢谢。
7条答案
按热度按时间1szpjjfi1#
您可以使用
:r
(root)文件名修饰符,它会删除最后一个扩展名(查看:h filename-modifiers
以了解更多信息)其中
%
是当前文件名缩写:r
删除扩展名.cpp
只是将该字符串追加到末尾。这会有效地将当前文件的扩展名替换为另一个扩展名,然后使用较新的扩展名打开该文件。
更短的方法(由Peter Rincker提供),
相关文件
:h extension-removal
iszxjhcz2#
根据Vim wiki,有相当多的suggested ways。
我将从这篇文章中概述几个选项:
:e %<.c
或:e %<.h
。%<
表示不带扩展名的当前文件nnoremap <F4> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR>
。将此添加到您的~/.vimrc
。vwoqyblh3#
安装“unimpaged”,然后使用
]f
和[f
转到上一个文件和下一个文件。由于源文件和头文件除了后缀外都有相同的名称,所以它们是下一个文件和上一个文件。flseospp4#
这只是使用简单的(?!)vimscript,所以你可以把它放到你的
vimrc
中,现在它可以用于.c
文件,但是可以很容易地修改为.cpp
(显然),它甚至在内部if语句中有一些“错误处理”(这可能是毫无意义的),但如果有人需要它,嘿,它就在那里!没有它,它会短得多(例如,只要离开:e %<.h
),所以选择你想要的。然后在
vimrc
中进一步添加一些内容,大致如下:现在,当你在正常模式下,你按下逗号
,
(这是我们的<Leader>
按钮),然后h
和上面的函数被调用,你将在文件之间切换。1szpjjfi5#
加上我的两分钱;)对上述伟大的回答:
1.安装Exuberant Ctags
1.将以下代码放入
.vimrc
8tntrjer6#
https://github.com/ericcurtin/CurtineIncSw.vim是一个选项。
配置后,将递归搜索当前目录和源文件所在的目录,以查找要切换到的文件。
nhn9ugyo7#
您可以使用
:VH
从.cc文件切换到.h文件。