때로는 를 사용할 때 약간 다른 이름을 입력해야 하는 경우도 있습니다 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. 여기에서 단어 스타일(단어 전용 alnums)을 사용할 수 있습니다. ( 단어 위젯이 bash
어떻게 사용되는지에 대한 참조입니다.)bash
이것 말고도Ctrl+W처럼 Alt+B... Alt+D고려단어).
답변4
@muru가 제안한 것과 유사합니다 - !#$<TAB>
. 하지만 .zshrc에 다음과 같은 바인딩도 만들었습니다.
bindkey -s "^[," "!#\$^I"
그런 식으로 쉼표를 누른 다음 점을 누르면 이전 명령의 마지막 인수를 얻을 수 있는 Esc
것과 유사하게 됩니다 .Esc