저는 명령줄에서 emacs를 편집기(별칭)로 사용하고 있으며 최근 emacs에서 연 파일을 열 alias em='emacs -nw'
수 있는 별칭을 만들고 싶습니다 .!em
,,를 시도했지만 alias e='!em'
지금까지 작동하는 항목을 찾을 수 없습니다 alias e='${!}em'
.alias e='${!em}'
별칭에 대한 관련 게시물을 찾았습니다 !!
.
답변1
별칭 확장 후에는 히스토리 확장이 수행되지 않는다고 생각하므로 다음을 history -p
사용하여 명시적으로 수행해야 합니다.
alias e='eval "$(history -p !em)"'
명령 대체 후에 별칭이 확장되지 않기 때문에 이 경우에는 작동하지 않습니다. 하지만 함수는 작동하므로 다음 두 가지가 필요합니다.
em() { emacs -nw "$@"; }
e() { eval "$(history -p !em)"; }
후자는 별칭일 수 있습니다.
답변2
설명한 대로 em에 대한 별칭을 설정한 경우 !em에 대한 추가 별칭을 만들려고 시도해서는 안 됩니다. ! 쉘 히스토리 메커니즘을 호출하므로 "!em" 명령은 가장 최근에 사용된 별명을 반복합니다(그러나 이것은 emacs가 실제로 편집한 마지막 파일이 아닐 수도 있습니다.)