
ZSH의 한 줄 및 여러 줄 명령에서 들여쓰기를 위해 탭 너비를 어떻게 변경합니까? 이는 리터럴 탭과 동일하지 않습니다. 탭 키를 누르면 ZSH는 실제로 터미널에 공백을 내보냅니다.
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 키를 사용하는 친구입니다.
답변1
ZLE는 프롬프트 문자열의 TAB 문자를 확장하고 명령줄을 디스플레이의 공백으로 입력합니다. 확장에서는 8개 열마다 고정된 탭 정지 계산을 사용하며 실제 TAB 문자를 터미널로 내보내는 것과 터미널의 실제 탭 정지 설정을 포함하지 않습니다. TAB을 커서 오른쪽 방향 이동의 단축키로 사용할 때와 terminfo/termcap 데이터베이스에서 매개변수화된 커서 앞으로 제어 시퀀스가 없다는 메시지를 받을 때 동일한 가정을 합니다. (예,예,예)
탭이 있어서 운이 좋았습니다. 일반적으로 setterm
Linux KVT를 구동하는 내장 Linux 에뮬레이터 이외의 터미널 에뮬레이터에서는 util-linux를 사용하지 마십시오 . 보다https://unix.stackexchange.com/a/491883/5132Linux 내장 터미널 에뮬레이터의 제어 시퀀스를 하드 코딩하지 않는 휴대용 작업용입니다.