Итак, я создал скрипт, который открывает все файлы в определенном каталоге в 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 box и windows windows, где я редактирую с помощью notepad++.

Когда я импортирую их в linux/vim Форматирование немного отключено, поэтому я должен явно объявить файл vim :source ~/.vimrc

Я хотел бы, чтобы мой скрипт выполнял это для меня при открытии файлов, но я не уверен, как это сделать.

Итак, как я могу передать команду vim в vim с помощью внешней программы?

РЕДАКТИРОВАТЬ: Сценарий выше генерирует список строк (не буквальный список, это все еще одна большая строка) в форме:

gnome-terminal .....  --tab-with-profile=def --title=BattleOps.py -e 'vim BattleOps.py'......

1 ответ1

1

Вы можете задать параметр -c для vim для выполнения команд после прочтения первого файла, например: (измененная строка из вашего скрипта)

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

Читайте об этом:

:help -c

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .