Почему Vim игнорирует мои значения моделин? - PullRequest
21 голосов
/ 04 января 2011

Я использую файл Python со следующей моделиной в конце:

# vim: sts=4:ts=4:sw=4

Если я запускаю Vim с этим файлом, modeline игнорируется. Как я могу это исправить? И кстати, у меня nocompatible установлено в моем .vimrc.

Ответы [ 5 ]

34 голосов
/ 02 февраля 2017

Вот что вы проверяете ...

Шаг 1

Убедитесь, что ваши настройки правильные. Do ...

:set modeline? modelines?

Если вы видите или из этих возвращенных значений, не будет работать .

nomodeline
  modelines=0

Что вам нужно увидеть, так это (где эти 5 больше 0)

modeline
modelines=5

Шаг 2

У вас есть строка с vim: , которая не касается других в последних строках вашего документа?

Серьезно, это все, что нужно.

Все эти модели работают ...

# vim: cursorline

// vim: cursorline

; vim: cursorline

vim: cursorline

# vim: set cursorline: <-that colon is required if you use the word "set" and this comment after the colon does not affect it.

# anything here vim: cursorline

even without a valid comment vim: cursorline

literally anything as long a space separates> vim: cursorline

Шаг 3

И это важно! Используете ли вы слово set? (как описано в «второй форме» в документах по опциям ). Выньте set или добавьте двоеточие в конец. 1039 *

Ни одна из этих работ ...

# vim: set cursorline
       ^^^ issue: use of the word set without a trailing colon (:)

# vim:cursorline
      ^ issue: no space after the colon

#vim: cursorline
 ^ issue: no space before the word vim

Шаг 4

Вы не спали более 18 часов? Прежде чем сойти с ума, поспи. Завтра все еще будет сломано. Вы, скорее всего, заметите проблему, когда снова пройдете этот список.

Обновление заметок

Этот ответ использовался для включения этой заявки:

Используете ли вы слово set? (как это описано как "вторая форма" в options doc ) Ну, это не работает в версии 8, и я не не знаю, когда он перестал работать. Используйте «первую форму».

Я был не прав. Это было отмечено @Amadan, и я исправил Шаг 3.

5 голосов
/ 04 января 2011

Я отследил проблему до локального плагина, который называется local_vimrc.vim.Тот факт, что modeline не работает, является побочным эффектом плагина.

4 голосов
/ 11 августа 2013

У меня была похожая проблема с моей моделиной, не работающей. Ответы в этой теме помогли мне найти мой ответ (который добавлял set modeline к моему ~ / .vimrc)

https://superuser.com/questions/323712/modeline-not-work-in-vim

Также одна вещь, которая помогла мне отладить это, была набрать: set in vim. Это скажет вам различные значения, которые в настоящее время установлены.

2 голосов
/ 07 июня 2018

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

autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview
0 голосов
/ 08 мая 2019

Первый шаг - всегда . Загляните в

/usr/share/vim/vim74/debian.vim

и закомментируйте строку nomodeline.

Распределения Kubuntu считают это угрозой безопасности.Например: libcal позволяет запускать произвольную программу)

Это проблема, только если кто-то из системы может запустить vim через веб-страницу. (не доверяйте пользовательскому вводу.)

Также возможно выполнить атаку ddos, используя проверку орфографии. (не доверяйте вводу пользователя.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...