Zsh에는 대부분의 경우 잘 작동하는 몇 가지 완성 관련 자동화 기능이 있습니다. 을 누르면 Tab공백(또는 ,
중괄호 내부와 같은 다른 적절한 문자)이 자동으로 삽입됩니다.
&
한 가지 상황을 제외하고는 이 기능을 유지하고 싶습니다. 를 입력 하거나 |
누른 후에 공백이 제거되는 것을 원하지 않습니다 Tab. 나는 공백을 제거하는 것을 선호하며 ;
대괄호 열거형을 누를 때 쉼표가 자동 삽입되는 것을 확실히 억제하고 싶습니다 .Tab }
기본적으로 이 기능은 "이전"( compctl
) 및 "새"( ) 완성 시스템 compadd
모두에서 작동합니다 . 나는 새로운 시스템에만 관심이 있어요.
삽입을 완료하는 자동 접미사의 자동 억제를 조정하는 방법은 무엇입니까?
답변1
이 기능은 다음에 의해 조정될 수 있습니다.ZLE_REMOVE_SUFFIX_CHARS
그리고ZLE_SPACE_SUFFIX_CHARS
쉘 매개변수.
이 변수가 설정된 경우
ZLE_REMOVE_SUFFIX_CHARS
입력 시 자동 완성 접미사가 제거되는 문자 집합이 포함되어야 합니다. 설정되지 않은 경우ZLE_REMOVE_SUFFIX_CHARS
기본 동작은 다음과 동일합니다.ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
suffices로 설정된 문자는
ZLE_SPACE_SUFFIX_CHARS
공백으로 대체됩니다. 또한 그보다 우선한다.ZLE_SPACE_SUFFIX_CHARS
따라서 원하는 동작을 얻으려면 설정하는 것만으로도 충분합니다.
ZLE_SPACE_SUFFIX_CHARS=$'|&'
,
입력할 때 자동으로 삽입된 중괄호 열거가 항상 제거되는 것 같습니다 }
.
zshparam(1)
일부 완성 시스템이 이 동작을 무시할 수 있다고 언급되어 있지만 " new" compsys
(당신이 부르는 대로 )에서는 compadd
잘 작동하는 것 같습니다.