Отображение символа подачи страницы в Vim - PullRequest
14 голосов
/ 18 марта 2011

Одна из приятных особенностей Vim заключается в том, что можно вставить символ подачи страницы ( Ctrl - L в режиме вставки), который делегирует принтер для начала печати следующего сообщения.новая страница.В тексте он отображается как ^L.

Можно ли сделать так, чтобы этот символ отображался как-то еще, например как

----------------- new page here -----------------  

, чтобы он был несколько более заметным при прокрутке страництекст?

То есть без перекомпоновки Vim из источника.

Ответы [ 4 ]

8 голосов
/ 09 августа 2011

Если вы не используете фальцовку при редактировании файлов, содержащих страницу символы подачи, вы можете использовать однострочные сгибы, чтобы выделить их. Использование foldexpr опция позволяет увеличить уровень сгиба строк, содержащих страницу символ подачи (ниже, для оценки скорости foldexpr, я предполагаю, что страница символы подачи всегда являются первыми символами их строк). Для достижения желаемый эффект широкоэкранного разделителя эти складки можно сделать автоматически закрывающимися.

Следующая функция настраивает складывание в соответствии с описанной идеей. выше. Вызовите его (вручную или с помощью автоматической команды), чтобы включить символ веб-канала сворачивание в текущий буфер.

function! FoldPageFeed()
    setl foldmethod=expr
    setl foldexpr=getline(v:lnum)[0]==\"\\<c-l>\"
    setl foldminlines=0
    setl foldtext='---\ new\ page\ '
    setl foldlevel=0
    set foldclose=all
endfunction

Результирующие разделители отображаются в виде текста --- new page, за которым следует непрерывная строка заполняющих символов (см. :help fillchars, пункт fold:) справа от окна.

0 голосов
/ 18 марта 2011

Если вы определили свою собственную группу подсветки в vim как символ ^ L, то у вас может быть выделенный фон для всех строк, содержащих этот символ.

Это не совсем "----------- новая страница здесь ------------", но было бы легко сделать разрывы страниц при прокрутке больших объемовтекста.

Я не знаю достаточно vim, чтобы на самом деле рассказать вам, как установить группу выделения ...

0 голосов
/ 11 апреля 2011

Не думаю, что ты можешь. Существует нетекстовая группа, которая может помочь. Другим способом (немного некрасивым) было бы написать некоторую автокоманду, чтобы развернуть ^ L до ---- новой страницы ---- и наоборот при использовании InsertLeave, BufRead и BufSave.

В любом случае, ответ на ваш вопрос таков: НЕТ, если вы просто хотите изменить отображение, и, вероятно, да с помощью неприятного плагина.

0 голосов
/ 18 марта 2011

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

Конечно, вы всегда можете выполнить эту команду (возможно, как макрос)сделать то же самое:

:%s/^L/----------------- new page here -----------------/
...