나는 기본을 사용한다ksh
OpenBSD 6.2에서(기반 pdksh
) Vi 명령줄 편집 모드를 활성화합니다.
나는 Dvořák 키보드를 사용하고 있기 때문에 화살표 키가 h, 및 l에 대한 보완으로 제대로 작동하도록 노력하고 있습니다. 내가 아는 한 그들은 전혀 작동하지 않습니다. "입력" 모드인지 "명령" 모드인지는 중요하지 않습니다.jk
현재 키 바인딩은 다음과 같습니다:
^[[A = up-history
^[[B = down-history
^[[C = forward-char
^[[D = backward-char
를 사용할 경우 화살표 키로 생성되는 문자의 순서이기도 합니다 Ctrl+VArrow key.
화살표 키는 Emacs 명령줄 편집 모드에서 잘 작동하지만 오랜 Vi 사용자로서 화살표 키를 사용할 때 약간의 불편함을 느낍니다.
내 느낌은 화살표 키로 전송된 Escape가 내가 누른 것처럼 해석된다는 것입니다 . 예를 들어 수동으로 입력 하면 Esc동일한 동작을 얻습니다. 예를 들어 명령 모드로 전환한 다음 마지막에 삽입 모드로 전환합니다. 선).Esc[AUp-arrow
질문: OpenBSD의 Vi 모드에서 화살표 키가 직관적으로 작동하도록 할 수 있는 사람이 있습니까 ksh
?
답변1
빨리 참여해요/usr/src/bin/ksh
내 OpenBSD 시스템에서 실제 소스 코드를 확인했기 때문입니다. 얼핏 보면 c_ksh.c
Vi 모드가 어느 시점(1989/1990년경) 부터 개조된 것처럼 emacs.c
보입니다 . 사용된 정확한 단어는 다음과 같습니다.vi.c
pdksh
nsh
/* $OpenBSD: vi.c,v 1.55 2018/01/16 22:52:32 jca Exp $ */
/*
* vi command editing
* written by John Rochester (initially for nsh)
* bludgeoned to fit pdksh by Larry Bouzane, Jeff Sparkes & Eric Gisin
*
*/
-able 함수는 bind
내장 함수에 의해 호출되는 함수와 마찬가지로 모두 에 위치하지만 emacs.c
, 일부는 호출되지 않는 다른 이름으로 자체 구현이 있는 것 같습니다.x_bind()
bind
vi.c
x_bind()
그러므로 나는 bind
이 특정 셸에서 내장 함수가 Vi 모드에서 작동하지 않는다고 결론을 내릴 수 있다고 생각합니다.
업데이트(2018-02-04): 이를 openbsd-misc
목록 에 보고한 후 bind
실제로 Vi 명령줄 편집 모드에서 아무 작업도 수행되지 않음을 확인했습니다. ksh
이를 언급하기 위해 OpenBSD 매뉴얼을 수정하는 패치가 있을 것입니다 :
bind string=[editing-command] ...
존재하다Emacs 편집 모드, 지정된 편집 명령이 지정된 에 바인딩됩니다
string
. 향후 입력으로string
인해 편집 명령이 즉시 호출됩니다. 잘못된 바인딩Vi 편집 모드.