스크립트에서 vim 명령 실행


0

그래서 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 상자 사이에서 메모장 + +로 편집중인 파일을 전송해야합니다.

linux / vim으로 가져올 때 형식이 약간 떨어져서 vim 파일에 명시 적으로 선언해야합니다. :source ~/.vimrc

파일을 열 때 스크립트가 나를 위해 이것을 실행하고 싶지만 어떻게 해야하는지 잘 모르겠습니다.

그렇다면 외부 프로그램을 사용하여 vim 명령을 vim에 어떻게 전달할 수 있습니까?

편집 : 위의 스크립트는 다음과 같은 형식의 문자열 목록 (리터럴 목록이 아니라 여전히 큰 문자열)을 생성합니다.

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

파일을 연 후 임의의 vim 명령을 실행하는 방법에 대답했지만 실제로는 파일 ~/.vimrc이 자동으로 소싱되어야합니다. 출처가 확실하지 않습니까?
Dmitry Frank

내가 확신하는 것은 : source ~ / .vimrc를 입력하면 내 문제가 해결되고 간단한 "gg = G"는 그렇지 않습니다.
Luke

답변:


1

-c다음과 같이 첫 번째 파일을 읽은 후 명령을 실행하도록 vim에 옵션을 제공 할 수 있습니다 . (스크립트에서 수정 된 행)

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

그것에 대해 읽으십시오 :

:help -c
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.