bash 명령을 입력하면 세 번째 줄에 도달했습니다. 하지만 놓친 부분을 편집하기 위해 처음으로 돌아가려면 어떻게 해야 합니까?

bash 명령을 입력하면 세 번째 줄에 도달했습니다. 하지만 놓친 부분을 편집하기 위해 처음으로 돌아가려면 어떻게 해야 합니까?

명령을 입력하고 있는데 커서가 끝에 있습니다."고급 경고"

$ git commit -m "Nettoyage :
>     - Suppression de sources ou projets inutiles
>     - Corrections mineures sur les sources pour supprimer des warnings"

이제 글을 써야 한다는 것을 깨달을 때다.“네토야쥬(deuxième party)”내 커밋 메시지의 시작 부분에.

...하지만 명령의 마지막 줄에서 명령의 시작 부분으로 이동하여 첫 번째 줄을 편집하려면 어떻게 해야 합니까?

답변1

불행하게도 Bash의 명령 입력은 줄 지향적이며 여러 줄 명령을 입력할 때 이전 줄로 돌아갈 수 있는 방법이 없습니다.

그러나 지금까지 입력한 전체 명령을 사용하여 편집기를 시작하면 됩니다. 이렇게 하려면 Emacs 모드(기본값)에서 를 누르십시오. CtrlxCtrlevi 모드에서는 를 누르십시오 Escv. 그러면 지금까지 입력한 모든 내용이 포함된 편집기가 열리고 해결해야 할 문제가 해결됩니다.완전한 명령, 편집기를 종료하면 Bash가 편집된 명령을 실행합니다.

이 특별한 경우 git전체 커밋 메시지에 대해 편집기를 사용할 수 있습니다. 이 -m옵션을 생략하면 git편집기가 실행됩니다.

답변2

을 누르고 CtrlC를 누른 Up다음 명령을 다시 편집하고 를 누릅니다 Enter.

# git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings
>      - Autre chose^C

CtrlC줄 끝을 누르면 줄이 끊어지지만, Up키를 한 번만 누르면 다시 돌아옵니다.

# git commit -m "Nettoyage :
     - Suppression de sources ou projets inutiles
     - Corrections mineures sur les sources pour supprimer des warnings

내 커서는 "ings" 뒤에 위치합니다. 그런 다음 Left및 를 사용하여 세 줄의 텍스트 모두에서 앞뒤로 탐색하거나 Right명령의 시작 부분으로 이동하거나 명령의 끝으로 이동하는 등의 작업을 수행할 수 있습니다 .HomeCtrlAEndCtrlE

내가 아는 한, 나는 멋진 readline 설정을 사용하지 않습니다. FreeBSD 13.0의 Bash 5.1.16에서 표준 동작인 것 같습니다.

답변3

넌 몰라. 아니면 내가 아는 한 다른 사람이 답변을 게시하여 내가 틀렸다는 것을 증명할 수 있기를 바랍니다. 지금까지 내가 찾은 가장 좋은 점은 Enter새 줄로 이동을 클릭한 다음(이것이 없으면 내 시스템에서는 이후 단계에서 전체 명령을 다시 받을 수 없고 이전 섹션에 입력된 마지막 줄 바꿈만 표시됨) Ctrl+ D명령을 중단하는 것 입니다. :

$ git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings

이제 다음을 누르세요 Enter.

$ git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings
>

지금 Ctrl+ D:

$ git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings
> bash: unexpected EOF while looking for matching `"'

이제 (위쪽)을 눌러 이전 명령으로 돌아갈 수 있습니다.지금예상대로 편집할 수 있습니다.

$ git commit -m "Nettoyage :
     - Suppression de sources ou projets inutiles
     - Corrections mineures sur les sources pour supprimer des warnings

완벽하지는 않지만 해결 방법으로 작동할 수 있습니다.

답변4

여러 줄 문자열을 문자 그대로 입력하는 대신 Bash를 사용할 수 있습니다.백슬래시 이스케이프 확장 문자열, 좋다

git commit -m $'Nettoyage :\n     - Suppression de sources ou projets inutiles\n     - Corrections mineures sur les sources pour supprimer des warnings'

이를 통해 여러 줄의 문자열을 한 줄로 병합하고 이를 사용하여 \n개행을 나타낼 수 있습니다. 생성된 명령에는 문자열에 실제 개행 문자가 포함됩니다.

관련 정보