カスタマイズされたターミナルセッションを開くスクリプト

カスタマイズされたターミナルセッションを開くスクリプト

タイトルで私がやりたいことが伝わったか分かりませんが、これが私の言いたいことです。

私は多くのクラスを含む Python プロジェクトに取り組んでいます。編集にはターミナル Vim を使用します。

ご想像のとおり、10 個の異なるターミナル タブを開いてタイトルを付け、それらすべてで正しいファイルを手動で開くのは面倒です。

vim を使用して、ディレクトリ内のすべてのファイルを同じウィンドウ内の異なるタブで開くスクリプトを作成したいと思います。スクリプトで、開いているファイルの名前をタブのタイトルにしたいと思います。

私はgnome-terminalを使用します。

論理的にはどうすればいいかは分かっているのですが、必要なコマンドが見つからないようです。

gnome-terminal コマンドを使用すると、やりたいことができるように思えますが、うまく動作しないようです。

編集:vim -p * は便利ですが、上で説明したとおりのことを実行するソリューションを見つけたいと思います。各ファイルを独自の TERMINAL タブに配置すると、ファイルを個別に開く/閉じる/一時停止することができ、一般的に利便性が向上します。

答え1

質問を正しく理解していれば、必要なのは -p オプションです。vim -p * は、現在のディレクトリ内のすべてのファイルを同じウィンドウ内の独自のタブで開きます。

答え2

少し調べてみたところ、シンプルな Perl スクリプトで目的のことが実現できました。

以前は、同じウィンドウでタブを開くことができず、困っていました。コマンドは、ターミナル ウィンドウの新しいインスタンスを作成するために構築されていることがわかりました。

それで:

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

希望どおりに新しいタブは開きませんが、新しいウィンドウは開きます (def は私のプロフィールの名前です)

しかし:

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

1 つのウィンドウで 2 つのタブを開きます (現在のウィンドウは開きませんが、問題ありません)

タイトルを付けて、以下のコマンドを実行できます。

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

新しいウィンドウ(単一タブ)を開き、vimでfoobar.txtを開いてタブにタイトルを付けます

これを念頭に置いて、次のプログラムを書くことができました。

作業時間.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

Unix ツール「screen」を試してみるといいかもしれません。これは、単一の接続 (ssh、telnet、またはローカル) で複数のターミナルを開くターミナル「マルチプレクサ」です。新しい接続で、異なる画面で複数のシェルまたはコマンド (vim、top など) を自動的に開くように設定できます。切断後もセッションを維持できるため、ドキュメントの編集中に ISP が数分間切断された場合でも、すぐに編集に戻ることができます。

ssh + screen + emacs = 勝利!

関連情報