Bash는 .inputrc의 vi-ins/cmd-mode-string 옵션을 무시합니다.

Bash는 .inputrc의 vi-ins/cmd-mode-string 옵션을 무시합니다.

처음 .inputrc를 만들 때(기본적으로 존재하지 않음) 모드를 구분하기 위해 vi-ins-mode-string"+"와 ":"를 설정했습니다. vi-cmd-mode-string기본적으로 프롬프트 앞에 "(cmd)" 또는 "(ins)"가 추가되지 않았지만 해당 옵션이 표시되기를 원했기 때문에 .inputrc에서 해당 옵션을 변경했습니다. 그러나 "+" 및 ":"가 내 bash 프롬프트 앞에 계속 표시되는데 이유를 모르겠습니다. source.inputrc를 사용하여 가져오려고 시도했고 bind터미널의 모든 인스턴스를 종료했지만 아무 것도 작동하지 않습니다. 내가 여기서 뭔가 잘못하고 있는 걸까요? 내 .inputrc는 현재 다음과 같습니다.

set show-mode-in-prompt on
set vi-ins-mode-string "(ins)"
set vi-cmd-mode-string "(cmd)"

편집하다:가상 환경(중요한 경우 conda로 생성됨) 내부에서 Python의 대화형 cli를 시작할 때 (ins) 및 (cmd)가 적절하게 추가됩니다. 내 일반 bash 명령줄에서만 "+"와 ":"가 계속 나타납니다.

답변1

  1. 파일 에 다음 줄을 추가하세요 ~/.inputrc.
  2. 셸을 다시 시작합니다(새 터미널 세션 열기).
  3. 쉘이 명령줄 모드 bash에 있는지 확인 하고 .viset -o vi

또는:

  1. 파일 에 다음 줄을 추가하세요 ~/.inputrc.
  2. bash파일 다시 읽기를 사용하십시오 Ctrl+XCtrl+R( emacs먼저 임시로 모드로 전환하려면 를 사용해야 합니다 set -o emacs).
  3. 쉘이 명령줄 모드 bash에 있는지 확인 하고 .viset -o vi

환경 변수 가 있는 경우 INPUTRC이는 파일을 가리킵니다.실제로사용된. 셸의 시작 파일에서 변수를 제거하거나(그리고 셸을 다시 시작), 기본값이 있는지 확인합니다 $HOME/.inputrc(그리고 셸을 다시 시작합니다).

관련 정보