Às vezes, só precisamos digitar um nome ligeiramente diferente ao usar mv/cp/convert
. Por exemplo,
convert IMG-long-number.jpg IMG-long-number.png
Como posso repetir IMG-long-number.jpg antes de digitar IMG-long-number.png, então só preciso fazer pequenos ajustes?
Isto é semelhante aComo repetir o parâmetro atualmente digitado no console bash?mas para zsh/zle.
Responder1
!#$<Tab>
funciona para mim. Dado:
$ echo a
Digitar !#$
e pressionar Tabexpande !#$
para a
. A conclusão da guia também lista outras opções se você tentar uma operação com :
:
$ echo a !#$:
& -- repeat substitution
A -- absolute path resolving symbolic links
Q -- strip quotes
a -- absolute path
c -- PATH search for command
e -- leave only extension
g -- globally apply s or &
h -- head - strip trailing path element
l -- lower case all words
q -- quote to escape further substitutions
r -- root - strip suffix
s -- substitute string
t -- tail - strip directories
u -- upper case all words
Responder2
Uma alternativa a ter em mente é esta: você não.
Depois de usar a conclusão para obter
converter IMG-número longo.jpgsimplesmente edite isso em
converter número longo IMG.{jpg,png}
Responder3
Eu usaria Ctrl+Alt+_isso para copiar a palavra anterior ( copy-prev-word
widget). Uma vez copiado, você pode usar Backspacepara editar a extensão da cópia.
Ou use Ctrl+Wpara excluí-lo como um todo. Por padrão, Ctrl+Wexclui palavras inteiras (definidas como alnums+$WORDCHARS), mas você pode alterar o comportamento sob demanda com o select-word-style
widget.
Em ~/.zshrc
:
autoload select-word-style
zle -N select-word-style
bindkey '\eW' select-word-style
Em seguida, você pode selecionar um diferenteestilo de palavracom Alt+Shift+W. Você pode usar a bash
palavra estilo (somente palavras alnums) aqui (a referência é como bash
os widgets de palavrasoutro que não sejaCtrl+Wtipo Alt+B, Alt+D... considerepalavras).
Responder4
Semelhante ao que @muru sugeriu - !#$<TAB>
. Mas também fiz ligações como esta no meu .zshrc :
bindkey -s "^[," "!#\$^I"
Dessa forma, pressionar Esc
a vírgula fará isso por você, semelhante a quando Esc
o ponto fornecerá o último argumento do comando anterior.