답변:
당신은 눌러 Ctrl- Alt- e의 readline 기능을 수행하기 위해 shell-expand-line
별칭, 역사, 단어 확장을 할 것입니다. 일부 키보드 Meta는 그렇지 않습니다 Alt. 당신은 Esc다음 을 눌러야 할 수도 있습니다 Ctrl-e
기능 alias-expand-line
과는 history-and-alias-expand-line
기본적으로 바인딩되지 않습니다,하지만 당신은 당신에 다음과 같은 라인을 추가하여 바인딩 할 수 있습니다 ~/.inputrc
파일을.
"\e\C-l": alias-expand-line
만들 것이다 Ctrl- Alt- l(소문자 "엘")가 수행 에만 별칭 확장을.
"\C-i": "\e\C-l\e\e"
모두 수행하는 매크로 생성 alias-expand-line
및 complete
. 위의 답변에서 나온 바인딩과 Esc-Esc의 기본 바인딩은 그대로 유지됩니다. 기본 완료를 원한다면 여전히 Esc-Esc를 수행 할 수 있습니다.
ESC C-e
Bash에서는 C-x a
작동 하지만 Zsh 에서는 작동합니다. OS X에서도 테스트되었습니다.
Control-x: history-and-alias-expand-line
.
이것은 실제로 시도하려는 작업을 수행하는 훨씬 간단한 방법 일 수 있습니다 ( bash
version> = 4.2.29).
shopt -s direxpand
shopt -s expand_aliases
shopt
의 man
페이지 : https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
alias ll='ls -l
이 주어지면 쉘은 'll'을 존재하지 않는 명령 / 함수 'll'로 해석합니다.
작동하지 않습니다. 그러나 나는 당신이하고 싶은 일을하기 위해 이와 같은 것을 추측 / 호핑하고 있습니다. 자체 완성 스크립트를 사용해야합니다. 이것은 당신이 하나를 만드는 방법입니다 :
_ll()
{
COMPREPLY=(ls -l)
#The next line does not work. I just hope there were a way to replace that word
COMP_WORDS[COMP_CWORD-1]="ls -l"
}
complete -F _ll ll
이제 전체 bash_completion 파일 ( http://caliban.org/bash )을 소싱하고 위에서 언급 한 스크립트를 bash_completion.d 디렉토리 안에있는 파일에 넣고 URL에서 가져온 스크립트를 가져 오십시오. 작동하지 않는 경우 알려주십시오.
감사.
zsh를 설치하여 간단한 솔루션을 찾는 사람들 에게는 globalias 가 친구가 될 수 있습니다.
모든 glob 표현식, 부속 명령 및 별명 (전역 포함)을 확장합니다.
# .zsrc:
alias S="sudo systemctl"
$ S<space>
# expands to:
$ sudo systemctl
설치하려면 "globalias"를 .zshrc 플러그인 목록에 추가하십시오.
plugins=(... globalias)
그런 다음을 눌러
SPACE
작성한 명령의 확장을 트리거하십시오.명령 행을 확장하지 않고 공백 만 삽입하려면을 누르십시오.
CTRL+SPACE