ミッドナイトコマンダー — 複数選択

ミッドナイトコマンダー — 複数選択

CtrlMC では、 + を押すと、ファイル リストから現在のファイルの名前をコンソールにコピーできますEnter

*.zip複数のファイルをコンソールにコピーしたいとします。例:複数のファイルで作成したい場合:

zip new_zip.zip a.txt b.txt c.txt 231202fkfo3f.txt 

Insert (または同等のCtrl+ ) を使用して複数のファイルを選択できます。その後、選択したすべてのファイル名をコンソールに直接移動するためのショートカットを 1 つ使用したいと思います。 +tのようなものです。CtrlEnter

それを実行する方法は何ですか?

答え1

Ctrl+を押すと、 +またはx tでタグ付けしたすべてのファイルの名前がコマンド ラインに貼り付けられます。CtrltInsert

答え2

同様の組み込みソリューションは、F2ユーザー メニューから利用できます。これは「タグ付けされたファイルに対して何かを実行する」と呼ばれ、指定されたコマンドをファイルごとに 1 つずつ実行します。

このメニューに新しいコマンドを追加できます。少しトリッキーな解決策ですが、私の場合はうまくいきました。(サブシェルのサポートが必要です。)

ユーザー メニュー構成ファイルは通常、次の場所にあります。

/etc/mc/mc.menu

私の解決策は、「タグ付けされたファイルに対して何かを行う」に基づいています。その行をコピーして、次のように変更しました。

+ t t
p       Put selected files to history
    set %t
    while [ -n "$1" ]; do
      STR="$STR \\\"$1\\\""
      shift
    done
    bash -ic "history -s $STR" > /dev/null

最初の行は、複数のファイルが選択された場合にのみ表示されることを意味します。 2 行目には、タイトルとユーザー メニュー内のショートカット ( p) が含まれます。その後に、選択したファイル名を履歴に追加するシェル スクリプトが続きます。

これらの行を追加しmc.menu、タブに注意してください。1 行目と 2 行目にはタブがなく、スクリプトはタブで表されています。そうしないと、mc解析できません。

その後、いくつかのファイルを選択し、 を押しますF2。新しく追加された「選択したファイルを履歴に追加する」を押します。これで履歴に追加されましたが、使用するには再度読み取る必要があります。Ctrl+を押してO、コマンド ラインに入力しますhistory -r。最後に、 キーを押すと、選択したファイル名が表示されますUP

代替ソリューションも使用できます。おそらく、文字列をターミナルに印刷し、その後コピーして貼り付ける方が簡単です。次のスクリプトはこれを実装します。

+ t t
p       Print selected files to subshell
    set %t
    while [ -n "$1" ]; do
      STR="$STR \"$1\""
      shift
    done
    echo "$STR"

関連情報