2014-02-05 3 views
3

Я использую vim для написания Markdown. Когда я печатаю это:Markdown пронумерованные списки с Vim

1. test 
2. test 

Vim раздражает и форматирует его к этому:

1. test 2. test 

Мои formatoptions (tqlna) действительно включают n. Тип файла: markdown. Formatlistpat заключается в следующем:

setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+ 

Часть из них, кажется, работает, потому что Vim понимает, что он не должен переформатировать списки, начиная с -, * или +.

Как это исправить?

+0

Если он установлен плагином, то, скорее всего, лучше спросить об этом в [отслеживании проблем] плагина (https://github.com/tpope/vim-markdown/issues). – Conner

+0

На самом деле я попытался удалить подключаемый модуль, и проблема все тот же. Я отредактирую свой вопрос соответствующим образом. –

ответ

0

По какой-то причине want как formatoptions кажется, чтобы решить эту проблему. Однако я не могу объяснить, почему. Я знал, что w предотвратил поведение, о котором я жаловался, но я не был доволен этим решением, потому что тогда автоматическое форматирование нормальных абзацев было немного напуганным. want, который я никогда не пробовал, похоже, заботится обо всем и заставляет Vim вести себя как обычный современный мягкий текстовый редактор.

Я получил эту идею с этого сайта: http://blog.ezyang.com/2010/03/vim-textwidth/

«Я считаю, Ф.О. = хочу быть полезным при работе на RST документов или писем Easy мнемонические тоже..»

2

Если я прав, то vim фактически не распознает линии, начинающиеся с +, но только * и -. К сожалению, это связано с внутренним форматированием vim (команда gq использует этот форматтер). Опция a в вашем formatoptions сообщает vim, что вы автоматически используете внутренний форматтер при вводе текста, и это то, что все испортило.

Если вы берете опцию n и оставьте свой formatlistpat, тогда следует обернуть соответствующим образом, когда вы достигнете конца textwidth при наборе текста. Тем не менее, во-вторых, вы пытаетесь отформатировать файл с помощью gq, он снова испортит его.

Похоже, что вам нужен formatprg, который форматирует файлы разметки так, как вам нравится. Затем вы можете установить это и оставить опцию a для автоматического форматирования. Пока вы не найдете его, я предлагаю просто удалить a из вашего formatoptions и не использовать gq для форматирования вашего файла.

Возможно, вы захотите сопоставить возможные пробелы перед [-*+] в своем шаблоне. Например,

setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ 
+0

Спасибо за помощь! Фактически использование другого 'formatprg' не является решением в моем случае, так как мне бы очень хотелось, чтобы Vim вел себя как обычный текстовый редактор, когда я использую его для Markdown. Это означает, что я не хочу постоянно бить «gq», я думаю, что это делает вещи сложнее, чем они должны быть.Поэтому я не могу принять ваш ответ. –

+0

Я не понимаю вашего комментария. Может, я не очень хорошо себя объяснил? 'gq' - проблема не в решении. Если вы установите 'formatprg', вы можете снова использовать опцию' a' для автоматического форматирования. – Conner

+0

Мне кажется, что у вас нет автоматического форматирования, как только вы установите 'formatprg' в нечто иное, чем встроенный форматтер, вот что привело меня к написанию комментария, который я написал. –

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