vimrc - как заблокировать комментарий?

{}

          { list; }

Размещение списка команд между фигурными скобками заставляет список выполняться в текущем контексте оболочки. Никакая подоболочка не создается. Точка с запятой (или новая строка) после списка требуется.

В дополнение к созданию подоболочки существует тонкое различие между этими двумя конструкциями из-за исторических причин. Фигурные скобки являются зарезервированными словами, таким образом, они должны быть разделены от списка пробелами или другими метасимволами оболочки. Круглые скобки являются операторами и распознаны как отдельные маркеры оболочкой, даже если они не разделяются от списка пробелом.

//источник

14
03.06.2013, 11:06
4 ответа

Я не думаю, что это возможно. Лучшим, который Вы сможете сделать, является блок, выбирают некоторый текст и делают поиск/замену на первом символе s/^/"/ в энергии для вставки a " к началу каждой строки.

Комментатор КОМПЬЮТЕРНОГО ФАНАТА плагина энергии мог бы помочь сделать это легче также.

5
27.01.2020, 19:51

Один прием:

  • установите свой курсор на первый символ первой строки для комментария
  • нажмите Ctrl-V для ввода в Визуальный Блочный режим
  • свалите свой курсор до последней строки для комментария
  • нажмите I (shift+i) для ввода в условный режим вставки
  • нажмите, '"' для комментария (кавычка и пространство)
  • нажмите Esc для выхода из режима вставки

Все Ваши выбранные строки теперь предварительно ожидаются строкой, которую Вы ввели в режиме вставки.

1
27.01.2020, 19:51
  • 1
    Спасибо, но я искал то, что точно является стилем комментария блока в vimrc. –  mtk 03.06.2013, 15:27
  • 2
    я не думаю, существует такая функция в энергии. Между прочим, это не настолько распространено. На большом количестве языков сценария более обычно использовать одну строку, комментирует диапазон строк. –  lgeorget 03.06.2013, 15:40

Используйте tComment плагин для Vim: http://www.vim.org/scripts/script.php?script_id=1173

Да, это действительно поддерживает Python (добавленный в 2011).

описание: TComment работает как переключатель, т.е. он прокомментирует текст, который содержит непрокомментированные строки, и он не прокомментирует, уже прокомментировал текст (т.е. текст, который не содержит непрокомментированных строк).

Если тип файла правильно определяется: TComment выяснит который строка комментария использовать на основе значений &commentstring или &comments. Для некоторых типов файлов явно определяется определение комментария. Вы можете |tcomment#DefineType () | для добавления собственных определений.

TComment знает, как иметь дело со встроенным кодом другого типа файла, чем основной тип файла, например, ruby/python/perl регионы в сценариях энергии, HTML или JavaScript в коде php и т.д.

Как оператор (префикс может быть настроен через g:tcommentMapLeaderOp1 и g:tcommentMapLeaderOp2):

gc{motion}   :: Toggle comments (for small comments within one line 
                the &filetype_inline style will be used, if 
                defined) 
gcc          :: Toggle comment for the current line 
gC{motion}   :: Comment region 
gCc          :: Comment the current line 

Карты первичного ключа:

<c-_><c-_>   :: :TComment 
<c-_><space> :: :TComment <QUERY COMMENT-BEGIN ?COMMENT-END> 
<c-_>b       :: :TCommentBlock 
<c-_>a       :: :TCommentAs <QUERY COMMENT TYPE> 
<c-_>n       :: :TCommentAs &filetype <QUERY COUNT> 
<c-_>s       :: :TCommentAs &filetype_<QUERY COMMENT SUBTYPE> 
<c-_>i       :: :TCommentInline 
<c-_>r       :: :TCommentRight 
<c-_>p       :: Comment the current inner paragraph 

Существует также вторичный набор контурных карт с _ как лидер (более предпочтителен на терминалах).

1
27.01.2020, 19:51

Мое решение - обернуть код внутри функции.

Это хорошо работает в vimrc, например, для in-place heredoc тестов подсветки синтаксиса, которые также требуют настоящих блочных комментариев без ведущих символов. В моем vimrc я использую такой блок непосредственно после установки heredoc SyntaxRanges.

function! _blockcomment()

    " free text comment
    You can write free text here,
    but vim will try to highlight it as vimscript!

    " markdown heredoc
    test <<MD
    ### Nevertheless ###
    * for testing my fuzzy SyntaxRange heredocs
    * having no leading chars is essential
    * and the blockcomment function does the trick
    MD  

endfunction 

Это решение похоже на трюк @Stéphane if 0, который у меня не сработал. Просто убедитесь, что никогда не вызываете эту функцию!

6
27.01.2020, 19:51

Теги

Похожие вопросы