사용자 정의된 터미널 세션을 여는 스크립트

사용자 정의된 터미널 세션을 여는 스크립트

제목이 제가 원하는 내용을 전달했는지는 확실하지 않지만 다음과 같습니다.

저는 많은 클래스가 포함된 Python 프로젝트를 진행하고 있습니다. 편집 작업에는 Terminal Vim을 사용합니다.

상상할 수 있듯이 10개의 서로 다른 터미널 탭을 열고 제목을 지정한 다음 올바른 파일을 모두 수동으로 열어야 하는 것은 고통스러운 일입니다.

vim을 사용하여 동일한 창 내의 다른 탭에 있는 디렉터리의 모든 파일을 여는 스크립트를 만들고 싶습니다. 스크립트에서 열려는 파일 이름으로 탭 제목을 지정하고 싶습니다.

나는 그놈 터미널을 사용합니다.

논리적으로는 어떻게 할 수 있는지 알고 있지만 필요한 명령을 찾을 수 없는 것 같습니다.

gnome-terminal 명령으로 내가 원하지 않는 일을 할 수 있을 것 같지만 제대로 작동하게 할 수는 없는 것 같습니다.

편집하다:vim -p *가 도움이 되지만 위에서 설명한 것과 정확히 일치하는 솔루션을 찾고 싶습니다. 각 파일을 자체 터미널 탭에 두면 파일을 개별적으로 열기/닫기/일시 중지할 수 있으며 일반적으로 더 편리합니다.

답변1

귀하의 질문을 올바르게 이해했다면 원하는 것은 -p 옵션입니다. vim -p *는 현재 디렉터리의 모든 파일을 동일한 창의 자체 탭에서 엽니다.

답변2

잠시 살펴본 후 간단한 Perl 스크립트를 사용하여 원하는 작업을 수행할 수 있었습니다.

같은 창에서 탭을 열 수 없어서 이전에 전화가 끊겼습니다. 이제 터미널 창의 새 인스턴스를 생성하기 위해 명령이 작성되었다는 것을 깨달았습니다.

그래서:

gnome-terminal --tab-with-profile=def 

내가 원하는 대로 새 탭이 열리지 않고 새 창이 열립니다(def는 내 프로필 이름입니다).

하지만:

gnome-terminal --tab-with-profile=def --tab-with-profile=def

하나의 창에 2개의 탭이 열립니다(단, 현재 창은 열리지 않습니다. 괜찮습니다).

제목을 지정하고 다음 명령을 실행할 수 있습니다.

gnome-terminal  --tab-with-profile=def --title="foo" -e "vim foobar.txt"

새 창(단일 탭)을 열고 vim에서 foobar.txt를 열고 탭 제목을 지정합니다.

이를 염두에 두고 다음 프로그램을 작성할 수 있었습니다.

workTime.txt:

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

답변3

'screen' 유닉스 도구를 살펴보고 싶을 수도 있습니다. 단일 연결(ssh, telnet 또는 로컬)을 통해 여러 터미널을 여는 터미널 "멀티플렉서"입니다. 새로운 연결을 통해 여러 화면에서 여러 셸이나 명령(예: vim, top 등)을 자동으로 열도록 구성할 수 있습니다. 또한 연결이 끊긴 후에도 세션을 보존할 수 있으므로 문서를 편집하는 중에 ISP가 몇 분 동안 중단된 경우 바로 편집 작업으로 돌아갈 수 있습니다.

ssh + 스크린 + emacs = 승리!

관련 정보