Midnight Commander - множественный выбор

1200
Andrey Bzikadze

В MC я могу скопировать имя текущего файла из списка файлов в консоль, нажав Ctrl+ Enter.

Предположим, я хочу скопировать несколько файлов в консоль. Пример: хотите создать *.zipс несколькими файлами:

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

Я могу выбрать несколько файлов с помощью Вставить (или эквивалент. Ctrl+ t). Я хочу использовать один ярлык после этого для всех выбранных имен файлов, чтобы перейти прямо на консоль. Что-то вроде Ctrl+ Enter.

Каковы способы сделать это?

4

2 ответа на вопрос

3
jursetto

If you press Ctrl+x t, it will paste the names of all the files you've tagged with Ctrl+t or Insert to the command line.

Это действительно здорово. Спасибо! Andrey Bzikadze 8 лет назад 0
1
szkj

Аналогичное встроенное решение доступно в F2меню пользователя. Он называется «Делать что-нибудь с помеченными файлами» и запускает данную команду для файлов один за другим.

Новые команды могут быть добавлены в это меню. Это немного сложное решение, но оно сработало для меня. (Поддержка Subshell необходима.)

Файл конфигурации пользовательского меню обычно находится по адресу:

/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 

Первая строка означает, что она должна отображаться, только если выбрано несколько файлов. Вторая строка содержит заголовок и ярлык внутри пользовательского меню ( p). После этого появляется скрипт оболочки, который добавляет выбранные имена файлов в вашу историю.

Добавьте эти строки mc.menuи будьте в курсе табуляции. Первая и вторая строки не имеют табуляции, а сценарий табулирован с помощью вкладок. В противном случае 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" 
Спасибо за ваш ответ. Извините за очень поздний ответ ... Andrey Bzikadze 8 лет назад 0