터미널 실행 전에 .bashrc를 확장하는 별칭 명령

터미널 실행 전에 .bashrc를 확장하는 별칭 명령

나는 이것에 대해 꽤 새로운 것입니다.

alias gc = git commit -m

제 생각에는:

  • gc터미널 진입 후
  • 클릭 space하면 이렇게 됩니다git commit -m
  • 원하지 않을 경우 을 누르면 esc
    이전으로 변경됩니다gc
  • 이 가정을 수정 gca하고 다음을 누르십시오.space

당신은 이해했습니다.

해결책이 있나요?

추신: " 내가 쓰면 터미널에서 변환되어야 합니다 " shopt옵션을 시도했지만 그렇지 않습니다.shopt -s expand_aliases
gcgit commit -m

답변1

나는 당신이 bash쉘에 별칭을 가지고 있다고 가정합니다.

alias gc='git commit -m'

Enter실행 명령을 누르기 전에 명령줄에서 확장하려고 합니다.

Readline 함수를 호출하여 이를 수행할 수 있습니다 alias-expand-line. 가장 쉬운 방법은 키 조합을 "바인딩"하여 기능을 실행하는 것입니다. 아래에서는 Ctrl+X+를 임의로 선택하여 수행합니다 a(일반적으로 사용하는 다른 키 조합과 충돌하지 않아야 함).

bind '"\C-xa": alias-expand-line'

명령 을 실행한 후 bind다음과 같은 일부 명령 입력을 시작할 수 있습니다.

$ gc "my message"

행의 아무 곳에서나 +를 클릭하면 Ctrl+X별칭이 확장되어agc

$ git commit -m "my message"

bind명령은 일반적으로 파일에 배치되거나 ~/.bashrc대화형 셸에 맞게 사용자 정의하는 위치에 배치됩니다.

Readline 함수는 별칭을 "확장 해제"할 수 없지만 Ctrl+X+ Ctrl+U또는를 사용하여 Ctrl+_확장을 취소할 수 있습니다(또는 undoReadline 함수를 선택한 다른 키 조합에 바인딩).

관련 정보