No MC posso copiar o nome do arquivo atual da lista de arquivos para o console pressionando Ctrl+ Enter.
Suponha que eu queira copiar vários arquivos para o console. Exemplo: quero criar *.zip
com vários arquivos:
zip new_zip.zip a.txt b.txt c.txt 231202fkfo3f.txt
Posso selecionar vários arquivos com Insert (ou equivalente Ctrl+ t). Quero que um atalho seja usado depois disso para que todos os nomes de arquivos selecionados vão direto para o console. Algo como Ctrl+ Enter.
Quais são as maneiras de fazer isso?
Responder1
Se você pressionar Ctrl+ x t, os nomes de todos os arquivos marcados com Ctrl+ tserão colados Insertna linha de comando.
Responder2
Uma solução integrada semelhante está disponível no F2menu do usuário. É chamado de "Faça algo nos arquivos marcados" e executa o comando fornecido nos arquivos, um por um.
Novos comandos podem ser adicionados a este menu. É uma solução um pouco complicada, mas funcionou para mim. (O 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 "Faça algo nos arquivos marcados". 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
A 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 mc.menu
e esteja ciente da tabulação. A primeira e a segunda linha não possuem 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 no histórico". Agora eles foram adicionados ao histórico, mas ele deve ser relido para ser utilizado. Pressione Ctrl+ Oe você deve digitar history -r
na linha de comando. Finalmente você encontrará os nomes dos arquivos selecionados pressionando UPa tecla.
Uma solução alternativa também poderia ser usada. Talvez seja mais fácil simplesmente imprimir a string no terminal e depois 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"