Executar comandos vim de um script

0

Então, eu criei um script que abre todos os arquivos em um diretório específico no vim em guias de terminal separadas para mim:

#!/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'

No entanto, estou freqüentemente precisando transferir esses arquivos entre minha caixa linux e uma caixa do windows, onde estou editando com o notepad ++.

Quando eu os importo para o linux / vim A formatação está um pouco errada, então eu tenho que declarar explicitamente para o arquivo vim :source ~/.vimrc

Eu gostaria que meu script executasse isso para mim ao abrir os arquivos, mas não tenho certeza de como fazer isso.

Então, como eu posso passar um comando vim para o vim usando um programa externo?

EDITAR: O script acima gera uma lista de strings (não uma lista literal, ainda é uma grande string) do formulário:

gnome-terminal .....  --tab-with-profile=def --title=BattleOps.py -e 'vim BattleOps.py'......
    
por Luke 23.08.2014 / 16:11

1 resposta

1

Você pode dar a opção -c ao vim para executar comandos depois que o primeiro arquivo for lido, assim: (linha modificada do seu script)

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

Leia sobre isso:

:help -c
    
por 23.08.2014 / 18:49