Ну, я пишу и учусь. Я просто хочу написать текст таким образом ....

- First line.
  Second line.
  Third line.

Но проблема в том, что линии начинаются таким образом ...

- First line.
Second line.
Third line

Вы видите разницу? Ну, я провел небольшое исследование и нашел в суперпользователе нить, которая рекомендует использовать:set smartindent. Я так и сделал. Работает. Но проблема в том, что это фактически заставляет Vim следовать с того места, где начинается последняя строка. Теперь, когда я начинаю строки с левого края редактора, Vim запускает каждую новую строку, как показано во втором примере. Теперь вопрос в том, как я могу написать строки, как я показал в первом примере?

3 ответа3

0

Если вашей мотивацией является написание текстовых списков, вы должны проверить плагин vimwiki, сохранив параметры формата vim для других целей, как кодирование.

0

Почему вы ожидаете, что редактор всегда выберет правильный отступ? Конфигурируя определенный параметр отступа (например, хороший и универсальный :set smartindent), вы получаете то, что работает большую часть времени. В других случаях вы всегда можете сделать отступ вручную (с помощью <Tab> , при условии, что вы правильно сделали :set tabstop=... expandtab и т.д.) Или изменить отступ после факта с помощью >> и << .

Если у вас действительно есть определенный синтаксис, в котором правила отступа довольно просты и детерминированы (и ни один из параметров отступа по умолчанию не работает постоянно), вы должны написать собственный indentexpr (ср .: Help :help indent-expression).

Так как ваш пример касается форматирования текста, я не применяю это, и вы действительно лучше с 'smartindent' и ручными исправлениями.

0

Вместо «smartindent» я бы предпочел установить «autoindent», «formatlistpat» и «formatoptions» соответственно. Например:

" set up pattern to match list bullets and numbers
let &l:formatlistpat='^\s*\%(\d\+[\]:.)}\t ]\d\@!\|[*-]\)\s*'
" automatically format numbered or bulleted lists
setlocal formatoptions+=n
setlocal autoindent

В первой команде вы можете заменить любые "маркеры", которые вам нравятся, внутри группы [*-] .

Это сохранит отступ для вас и даже применяет его для вас, например, с помощью gqip , но вам нужно будет удалить отступ самостоятельно, когда вы вводите новую строку, для которой вы не хотите иметь формат списка.

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