因此,我创建了一个脚本,可以在单独的终端选项卡中打开 vim 中特定目录中的所有文件:
#!/usr/bin/perl
use v5.14;
my $wd = '/home/luke/Pokemon-Battle-Simulator';
chdir($wd);
opendir(DIR,$wd);
my @files = readdir(DIR);
my $cmd = 'gnome-terminal';
my $tab = ' --tab-with-profile=def';
for my $file(@files)
{
if (($file ne ".") and ($file ne ".."))
{
my $title = '--title=' . $file;
my $e = "-e 'vim " . $file . "'";
$cmd .= join(' ', $tab, $title, $e);
}
}
print $cmd;
`$cmd`
但是,我经常需要在我的 Linux 系统和 Windows 系统之间传输这些文件,在 Windows 系统中我使用 notepad++ 进行编辑。
当我将它们导入到 linux/vim 时,格式有点不对,所以我必须明确地向 vim 文件声明:source ~/.vimrc
我希望我的脚本在打开文件时为我执行此操作,但我不确定如何去做。
那么,如何使用外部程序将 vim 命令传递给 vim?
编辑:上面的脚本生成一个字符串列表(不是文字列表,它仍然是一个大字符串),其形式如下:
gnome-terminal ..... --tab-with-profile=def --title=BattleOps.py -e 'vim BattleOps.py'......
答案1
您可以给-c
vim 选项,使其在读取第一个文件后执行命令,如下所示:(从您的脚本中修改的行)
my $e = "-e 'vim -c \"source /path/to/my/file\" " . $file . "'";
阅读内容:
:help -c