Bash의 Vi 명령 줄 편집에서 명령 모드와 삽입 모드를 구별하는 방법
사용 모드 (명령 또는 편집)에 대한 팁을 제공하지 않기 때문에 vi 모드의 bash가 삽입 모드로 전환 될 때 항상 약간 혼란 스럽습니다. 모드를 구별하는 방법이 있습니까? 커서 색상의 자동 변경 또는 이와 유사한 것일 수 있습니까?
/ etc / inputrc (또는 ~ / .inputrc)에 다음을 추가하십시오.
set show-mode-in-prompt on
이것은 삽입 모드에서 프롬프트 앞에 + 를, bash 4.3의 명령 모드에서 :
편집 : bash 4.4의 최신 버전에서는 기본적으로 "(ins)"또는 "(cmd)"접두사가 붙은 프롬프트가 대신 표시됩니다. 하지만 다음과 같이 변경할 수 있습니다.
set vi-ins-mode-string "+"
set vi-cmd-mode-string ":"
또한 '\ e [1; 31m'과 같은 색상 코드를 사용할 수 있지만 '\ 1'및 '\ 2'로 묶어 읽기 라인을 유지합니다.
set vi-cmd-mode-string "\1\e[1;31m\2:\1\e[0m\2"
@Isaac Hanson의 답변을 바탕으로 다음을 설정하여 모드를 반영하도록 커서 스타일을 설정할 수 있습니다 (VIM에서와 마찬가지로) .inputrc
:
set editing-mode vi
set show-mode-in-prompt on
set vi-ins-mode-string \1\e[6 q\2
set vi-cmd-mode-string \1\e[2 q\2
# optionally:
# switch to block cursor before executing a command
set keymap vi-insert
RETURN: "\e\n"
그러면 삽입 모드에서는 빔 커서가, 일반 모드에서는 블록 커서가 제공됩니다.
기타 옵션 (뒤의 숫자 대체 \e[
) :
Ps = 0 -> blinking block.
Ps = 1 -> blinking block (default).
Ps = 2 -> steady block.
Ps = 3 -> blinking underline.
Ps = 4 -> steady underline.
Ps = 5 -> blinking bar (xterm).
Ps = 6 -> steady bar (xterm).
터미널에서 DECSCURSR (예 : xterm, urxvt, iTerm2)을 지원해야합니다. TMUX는 또한이를 지원합니다 ( TERM=xterm-256color
tmux 외부에서 설정 한 경우 ).
korn 셸에서 수년간 vi 모드를 사용한 후, 기본적으로 ESC
명령을 입력하기 전에 몇 번만 탭한 ESC
다음 i
입력을 시작 하도록 스스로 훈련했습니다 .
기본 전제는를 누르면 현재 ESC
어떤 모드에 있는지 정확히 알 수 있다는 것입니다.
'IT이야기' 카테고리의 다른 글
Java에서 예외를 발생시키지 않고 try / catch 블록에서 중단하는 방법 (0) | 2021.04.06 |
---|---|
C 함수의 시작 부분에서 (무효) '변수 이름'의 용도 (0) | 2021.04.06 |
foreman은 "started with pid #"줄만 표시하고 다른 것은 표시하지 않습니다. (0) | 2021.04.06 |
다른 스레드에서 HttpContext.Current에 액세스 (0) | 2021.04.05 |
r 및 rb 모드에서 텍스트 파일 구문 분석의 차이점 (0) | 2021.04.05 |