从脚本执行 vim 命令

从脚本执行 vim 命令

因此,我创建了一个脚本,可以在单独的终端选项卡中打开 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

您可以给-cvim 选项,使其在读取第一个文件后执行命令,如下所示:(从您的脚本中修改的行)

my $e = "-e 'vim -c \"source /path/to/my/file\" " . $file . "'";

阅读内容:

:help -c

相关内容