Почему, когда я использую плагин tComment VIM в файле .ini, он добавляет / удаляет точки с запятой вместо хешей в качестве комментария? - PullRequest
3 голосов
/ 23 октября 2010

Я использую gVIM и подключаемый модуль tComment во время редактирования файла development.ini в проекте Pylons / Python.В файле по умолчанию development.ini строки закомментированы с использованием символа хеша # , который является стандартным методом комментирования строк в Python.Однако, когда я пытаюсь раскомментировать строки с помощью сочетания клавиш tComment в gVIM, я не вижу, как # исчезает.Вместо этого я вижу точку с запятой, добавляемую в начало строки.

Как исправить поведение tComment, чтобы он добавлял или удалял #s вместо добавления или удаления точек с запятой в файлах .ini Pylons?

1 Ответ

10 голосов
/ 23 октября 2010

В файле tcomment.vim в каталоге автозагрузки вы должны найти такой список:

call tcomment#DefineType('aap',              '# %s'             )
call tcomment#DefineType('ada',              '-- %s'            )
call tcomment#DefineType('apache',           '# %s'             )

Там вы найдете эту строку:

call tcomment#DefineType('dosini',           '; %s'             )

Предполагая, что вам не нужно слишком часто комментировать файлы Windows .ini, вы можете просто изменить его следующим образом:

call tcomment#DefineType('dosini',           '# %s'             )

Обновление:

Вот немного лучший вариант, так как вам не нужно ничего редактировать, кроме вашего vimrc. Поскольку ваш vimrc обычно загружается первым, любые встроенные типы файлов, которые мы пытаемся определить, переопределяются вышеуказанным файлом, поэтому давайте сделаем наш собственный:

au BufRead,BufNewFile, *.ini   set filetype=pythonini
call tcomment#DefineType('pythonini',           '# %s'             )

Сначала мы устанавливаем файлы .ini для нашего собственного типа файла pythonini, а затем добавляем для него собственное определение tcomment.

Чтобы ваш vimrc был красивым и переносимым, вы можете проверить, есть ли у нас tcomment, прежде чем пытаться его вызвать:

if exists('loaded_tcomment')
    au BufRead,BufNewFile, *.ini   set filetype=pythonini
    call tcomment#DefineType('pythonini',           '# %s'             )
endif
...