1

У меня есть текст для переноса на 80 символов.

Можно ли обернуть текст, скажем, в 50 символов при редактировании строки определенного типа?

Например, я программирую Ruby и хочу, чтобы комментарии Ruby были обернуты в 50 символов, а все остальное остается в 80.

Является ли это возможным?

1 ответ1

1

Обтекание контролируется опцией 'textwidth' . :help 'textwidth' показывает, что он является локальным для буфера, поэтому можно установить различные значения, например, вручную через

:setlocal textwidth=50

Чтобы это автоматически применялось ко всем файлам Ruby, вы можете использовать встроенные в Vim плагины для определения типов файлов и типов файлов. Поместите указанную выше команду в ~/.vim/after/ftplugin/ruby.vim . (Для этого необходимо, чтобы у вас был :filetype plugin on ; использование каталога after позволяет вам переопределить любые настройки по умолчанию для типов файлов, выполняемые $VIMRUNTIME/ftplugin/ruby.vim .) В качестве альтернативы, вы можете определить :autocmd FileType ruby ... непосредственно в вашем ~/.vimrc , но это имеет тенденцию становиться громоздким, когда у вас есть много настроек.

Встроенная функциональность останавливается там, в области буфера. Чтобы применить различную текстовую ширину только к комментариям (или любому другому элементу синтаксиса), необходима динамическая адаптация. Это может быть реализовано с помощью :autocmd , подключая событие CursorMoved . Мой плагин OnSyntaxChange предоставляет служебные функции для упрощения установки (снова помещается в ~/.vim/after/ftplugin/ruby.vim):

call OnSyntaxChange#Install('Comment', '^Comment$', 1, 'a')
autocmd User SyntaxCommentEnterA setlocal textwidth=50
autocmd User SyntaxCommentLeaveA setlocal textwidth=80

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .