ZSH의 단일 및 여러 줄 명령에서 들여쓰기의 탭 너비를 변경하는 방법은 무엇입니까? 이는 리터럴 탭 문자와 동일하지 않습니다. ZSH는 실제로 Tab 키를 누를 때 터미널에 공백을 표시합니다.
zsh -f # Run without config
blackcap% echo $'\t.'
.
blackcap% .
blackcap% if
if> .
blackcap% tabs 4
blackcap% echo $'\t.'
.
blackcap% .
blackcap% if
if> .
이 동작은 터미널 에뮬레이터의 설정이나 setterm --regtabs
.IFS
man zshparam
분명히 내 자신의 버전을 작성하여 탭에 바인딩할 수 있지만 커서가 움직이면 줄이 바뀌고 두 줄 이상이 있으므로 이 최후의 수단은 빠르게 복잡해집니다. >>
vi A 핵심 친구를 사용하는 것은 말할 것도 없습니다.
답변1
ZLE는 프롬프트 문자열의 탭 문자와 입력 명령줄을 표시된 공백으로 확장합니다. 확장은 8개 열마다 고정된 탭 정지 계산을 사용하며 터미널에 실제 TAB 문자를 발행하는 것과 터미널의 실제 탭 정지 설정을 포함하지 않습니다. 오른쪽 커서 이동을 위한 단축키로 TAB을 사용할 때 terminfo/termcap 데이터베이스가 매개변수화된 커서 앞으로 제어 순서가 없다고 알려줄 때 동일한 가정을 합니다. (예,예,예)
라벨이 있다는 것은 행운입니다. 일반적으로 setterm
Linux KVT를 구동하는 내장 Linux 터미널 에뮬레이터 이외의 터미널 에뮬레이터에서는 util-linux를 사용하지 마십시오. 바라보다https://unix.stackexchange.com/a/491883/5132Linux 내장 터미널 에뮬레이터의 제어 시퀀스를 하드코딩하지 않는 휴대용 작업형 프로그램입니다.