Wykonuj polecenia vim ze skryptu

0

Więc stworzyłem skrypt, który otwiera wszystkie pliki w określonym katalogu w vimie na osobnych kartach terminala:

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

Często jednak muszę przenosić te pliki między moim Linux-em a oknem Windows, w którym edytuję za pomocą notatnika ++.

Kiedy importuję je do linux / vim Formatowanie jest trochę wyłączone, więc muszę jawnie zadeklarować plik vim :source ~/.vimrc

Chciałbym, aby mój skrypt wykonał to dla mnie podczas otwierania plików, ale nie jestem pewien, jak sobie z tym poradzić.

Jak mogę przekazać polecenie vim do vima przy użyciu zewnętrznego programu?

EDYCJA: Powyższy skrypt generuje listę ciągów znaków (nie jest to dosłowna lista, to wciąż jeden duży ciąg) o postaci:

gnome-terminal .....  --tab-with-profile=def --title=BattleOps.py -e 'vim BattleOps.py'......
Łukasz
źródło
Odpowiedziałem, jak wykonać dowolne polecenie vim po otwarciu pliku, ale tak naprawdę plik ~/.vimrcpowinien zostać pobrany automatycznie. Jesteś pewien, że nie jest to źródło?
Dmitry Frank
wszystko, co jestem pewien, to to, że wpisanie: source ~ / .vimrc rozwiązuje mój problem i że proste „gg = G” nie
Luke

Odpowiedzi:

1

Możesz dać -cvimowi opcję wykonywania poleceń po odczytaniu pierwszego pliku, w następujący sposób: (zmodyfikowana linia ze skryptu)

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

Poczytaj o tym:

:help -c
Dmitry Frank
źródło