Подтвердить что ты не робот

Комментирование XML в vim

Я часто обнаруживаю, что удаляю и добавляю разделы XML в файлы конфигурации:

  • tomcat server.xml
  • maven settings.xml

и многие другие.

Есть ли vim plugin/command, чтобы сделать это простым?

4b9b3361

Ответ 1

Вы можете использовать комбинацию совпадающих тегов XML, как видно из этот вопрос и Perl искать и заменять.

Например, с учетом этого фрагмента:

<TypeDef name="a">
  <ArrayType high="14" low="0">
    <UndefType type="node">
    </UndefType>
  </ArrayType>
</TypeDef>

Наведите курсор на открытие или закрытие TypeDef и введите следующую последовательность:

vat:s/^\(.*\)$/<!--\1-->/

v - переводит вас в визуальный режим
at - выбор всего тэга XML
:s/^\(.*\)$/<!--\1-->/ - окружает каждую строку '<!--...-->', разделители комментариев для XML

Кроме того, вы можете просто удалить его так:

dat

d - удалить в соответствии со следующими движениями
at - как раньше

Ответ 2

У Vim нет интеллектуального комментирования для всех типов файлов. Вы должны получить script для своих комментариев.

Я использую enhcomentify script, который был вокруг и поддерживался в течение длительного времени

http://www.vim.org/scripts/script.php?script_id=23

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

Есть и другие, особенно комментатор NERD

http://www.vim.org/scripts/script_search_results.php?keywords=comment&script_type=&order_by=rating&direction=descending&search=search

Ответ 3

используйте surround.vim для общего соответствия меток, удаления, вставки, окружения и т.д.,

Для комментариев тегов легко использовать текстовые объекты vim и простой макрос

Пример:

введите

vmap ,c <esc>a--><esc>'<i<!--<esc>'>$

где-нибудь подходящий, затем поместите курсор в столицу "A" из "ArrayType" в строке 2 следующего (заимствованный из примера Натана Фелманса выше)

<TypeDef name="a">
  <ArrayType high="14" low="0">
    <UndefType type="node">
    </UndefType>
  </ArrayType>
</TypeDef>

затем нажмите

vat,c

и вы получите:

<TypeDef name="a">
  <!--<ArrayType high="14" low="0">
    <UndefType type="node">
    </UndefType>
  </ArrayType>-->
</TypeDef>

с вашим курсором в конце комментария

Ответ 4

Мне нравится простота https://github.com/tpope/vim-commentary. Легко добавлять другие языки, хотя, похоже, поддерживает большинство из них. До 100 строк кода.

gcc, чтобы прокомментировать текущую строку или выбрать текст, который вы хотите прокомментировать, и нажать gc. Супер легкий.

Ответ 5

Я думаю, что адаптация этого совета vim может быть полезна.

Я предлагаю добавить:

" Wrap visual selection in an XML comment
vmap <Leader>c <Esc>:call CommentWrap()<CR>
function! CommentWrap()
  normal `>
  if &selection == 'exclusive'
    exe "normal i-->"
  else
    exe "normal a-->"
  endif
  normal `<
  exe "normal i<!--"
  normal `<
endfunction

на ваш .vimrc

Затем, при активном визуальном выборе (V), нажмите \c (обратная косая черта, затем c), чтобы обернуть ваш блок в комментарии <!-- --> XML-стиля.

В качестве альтернативы, как предложено в вики, вы можете поместить код в ~/.vim/scripts/wrapwithcomment.vim и добавить в свой .vimrc:

au Filetype html,xml source ~/.vim/scripts/wrapwithcomment.vim

чтобы загружать только эту функциональность при работе с файлом html или xml.

Ответ 6

Лучше всего было бы, если бы вы нашли команду, которая добавляет вещи в начале и конце выбора.

Когда я комментирую код python, я делаю это:

:2,4s/^/#/g