카테고리 없음

Vi mode in Bash

필유아사 2022. 11. 24. 17:23

linux나 unix 등에서 명령중에서 vi mode를 사용하기 위한 설정입니다.

$ set -o vi

 

 

Bash 셸은 GNU Readline을 사용하기 때문에 .bashrc 및 .inputrc에서 옵션을 설정하여 기본 Emacs와 같은 키 바인딩을 원하는지 (예: Ctrl+W  단어 지우기) 또는 vi 사용자에게 친숙한 모달 인터페이스를 사용하는 바인딩입니다.

Bash 및 MySQL 명령줄과 같은 GNU Readline을 사용하는 다른 도구에서 vi 모드를 사용하려면 아래 내용을 .inputrc 파일에 설정한다.

set editing-mode vi

 

Bash에서만 이 모드를 사용하려는 경우  .bashrc에서 다음을 설정한다.

set -o vi

 

다음을 통해 올바르게 적용되었는지 확인할 수 있습니다. 텍스트에 대해 고정 가능한 작업 세트에 대해 현재 사용 가능한 바인딩 목록이 표시됩니다.

$ bind -P

편집 모드의 다른 가능한 값은 emacs입니다. 두 옵션 모두 위의 bind -P 출력에서 ​​설정을 변경합니다.

이렇게 하면 삽입 모드에서 명령줄을 열 수 있지만 Escape 또는 Ctrl+[를 누르면 Vi의 일반 모드 에뮬레이션으로 들어갑니다. Enter는 두 모드 중 하나에 있는 동안 현재 상태에서 명령을 실행합니다. 이 모드에서 가장 많이 사용되는 바인딩은 라인의 위치로 이동하기 위한 키입니다.

 

  • ^ — Move to start of line
  • $ — Move to end of line
  • b — Move back a word
  • w — Move forward a word
  • e — Move to the end of the next word

 

deleting, yanking 및 pasting도 모두 작동합니다. 또한 일반 모드에서 k 및 j를 사용하면 Emacs 모드에서 Ctrl+P 및 Ctrl+N과 같은 방식으로 기록을 반복할 수 있습니다. 


명령줄에서 vi mode를 해제하려면 아래 명령어를 수행합니다.

set -o emacs