Книжная виртуальная машина Java Jon Meyer имеет пример ряда инструкций по байт-коду, которые вызвали JVM к дампу ядра. Я не могу найти свою копию этой книги. Если у кого-либо там есть тот, ищите его и отправьте ответ.
Я не думаю, что возможно иметь точно такой же отступ, но вы все равно можете получить лучший обзор, установив опцию 'showbreak'.
:set showbreak=>>>
Пример:
<p>
<a href="http://www.example.com">
This is a bogus link, used to demonstrate
>>>an example
</a>
</p>
Настоящее вещь выглядит лучше, чем пример кода выше, потому что Vim использует другой цвет для '>>>'.
ОБНОВЛЕНИЕ: в июне 2014 года патч для поддержки breakindent
опции был объединен с Vim (версия 7.4.346 или более поздняя для лучшей поддержки) .
Вы также можете попробовать : установить nowrap
, что позволит vim отображать длинные строки путем прокрутки вправо. Это может быть полезно для изучения общей структуры документа, но может быть менее удобным для фактического редактирования.
Другие варианты, близкие к тому, что вы ищете, - это linebreak
и showbreak
]. С помощью showbreak
вы можете изменять то, что отображается на левом краю строк, которые обертываются, но, к сожалению, он не позволяет изменять отступ в зависимости от текущего контекста.
:set smartindent
:set autoindent
Я думаю, вам все равно придется использовать возврат
Если ваш HTML-код достаточно хорошо сформирован, его использование через xmllint может помочь:
:%!xmllint --html --format
Единственный известный мне способ сделать это - использовать символ возврата (как упоминалось Cfreak) и объединить параметр textwidth
с различными параметрами отступа . Если ваш отступ настроен правильно (как я полагаю, он настроен по умолчанию с синтаксисом html, но в противном случае см. Параметры autoindent
и smartindent
), вы можете:
:set formatoptions = tcqw
:set textwidth = 50
gggqG
Если у вас есть любую настройку параметра formatoptions
, может быть лучше просто выполнить:
:set fo += w
:set tw = 50
gggqG
Что это делает:
:set fo+=w " Add the 'w' flag to the formatoptions so
" that reformatting is only done when lines
" end in spaces or are too long (so your <p>
" isn't moved onto the same line as your <a...).
:set tw=50 " Set the textwidth up to wrap at column 50
gg " Go to the start of the file
gq{motion} " Reformat the lines that {motion} moves over.
G " Motion that goes to the end of the file.
Обратите внимание, что это не то же самое, что мягкое обертывание: оно будет переносить строки в исходный файл, а также на экране (если, конечно, вы его не сохраните!). Есть и другие настройки, которые можно добавить в параметры формата
, которые будут автоматически форматироваться по мере ввода: подробности в : help fo-table
.
Для получения дополнительной информации см .:
:help 'formatoptions'
:help fo-table
:help 'textwidth'
:help gq
:help gg
:help G
:help 'autoindent'
:help 'smartindent'
Существует патч для этого, но он затянулся на годы и в последний раз, когда я проверял, не применялся чисто. См. запись "Correctly indent wrapped lines" в http://groups.google.com/group/vim_dev/web/vim-patches - я бы очень хотел, чтобы это попало в основную ветку.
Обновление: эта ссылка, похоже, сгнила. Вот более актуальная версия патча.
Обновление 2: он был объединен с предыдущим (начиная с версии 7.4.345), так что теперь вам нужно только :установить breakindent
.