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


14

Я не хочу коментувати рядки тексту в текстовому файлі чи коді. Я шукаю вставки блокових коментарів у файл .vimrc . Для вставки одного рядка "використовується коментар , наприклад:

" remove spaces and tabs as well  at the end of line automatically while saving
autocmd BufWritePre * :%s/\s\+$//e

Тепер я отримав порівняно велику кількість налаштувань / конфігурацій / плагінів, зібраних протягом багатьох років після перегляду Інтернету, щоб додати цікавих функцій. Я хочу додати кілька великих блоків коментарів до мого .vimrc-файлу. Додавання "до кожного рядка - це варіант, але я шукаю синтаксис блочного коментаря. Схожий на /**/C.

//тотожний до "
/* */ідентичний _ ____ ?

Пошук Unix.SE, SO та googling не дуже допомогли.


1
Я підозрюю, що функція багаторядкових коментарів у файлах vim-config не існує.
Ділавар

Відповіді:


5

Я не думаю, що це можливо. Найкраще, що вам вдасться зробити, - це виділити текст у блоці та виконати пошук / заміну першого символу s/^/"/in vim, щоб вставити a "на початок кожного рядка.

Плагін vim NERD Commenter може також полегшити це.


1
Я використовую вирішення:., + 3s / ^ / "/, де точка представляє поточну лінію, а +3 - кількість послідовних (після крапки) рядків.
daGo

6

Моє рішення - загортати код всередині function.

Це добре працює у vimrc, наприклад, для тестів на виділення синтаксису гередока на місці , які також потребують реальних блокових коментарів без провідних символів. У своєму 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 

Це рішення схоже на if 0хитрість @ Stéphane , яка не спрацювала для мене. Просто переконайтеся, що ніколи не викликайте цю функцію!


1

Одна хитрість:

  • розмістіть курсор на першому символі першого рядка для коментаря
  • натисніть Ctrl-V, щоб увійти в режим візуального блоку
  • опустіть курсор до останнього рядка для коментаря
  • натисніть I (shift + i), щоб увійти в режим умовного вставки
  • натисніть "" "для коментаря (цитата та пробіл)
  • натисніть Esc, щоб вийти з режиму вставки

Усі обрані вами рядки тепер готуються рядком, який ви ввели у режимі вставки.


Дякую, але я шукав, що саме являє собою стиль блокування коментарів у vimrc .
mtk

Я не думаю, що в vim існує така особливість. До речі, це не так часто. У багатьох мовах скриптів звичайніше використовувати однорядкові коментарі для діапазону рядків.
lgeorget

1

Використовуйте tCommentплагін для Vim: http://www.vim.org/scripts/script.php?script_id=1173

Так, він підтримує Python (доданий у 2011 році).

Опис: TComment працює як перемикач, тобто він коментує текст, що містить коментовані рядки, і він буде коментувати вже коментований текст (тобто текст, який не містить коментованих рядків).

Якщо тип файлу правильно визначений,: TComment визначить, який рядок коментаря використовувати на основі значень & stringstring & & коментарів. Для деяких типів файлів визначення коментаря чітко визначено. Ви можете | коментувати # DefineType () | щоб додати свої власні визначення.

TComment знає, як поводитися з вбудованим кодом іншого файлового типу, ніж основний тип файлу, наприклад, ruby ​​/ python / perl-регіони у скриптах vim, 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

Є цей плагін, що змінює життя, за допомогою tpopecallvim-commentary

https://github.com/tpope/vim-commentary

Цей плагін забезпечує :

  • Розсудливість
  • Правильно відступні коментарі
  • Не коментує порожні / непотрібні рядки

Використання :

  • Встановити через Vundle (або Патоген, я думаю).
  • Виділіть текст і натисніть, :що відображатиметься як:<,'>
  • Введіть тут коментар :<,'>Commentaryі натисніть клавішу Enter.
  • Бом. Ваш готовий бутон.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.