Можно ли не отображать ~ для пустых строк в Vim/Neovim?

Можно ли не отображать ~ для пустых строк в Vim?

Это сбивает с толку полосу прокрутки Mac Vim, и мне очень не нравятся эти тильды.


person Ecco    schedule 28.09.2010    source источник
comment
возможный дубликат цвета тильды в vim?   -  person Josh Lee    schedule 28.09.2010
comment
Ну, нет. Я действительно видел этот вопрос раньше, и дело не в цвете. Я хотел бы избавиться от них полностью. Они вызывают странную прокрутку в MacVim (так что вы можете прокручивать слишком низко, чтобы вверху была видна только последняя строка): i.imgur.com/8f4u6.png -> i.imgur. ком/vDMk3.png   -  person Ecco    schedule 28.09.2010


Ответы (5)


Как сказал Джеймсан, вы не можете отключить их. Поведение прокрутки также не является специфичным для MacVim — оно работает одинаково в терминале и в gvim:

Скриншот этого в терминале

Вместо того, чтобы рассматривать это как проблему, вам следует научиться видеть в этом часть гибкости Vim. Например, вы можете использовать команду zt для прокрутки текущей строки в верхнюю часть экрана, независимо от того, где она находится в файле. Это может упростить написание макросов, которые выполняют некоторую работу, а затем прокручивают до того места, где вы были. Из-за этого команды ‹C-E› и ‹C-Y› стали проще, как и опция 'scrolloffset'.

Если нужно, переучите свой мозг думать о полосе прокрутки Vim как о сопоставлении с тем, какая строка находится сверху, а не с тем, какой экран виден.

person Josh Lee    schedule 28.09.2010
comment
Есть ли способ заставить zz поместить курсор в центр, даже если текущая строка находится в начале файла? Заполнение строк над SOF символом «~»? - person Jason Basanese; 03.08.2016
comment
Вместо того, чтобы рассматривать это как проблему, вам следует научиться рассматривать это как часть гибкости Vim.... — Другой способ взглянуть на это так: инструменты должны работать на вас; а не наоборот. - person jww; 11.08.2018

:hi NonText guifg=bg

Эта команда должна установить цвет нетекстовых символов таким же, как цвет фона.

person pullo    schedule 23.02.2012
comment
По какой-то причине я все еще получаю призрачные тильды в Vim-Qt и Vim-GTK после этой команды. Вот скриншот. - person Ruslan; 28.08.2019

Вим 8.x:

Теперь вы можете изменить цвет только для конца буфера ~:

highlight EndOfBuffer ctermfg=black ctermbg=black

См. список изменений для Vim 8.x.

person Livioso    schedule 14.10.2016
comment
Также работает для neovim 0.5 (только что протестировал мою текущую версию), ура! - person SidOfc; 04.04.2020

Вы не можете отключить их, но можете изменить цветовую схему таким образом, чтобы NonText группа выделения окрашена так же, как и группа выделения Normal. Однако это влияет не только на конец тильды документа.

Я сомневаюсь, что это на самом деле «сбивает с толку» полосу прокрутки MacVim, и если это так, то это ошибка в исправлении, которое делает MacVim.

person jamessan    schedule 28.09.2010
comment
Я думаю, что его замешательство возникает из-за того, что полная высота экрана составляет ~ символов, что позволяет вам всегда прокручивать вниз, пока не будет видна одна строка текста. - person Josh Lee; 28.09.2010
comment
Действительно, jleedev прибил это. Например, посмотрите здесь: i.imgur.com/8f4u6.png. Отображается полоса прокрутки, которая позволяет мне прокручивать, чтобы была видна только четвертая строка. Что не имеет смысла, на самом деле. - person Ecco; 28.09.2010
comment
Как описал jleedev, это имеет смысл, поскольку вы можете прокручивать буфер до тех пор, пока последняя строка не станет единственной отображаемой. В этот момент полоса прокрутки будет внизу своего канала. - person jamessan; 28.09.2010

Символы заголовка ~ предназначены для того, чтобы напомнить пользователю, что эти строки не являются частью содержимого буфера.

Приведенный выше трюк с подсветкой скроет символ ~, но он все еще там. Для некоторых терминалов это может даже не работать. Если вы являетесь пользователем Neovim, вы можете использовать fillchars. возможность изменить символ конца буфера следующим образом:

set fillchars=fold:\ ,vert:\│,eob:\ ,msgsep:‾

Это будет использовать пробел вместо ~ для конца буфера, эффективно скрывая раздражающее ~.

Вас также могут заинтересовать обсуждения здесь.

person jdhao    schedule 31.10.2020