나는 최소한의 FreeBSD 시스템을 사용하고 있으며 다음을 사용해야 합니다.내장육파일을 편집하는 편집기. 특히 이것은 vim, vim-tiny 또는 기타 대안이 아닙니다. 이는 "4BSD 버그 간 호환" nvi 편집기입니다.
거의 예상대로 작동합니다. 이것매뉴얼 페이지control-T와 control-D가 그에 따라 들여쓰기/내어쓰기를 취소함을 나타냅니다 shiftwidth
. Control-T는 작동하지만 Control-D는 작동하지 않습니다. 실제로 ^D 문자를 파일에 입력합니다.
vim을 시스템에 설치하면 control-T와 control-D가 예상대로 작동하므로 터미널이 키 입력을 잘못 해석하는 것은 문제가 되지 않습니다. Vi 자체는 control-D를 해석하지 않습니다.
이런 일이 발생한 사람이 있습니까? 해결책? vim을 사용하는 것은 선택 사항이 아닙니다.
답변1
너무 길어요 박사님; vim
아니요 vi
.
에서는 vi
Tab 대신 Control-T를 사용하여 줄을 들여쓰기해야 합니다.
재학습이 어렵다면 Tab에서 Control-T로 입력 모드 매핑을 추가할 수 있습니다.
printf 'map! \x16\t \x14\n' >> ~/.nexrc
실제 vi
및 nvi
복제된 것(FreeBSD에서 사용되는 것과 같이)에서는 Ctrl-D가 지워집니다.자동 들여쓰기 문자이전 "shiftwidth" 경계까지. 그럴 것이다아니요Control-I, Tab 또는 Space를 눌러 수동으로 입력한 Tab 또는 Space 문자를 지웁니다.
답변2
이는 버그 간 호환성의 일부입니다.
이에 대해서는 소스 코드의 주석에서 자세히 설명합니다 . 입력은 리터럴 문자 /usr/src/contrib/nvi/vi/v_txt.c
로 처리됩니다.␄
~하지 않는 한 ai
모드가 켜져 있습니다그리고삽입된 마지막 문자는 자동 들여쓰기 문자입니다( Control+ T또는 새 줄의 자동 들여쓰기를 통해).
또한 주석에서는 원래 vi
+ Control및 T+ 가 더 제한 Control되어 D삽입 모드에서 처음 입력되는 경우에만 들여쓰기에 영향을 미친다는 점을 지적합니다.