Какой самый элегантный способ комментирования/ракомментации блоков кода 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
Ответ 4
Вы пробовали EnhCommentify.vim или tComment.vim?
Ответ 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