때때로 우리는 그것을 사용할 때 약간 다른 이름을 입력해야 합니다 mv/cp/convert
. 예를 들어,
convert IMG-long-number.jpg IMG-long-number.png
IMG-long-number.png를 입력하기 전에 IMG-long-number.jpg를 어떻게 반복하여 약간만 조정하면 됩니까?
이는 다음과 유사합니다.bash 콘솔에서 현재 입력된 매개변수를 어떻게 반복합니까?하지만 zsh/zle의 경우.
답변1
!#$<Tab>
나를 위해 작동합니다. 반면:
$ echo a
입력 !#$
하고 누르면 로 Tab확장됩니다 . 탭 완성에는 다음 명령을 사용하려고 하면 추가 옵션도 나열됩니다 .!#$
a
:
$ 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
답변2
기억해야 할 또 다른 사항: 그렇지 않습니다.
사용 후 받기
IMG-long-number.jpg 변환그냥 편집해 보세요
IMG-long-number.{jpg,png} 변환
답변3
Ctrl+Alt+_이전 단어( copy-prev-word
위젯) 를 복사하는 데 사용합니다 . 복사한 후 Backspace복사본 확장자 편집을 사용할 수 있습니다 .
아니면 Ctrl+W완전히 삭제하는 데 사용하세요. 기본적으로 Ctrl+W전체 단어(alnums+$WORDCHARS로 정의됨)가 제거되지만 필요한 경우 위젯을 사용하여 동작을 변경할 수 있습니다 select-word-style
.
존재하다 ~/.zshrc
:
autoload select-word-style
zle -N select-word-style
bindkey '\eW' select-word-style
그런 다음 다른 것을 선택할 수 있습니다.폰트그리고 Alt+Shift+W. 여기에서 bash
단어 스타일(단어 alnum만)을 사용할 수 있습니다( bash
Word 위젯 사용 방법 참조).밖의Ctrl+WAlt+B, Alt+D...고려해 보세요성격).
답변4
@muru가 제안한 것과 유사합니다 - !#$<TAB>
. 하지만 .zshrc에도 다음 바인딩을 만들었습니다.
bindkey -s "^[," "!#\$^I"
이렇게 하면 쉼표를 누른 후 점이 이전 명령의 마지막 인수를 제공하는 Esc
방식과 유사하게 이 작업이 수행됩니다 .Esc