4

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

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

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

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

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

2 ответа2

3

Если вы нажмете Ctrl+x t, он вставит имена всех файлов, отмеченных вами с помощью Ctrl+t или Insert, в командную строку.

1

Аналогичное встроенное решение доступно в пользовательском меню 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 в командную строку. Наконец, вы найдете выбранные имена файлов, нажав клавишу ВВЕРХ.

Альтернативное решение может быть использовано также. Возможно, проще просто напечатать строку в терминал, и после этого вы можете скопировать и вставить ее. Следующий скрипт реализует это:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .