편집기에서 이전 명령을 열 때 bash에서 Esc-v를 비활성화하는 방법은 무엇입니까?

편집기에서 이전 명령을 열 때 bash에서 Esc-v를 비활성화하는 방법은 무엇입니까?

이것은 수년 동안 나를 괴롭혔습니다. 나는 그 안에 있는 키 시퀀스의 바인딩을 해제하려고 시도했고 .inputrc이를 true와 false로 설정했으며 EDITORbash 및 readline 매뉴얼 페이지를 읽고 다시 읽었습니다. bash 대신 ksh를 사용합니다.

키보드 순서 Esc동작을 비활성화하는 방법은 무엇입니까 v?

답변1

자신도 모르게 패턴을 bash사용 하고 있는 것 같습니다 .vi

vi패턴 에서는 , 을 갖는 bash것과 같습니다.vi삽입 모드텍스트를 삽입할 수 있는 위치(및교체 패턴이것은 그것의 변형입니다)명령 모드x여기에서 문자 삭제, b한 단어 뒤로 이동 등과 같은 동작이나 동작 명령을 입력할 수 있습니다 .

다음에서 전환했습니다.삽입/바꾸기 모드도착하다명령 모드, , , ... Esc같은 일부 명령과 함께 을 사용하면 다음을 입력할 수 있습니다.iaAs삽입 모드~에서명령 모드.

존재하다명령 모드, v현재 줄을 편집하기 위한 편집기를 엽니다(이 vi편집기에는 바인딩된 명령이 없으므로 vksh(bash의 기반)는 해당 특정 작업에 해당 편집기를 자유롭게 사용할 수 있습니다).

여기서는 키 바인딩 스타일을 사용하고 싶지 않은 것 같습니다 vi. bash/ readline의 기본 키 바인딩은 is emacs, is not 이므로 귀하 또는 귀하의 시스템 관리자가 기본적으로 해당 모드를 활성화하는 vi일부 사용자 정의를 도입한 것 같습니다 .vi

이는 시스템이나 에 내부 set -o vi또는 /etc/bashrc시스템 /etc/bash.bashrc기본 사용자 정의 파일을 추가하여 수행할 수 있습니다 .bashset editing-mode vi/etc/inputrc

아니면 자신의 ~/.bashrc또는 ~/.inputrc.

set -o emacs다시 in ~/.bashrc또는 set editing-mode emacsin 으로 변경할 수 있습니다 ~/.inputrc.

emacs패턴에는 다음과 유사한 기능이 바인딩되어 있습니다.Ctrl+XCtrl+E

이 모드를 사용 하고 편집기를 생성 vi하지 않으려면 다음 이외의 위젯에 위젯을 할당할 수 있습니다 .vvedit-and-execute-command

bind -m vi-command '"v": abort'

또는 빈 문자열이므로 무시됩니다.

bind -m vi-command '"v": ""'

관련 정보