Комментирование XML в vim - PullRequest
19 голосов
/ 01 июня 2009

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

  • tomcat's server.xml
  • maven's settings.xml

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

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

Ответы [ 6 ]

16 голосов
/ 01 июня 2009

Вы можете использовать комбинацию совпадающих тегов 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 - как и раньше

5 голосов
/ 04 сентября 2015

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

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

5 голосов
/ 01 июня 2009

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

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

Пример:

введите

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

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

<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>

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

5 голосов
/ 01 июня 2009

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

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

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

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

Есть и другие ... в частности, NERD Commenter

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

2 голосов
/ 01 июня 2009

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

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

" 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 файлом.

1 голос
/ 01 июня 2009

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

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

:2,4s/^/#/g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...