이것은 수년 동안 나를 괴롭혔습니다. 나는 그 안에 있는 키 시퀀스의 바인딩을 해제하려고 시도했고 .inputrc
이를 true와 false로 설정했으며 EDITOR
bash 및 readline 매뉴얼 페이지를 읽고 다시 읽었습니다. bash 대신 ksh를 사용합니다.
키보드 순서 Esc동작을 비활성화하는 방법은 무엇입니까 v?
답변1
자신도 모르게 패턴을 bash
사용 하고 있는 것 같습니다 .vi
vi
패턴 에서는 , 을 갖는 bash
것과 같습니다.vi
삽입 모드텍스트를 삽입할 수 있는 위치(및교체 패턴이것은 그것의 변형입니다)명령 모드x
여기에서 문자 삭제, b
한 단어 뒤로 이동 등과 같은 동작이나 동작 명령을 입력할 수 있습니다 .
다음에서 전환했습니다.삽입/바꾸기 모드도착하다명령 모드, , , ... Esc같은 일부 명령과 함께 을 사용하면 다음을 입력할 수 있습니다.i
a
A
s
삽입 모드~에서명령 모드.
존재하다명령 모드, v
현재 줄을 편집하기 위한 편집기를 엽니다(이 vi
편집기에는 바인딩된 명령이 없으므로 v
ksh(bash의 기반)는 해당 특정 작업에 해당 편집기를 자유롭게 사용할 수 있습니다).
여기서는 키 바인딩 스타일을 사용하고 싶지 않은 것 같습니다 vi
. bash
/ readline
의 기본 키 바인딩은 is emacs
, is not 이므로 귀하 또는 귀하의 시스템 관리자가 기본적으로 해당 모드를 활성화하는 vi
일부 사용자 정의를 도입한 것 같습니다 .vi
이는 시스템이나 에 내부 set -o vi
또는 /etc/bashrc
시스템 /etc/bash.bashrc
기본 사용자 정의 파일을 추가하여 수행할 수 있습니다 .bash
set editing-mode vi
/etc/inputrc
아니면 자신의 ~/.bashrc
또는 ~/.inputrc
.
set -o emacs
다시 in ~/.bashrc
또는 set editing-mode emacs
in 으로 변경할 수 있습니다 ~/.inputrc
.
이 emacs
패턴에는 다음과 유사한 기능이 바인딩되어 있습니다.Ctrl+XCtrl+E
이 모드를 사용 하고 편집기를 생성 vi
하지 않으려면 다음 이외의 위젯에 위젯을 할당할 수 있습니다 .v
v
edit-and-execute-command
bind -m vi-command '"v": abort'
또는 빈 문자열이므로 무시됩니다.
bind -m vi-command '"v": ""'