Когда я набираю пробел, за которым следует символ канала '|'
в командной строке zsh, zsh ест этот пробел, помещая символ канала прямо напротив предыдущего слова. Как я могу остановить это от этого? Я не уверен ни в каких возможных стилистических соглашениях, но мне нравится пространство с обеих сторон символа трубы для удобства чтения. Я использую Oh-My-Zsh в значительной степени из коробки.
Решение
Основываясь на ответе mpy ниже, я использовал следующее решение:
По умолчанию ZLE_REMOVE_SUFFIX_CHARS не определено в zsh / ohmyzsh. Когда не определено, это действует, как будто это было:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
Я добавил следующее определение в мой ~ / .zshrc:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&'
(все кроме трубы) и presto, отлично! проблема ушла
zsh -f
(чтобы пропустить загрузку вашей конфигурации). Вы заметите, что Zsh больше не будет этого делать. Затем вам придется копаться (скорее всего) в oh-my-zsh, чтобы выяснить, как он это вызывает ;-)Ответы:
Я предполагаю, что вы имеете в виду, что когда вы
TAB
завершаете команду / имя файла, пробел добавляется автоматически, но после нажатия|
он снова исчезает. В противном случае я не могу воспроизвести этот эффект.Однако в этом случае решение должно быть таким простым, как
Объяснение немного сложнее, поэтому я просто цитирую
man zshparam
источник