Вставка предопределенного текста на клавиатуре

Я часто вставляю binding.pry в свои рубиновые файлы, когда я их отлаживаю. Поскольку я использую Vim, я бы хотел автоматизировать его, чтобы не переставлять его каждый раз. Как я могу это сделать?

Точная последовательность, которую я хотел бы отобразить:

  • Вставьте новую строку.
  • Вставьте binding.pry во вновь созданную строку.
  • Возврат в нормальный режим.

EDIT: binding.pry - это текст, который я хочу вставить, а не файл.

Перед вставкой:

a = 1
b = 2

После вставки:

a = 1
binding.pry
b = 2

Ответ 1

Записать макрос (непроверенный)

qq               " record macro to register q 
o                " insert empty line below cursor
esc              " exit insert-mode
:r /path/to/binding.pry   " insert content of file
esc              " cmd-mode
q                " end recording

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

@q

Или добавьте следующее в свой .vimrc файл

Обновление

Чтобы вставить строку binding.pry, отображение будет выглядеть следующим образом:

map ,p obinding.pry<ESC>

Ответ 2

Самый простой - это аббревиатура, которая запускается из режима вставки:

:ia debug <CR>binding.pry

Теперь, когда вы набираете debug, текст binding.pry вставляется в новую строку.

Ответ 3

На основе идеи Fredrik вы можете определить и сохранить макрос в своем .vimrc, скажем g:

let @g = "Obinding.pry^["

Обратите внимание, что для введите escape-символ, нажмите CTRL-V, затем ESC.

Затем вы можете выполнить @g для выполнения макроса.


В общем случае, если вы хотите сохранить макрос, одним простым способом было бы записать макрос, скажем, в регистре q, затем выполните "qp (где q - имя макроса), чтобы вставить макрос, Затем окружайте его

let @x = "..."

где x - это имя макроса, которое вы хотите, чтобы оно всегда имело и помещало его в файл .vimrc.

Ответ 4

Другое отображение, которое будет выполнено:

nnoremap <silent> gb :let a='binding.pry'\|put=a<cr>

Ответ 5

Огромное затруднение, в котором я оказался. Чтобы решить эту проблему, я поместил в свой .vimrc следующие отображения:

imap <C-b> binding.pry 
nnoremap <leader>bp O<% binding.pry %><esc>

Первый позволяет использовать для вставки привязки .pry, когда он уже находится в режиме вставки.

Второй позволяет мне использовать мой лидер + bp, чтобы поместить binding.pry над текущей строкой.

Ответ 6

Для этого вы можете определить ярлык с помощью следующих нажатий клавиш

  1. : vsplit $ MYVIMRC
  2. я
  3. нет карты bi obinding.pry & lt; cr & gt; & lt; esc & gt;
  4. & Lt; & ESC GT;
  5. : Ш
  6. : источник $ MYVIMRC

Explaination

  1. Откройте ваш vimrc в новом окне с вертикальным разделением
  2. Переключиться в режим вставки
  3. Определите сопоставление для ярлыка 'bi'.
  4. Выйти из режима вставки
  5. Сохраните изменения
  6. Поставьте свой vimrc, чтобы сделать ярлык доступным

Теперь, пока вы находитесь в обычном режиме, нажатия клавиш & lt; b & gt; & lt; i & gt; (один ключ за другим) вставит 'binding.pry' в новую строку под текущей строкой.

Пояснение к шагу 3: nnoremap - это команда для сопоставления нажатий клавиш для выполнения некоторых действий. 'bi' - комбинация нажатий клавиш. Вы можете настроить это в соответствии с вашими потребностями. А все остальное - это обычная последовательность редактирования на VIM:

  • o - переключиться в режим вставки под текущей строкой
  • binding.pry & л; кр & GT; - это текст, который будет написан
  • & Lt; & ESC GT; - Нажмите escape, чтобы выйти из режима вставки.