2014-01-27 2 views
1

Я уверен, что для этого есть плагин zillion, но это кажется настолько простым, что я хотел бы узнать, как это сделать сам.vim: Оберните текущую строку в/* */comment

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

Вот последовательность клавиш Я пытаюсь к карте:

<minus key> <insert /*> <escape insert> <$> <insert */> <escape insert> 

Попытка сопоставить клавишу минус с <S--> не работает. Как это возможно?

+1

Я рекомендую ВИМ-комментарий Тима Папы: https://github.com/tpope/vim-commentary –

ответ

8

Попробуйте это:

nnoremap - mzI/* <esc>A */<esc>`z 

Что это делает:

  • nnoremap: начать нерекурсивную отображение (nore) в нормальном режиме (n - n + nore + map)
  • -: Ключ к карте
  • mz: установить знак z в текущей позиции курсора, чтобы мы могли вернуться к нему, когда мы сделали
  • I: перейти в режиме вставки перед первым непустым символом в текущей строке
  • /* : вставить отверстие строка комментария
  • <esc>: оставить режим вставки
  • A: перейти в режим вставки сразу после последнего непустого символа в текущей строке
  •  */: вставить окончание комментария строку
  • <esc>: оставить режим вставки снова
  • `z: переход к строке и колонке марки z ('z - апостроф вместо кавычки - бы прыгнул на линию, но не к колонку, и мы повторно уже на линии, поэтому мы хотим `z взять нас туда, где мы начали)
+0

Fantastic. Спасибо, что описал все, поэтому я знаю, что он делает, прежде чем бросать его в мой vimrc. – red888

+0

@ user1028270 Добро пожаловать - рад помочь. :) Я рекомендую искать в ': help mapping' тоже - он подробно и иллюстрирует много классных способов использования различных команд отображения. –

+0

FYI, вы можете получить пробелы для отображения с использованием неразрывного пространства (' ') в кодовом блоке ('...') вместо использования обратных ссылок. – hvd

Смежные вопросы