Какой самый элегантный способ комментирования/ракомментации блоков кода ruby ​​в Vim?

В VIM, в тот момент, когда мне нужно прокомментировать раздел Ruby code:

  • Я перехожу к первому столбцу в строке, которую хочу прокомментировать.
  • Я нажимаю CTRL-v, чтобы перейти в режим визуальных блоков.
  • Я перемещаюсь вниз до места, где хочу завершить операцию.
  • Я набираю r<space>, если хочу раскомментировать код или r#, если я хочу его прокомментировать.

Этот рабочий процесс мне подходит, есть ли способы улучшить этот процесс? Существуют ли какие-либо другие трюки для комментирования или раскомментации разделов ruby-кода в vim?

Ответ 1

Я делаю почти то же самое, что и вы.

комментирования:

  • выберите визуальный блок с помощью CTRL-V, затем I# (введите # в начале)

раскомментировав:

  • выбор визуального блока с помощью CTRL-V, затем X (удалить первый символ в строке)

Обратите внимание на прописные буквы I и X.

Ответ 2

Для каждого языка (ftplugin) я пишу сопоставления, которые будут добавлять или удалять лидера комментариев и перемещать курсор вниз по одной строке. Например, в моем python ftplugin у меня есть это:

noremap   <buffer> K      :s,^\(\s*\)[^# \t]\@=,\1#,e<CR>:nohls<CR>zvj
noremap   <buffer> <C-K>  :s,^\(\s*\)#\s\@!,\1,e<CR>:nohls<CR>zvj

Я считаю, что это чрезвычайно гибкая настройка:

  • Нажмите K, чтобы прокомментировать текущую строку.
  • Нажмите K несколько раз, чтобы прокомментировать много строк.
  • 6K, чтобы прокомментировать 6 строк.
  • K в визуальном режиме комментирует весь выбор.
  • Все можно раскомментировать таким же образом, используя CTRL-K
  • Если строки уже прокомментированы, у них не будет добавлено дополнительное # в начало.
  • Если за # следует пробел, он считается текстовым комментарием и не затрагивается.

Я адаптирую это немного для каждого языка. Это не работает также для комментариев Old C (/*...*/), но я предпочитаю не использовать их в любом случае.

Ответ 3

Некоторым кажется, что нравится Nerd Commenter

Ответ 5

Мне нравится использовать следующее:

  • поместите курсор в первую строку, которую вы хотите прокомментировать.
  • введите ma (no colon), чтобы поместить маркер в эту строку.
  • перейдите к последней строке блока, который вы хотите прокомментировать.
  • введите: 'a,.s/^/#/и затем введите

Это говорит о том, что из строки, содержащей маркер "a", вплоть до текущей строки, замените хеш для начала строки.

Ответ 6

После визуального выбора в блочном режиме текста, который вы хотите прокомментировать, нажмите I (это капитал i), введите # и, наконец, удалите escape ключ. Это в основном та же самая процедура, которую вы используете в настоящее время, но с использованием вставки вместо замены.

Ответ 7

Я использую эти плагины:

  • vim-commentary Тим Пауп, который определяет оператор комментария gc
  • vim-textobj-rubyblock, который определяет ir (внутри блока Ruby) и ar (вокруг блока Ruby) для Ruby do.. блоки.
  • vim-ruby, который определяет im/am для метода внутри/вокруг Ruby и im/am для внутри/вокруг класса Ruby.

Используя эту комбинацию, я могу легко комментировать/раскомментировать конкретный код Ruby в обычном режиме, например:

  • gcir/gcar комментарий внутри/вокруг блока Ruby do/end.
  • gcim/gcam комментарий внутри/вокруг метода Ruby.
  • gcim/gcam комментарий внутри/вокруг класса Ruby.
  • Плюс нормальные карты комментариев, например gcc, чтобы прокомментировать строку, или 5gcc, чтобы прокомментировать 5 строк.

В целом он очень Vim-подобный и естественный.

Надеюсь, что это поможет.

Ответ 8

Вы также можете сделать это:

  • Перейдите к первой строке, чтобы прокомментировать
  • нажмите "ESC", затем
  • Нажмите Ctrl + q, чтобы войти в режим Visual Block.
  • Переместить в последнюю строку, чтобы прокомментировать
  • Нажмите I, прокомментируйте, нажав #
  • Хит ESC

И раскомментировать:

  • Перейдите к первому # комментария
  • Нажмите Ctrl + q, чтобы войти в режим Visual Block.
  • Переместить в последнюю строку, чтобы прокомментировать
  • Нажмите d, чтобы удалить символы комментария

Ответ 9

Попробуйте T-comment с Блок Ruby.

У меня есть T-комментарий, сопоставленный с //.

" Easy commenting
nnoremap // :TComment<CR>
vnoremap // :TComment<CR>

Это позволяет, из любого места в блоке Ruby, прокомментировать это:

var  (visual around Ruby)
//   (toggle comments)

Обратите внимание, что в блоках Ruby есть несколько зависимостей плагина, которые необходимо установить, например, в Vimfiles.

Ответ 10

Я порекомендую вам альтернативный способ комментариев с помощью макроса

Во-первых, просто введите это в свой .vimrc

let @c="I#\ej"
let @u="^xj"

В примере

Чтобы прокомментировать 12 строк:

  • Перейдите к первой строке, в которой вы хотите начать свой комментарий.
  • Введите [email protected] в командном режиме, чтобы прокомментировать 12 строк

Чтобы раскомментировать 12 строк:

  • Перейдите к первой строке, которую вы хотите раскомментировать.
  • Введите [email protected] в командном режиме, чтобы раскомментировать 12 строк

Заключение

Комментирование:

[quantifier]@c 

раскомментировав:

[quantifier]@u

Примечание. Эти команды начнут комментировать/раскомментировать вашу текущую строку.

Дополнительно:

Для улучшения вашей nevigation number.vim может помочь вам много узнать о количестве кванторов.

https://github.com/myusuf3/numbers.vim