Вставить символ без входа в режим вставки?

Иногда мне нужно вставить #, чтобы закомментировать строку и быстро ее протестировать. В настоящее время занимаюсь:

i # ESC : w

Что я могу сделать короче?


person alejandro    schedule 17.01.2014    source источник
comment
comment
Есть много сценариев комментариев. Я использую commentary.vim: github.com/tpope/vim-commentary   -  person Peter Rincker    schedule 18.01.2014
comment
Как уже говорили другие, вы можете попробовать плагин для комментариев. В более общем плане, однако, если у вас есть простое действие, которое вам нужно выполнять часто или многократно, вы можете легко создать сопоставление или макрос.   -  person pandubear    schedule 18.01.2014


Ответы (6)


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

Это мой подход к вставке одного символа:

:noremap <key> i <Esc>r

Я склонен обнаруживать, что мне очень часто нужно заменять, удалять или добавлять отдельные символы, если я исправляю опечатки, поэтому (соответственно) r, x и все, что выбрано для <key> в приведенном выше, становятся очень удобными.

Обратите внимание, что . также особенно удобен для такого рода задач. Он повторяет предыдущее действие.

Лично я сопоставляю эту функцию с ценной клавишей только тогда, когда я выполняю задачу, где я использую ее достаточно часто, чтобы оправдать занятие основного места на клавиатуре (например, исправление опечаток), потому что на самом деле она сохраняет только одно нажатие клавиши на одно нажатие. использовать, и это только тогда, когда <key> не является комбинацией, что, конечно, ограничивает доступность.

person James Haigh    schedule 01.03.2014
comment
возможно, это экономит только одно нажатие клавиши, но также экономит умственные издержки на переключение режимов, которые должны ощущаться значительными в vim. - person Adam Tolley; 10.06.2016
comment
Это сопоставление не работает с . - person Sparhawk; 29.05.2017

Я привязываю к своему <leader> ключу несколько вещей (по умолчанию \):

" # comment the current line
nnoremap <leader>d I#<ESC>

" block comment in visual mode
vnoremap <leader>c <ESC>'<O/*<ESC>'>o*/<ESC>V'<k

Если вы хотите добавить # в начало группы строк, сделайте следующее:

  1. <ctl-v>
  2. j (столько раз, сколько необходимо
  3. I#
  4. <esc>
person Wayne    schedule 18.01.2014

Вы можете использовать запись. В обычном режиме введите:

qlml0i#<press escape>`lq

Затем, чтобы закомментировать строку, просто нажмите @l

person Community    schedule 17.01.2014

Отображение в vim настолько простое, что я могу сделать что-нибудь вроде

:nmap CC I#<Esc>:w<CR>

на лету. Если привыкну, то добавлю в свой файл vimrc.

:help key-mapping
:help usr_40.txt
person benjifisher    schedule 18.01.2014

На самом деле есть плагин, на который вы могли бы взглянуть:

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

Он специально разработан для этой цели.

person ben    schedule 17.01.2014

Мне особенно нравится плагин tComment. gcc, чтобы прокомментировать строку, повторить, чтобы раскомментировать, несколько строк, движений и т. д.

person rojs    schedule 18.01.2014