2016-10-21 2 views
1

Используя vim, я использую gw или gwap для автоматического форматирования длинных комментариев в python или R, а vim вставляет # -знаки автоматически в начале строки, где это необходимо , Как в python, так и в R комментарии для создания автоматической документации начинаются с # 'вместо #, и vim не знает, как их обрабатывать.Формат комментариев в vim, начинающийся с # '(hash-dash)

Как учить vim, что строки с # 'также являются комментариями и при форматировании строки в блок, чтобы добавить #' - знаки в начало каждой строки?

Минимальный пример:

#' Some random text. Please 
#' format me 
#' nicely by 
#' typing gwap anywhere in this paragraph. 

должны стать чем-то вроде:

#' Some random text. Please format me 
#' nicely by typing gwap anywhere in 
#' this paragraph. 

ответ

3

Вам нужно расширить comments option:

'comments' 'com'  string (default 
           "s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-") 
         local to buffer 
         {not in Vi} 
         {not available when compiled without the |+comments| 
         feature} 
     A comma separated list of strings that can start a comment line. See 
     |format-comments|. See |option-backslash| about using backslashes to 
     insert a space. 

Форматирование использует этот параметр, чтобы признать комментарий лидеров. Каждая запись, разделенная запятыми, имеет форму {flags}:{string}, где флаги управляют типом форматирования комментариев.

Добавить b:#' в этот список, чтобы форматирование текста соответсвующей вставки комментариев лидеров, b стенды для заготовки требуемой, поэтому только #' следуют некоторые пробелы, то текст, рассматривается как комментарий лидера:

:set comments+=b:#' 

См. :help format-comments для получения дополнительной информации.

Демо:

comment formatting with additional <code>comments</code> setting

Примите во внимание, что filetype plugin может переопределить параметр comments снова; вы можете добавить ту же настройку, что и переопределение (с :setlocal command) в соответствующий файл ~/.vim/ftplugin/<type>.vim (создайте его, если он еще не существует).

Так что для буфера Python, если есть файл ~/.vim/ftplugin/python.vim, он будет запущен после того, как будет выполнен файл $VIMRUNTIME/ftplugin/python.vim, позволяющий вам установить дополнительную конфигурацию для этого типа файлов, включая дополнительную конфигурацию комментариев.

+0

Кажется, что это работает только в том случае, если «filetype =», но всякий раз, когда для типа файла задано что-то конкретное (say = python), оно больше не работает. Был ли я быстро принять ответ? Я что-то пропустил? –

+0

@ ThomasMöbius: ваше определение типа python может переустанавливать параметр 'comments'. Позвольте мне пройти через документы, чтобы увидеть, как вы можете увеличить это определение в этом случае. –

+0

@ ThomasMöbius: Я добавил инструкции о том, как обновлять локальные (специфичные для типа файлов) комментарии, со ссылками на документацию. –

Смежные вопросы