File::Find
的Perl 5模块。我已经编写了一个用Perl 5处理命令行的包装脚本(见下文),但我希望能够像这样说:tabe File::Find
,并真正执行:tabe /home/cowens/apps/perlbrew/perls/perl-5.14.0/lib/5.14.0/File/Find.pm
。我的当前计划是以某种方式使用
autocmd BufNewFile
和/或autocmd BufPreRead
,但我无法弄清如何切换文件名。#!/usr/bin/perl
use strict;
use warnings;
my @files = @ARGV;
for my $file (@files) {
next if -f $file; #skip files that really exist
#convert from module name to module file
(my $module = $file) =~ s{::}{/}g;
$module .= ".pm";
#look for module in the include paths
for my $dir (@INC) {
my $candidate = "$dir/$module";
if (-f $candidate) {
$file = $candidate;
last;
}
}
}
#replace this script with vim
exec "vim", "-p", @files;
ctags
吗? - searleactags
,我可以在 Vim 中输入:help ctags
以了解更多信息吗? - Chas. Owensctags
是一种根据当前缓冲区中的文本执行命令的方法。它似乎需要一个索引,每次添加文件时都必须进行修改(将字符串映射到命令)。这不是我想要的。我希望能够编辑任何文件,而不仅仅是当前文件中包含的文件。ctags
的一个问题是,当我输入:tabe Foo
时得到的文件可能会因我的环境而改变。这可能可以通过足够复杂的命令来解决,但是为什么我不直接使用那个命令呢? - Chas. Owens