Midnight Commander - Seleção Múltipla

4
No MC eu posso copiar o nome do arquivo atual da lista de arquivos para o console pressionando Ctrl pressionando

Suponha que eu queira vários arquivos para copiar para o console. Exemplo: deseja criar *.zip com vários arquivos:

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

Eu posso selecionar vários arquivos com Insert (ou equiv. Ctrl + t ). Eu quero um atalho para usar depois que todos os nomes de arquivos selecionados para ir direto para o console. Algo como Ctrl + Enter .

Quais são as maneiras de fazer isso?

    
por Andrey Bzikadze 16.05.2015 / 19:53

2 respostas

3

Se você pressionar Ctrl + x t , ele irá colar os nomes de todos os arquivos que você marcou com Ctrl + t ou Insira na linha de comando.

    
por 15.02.2016 / 05:30
1

Uma solução integrada similar está disponível no menu do usuário F2 . Ele é chamado de "Faça algo nos arquivos marcados" e executa o comando fornecido nos arquivos, um a um.

Novos comandos podem ser adicionados a este menu. É uma solução um pouco complicada, mas funcionou para mim. (Suporte subshell é necessário.)

O arquivo de configuração do menu do usuário geralmente está localizado em:

/etc/mc/mc.menu

Minha solução é baseada em "Fazer algo nos arquivos marcados". Eu copiei suas linhas e modifiquei assim:

+ 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

Primeira linha significa que ela deve ser mostrada apenas se vários arquivos forem selecionados. A segunda linha contém um título e um atalho dentro do menu do usuário ( p ). Depois disso, vem um script de shell que adiciona nomes de arquivos selecionados ao seu histórico.

Adicione essas linhas a mc.menu e esteja ciente da tabulação. Primeira e segunda linha não tem tabulação, e o script é tabulado com TABs. Caso contrário, mc não seria capaz de analisá-lo.

Depois disso, você deve selecionar alguns arquivos e pressionar F2 . Pressione o recém-adicionado "Colocar arquivos selecionados para o histórico". Agora eles são adicionados ao histórico, mas devem ser relidos para serem usados. Pressione Ctrl + O , e você deve digitar history -r na linha de comando. Finalmente, você encontrará os nomes dos arquivos selecionados pressionando a tecla UP .

Uma solução alternativa também pode ser usada. Talvez seja mais fácil simplesmente imprimir a string no terminal, e depois disso você pode copiá-la e colá-la. O script a seguir implementa isso:

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