在键盘快捷方式上插入预定义文

时间:2013-06-13 11:50:44

标签: vim

我经常在调试时将binding.pry插入我的ruby文件中。当我使用Vim时,我喜欢自动化它以避免每次重新输入它。我怎么能这样做?

我要映射的确切顺序是:

  1. 插入新行。
  2. binding.pry插入新创建的行。
  3. 返回正常模式。
  4. 编辑: binding.pry是我要粘贴的文字,而不是文件。

    插入之前:

    a = 1
    b = 2
    

    插入后:

    a = 1
    binding.pry
    b = 2
    

6 个答案:

答案 0 :(得分:20)

录制宏(未经测试)

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>

答案 1 :(得分:10)

最简单的是从插入模式触发的缩写

:ia debug <CR>binding.pry

现在,当您输入debug时,文本binding.pry会插入新行。

答案 2 :(得分:4)

基于Fredrik's idea,您可以在.vimrc中定义并存储宏,例如g

let @g = "Obinding.pry^["

请注意,type the escape character CTRL-V 然后 ESC

然后,您可以执行@g来执行宏。


一般情况下,如果要保存宏,一种简单的方法是记录宏,比如在注册q中,然后执行"qp(其中q是宏name)粘贴宏。然后用

包围它
let @x = "..."

其中x是您希望它始终拥有的宏名称,并将其放在.vimrc文件中。

答案 3 :(得分:3)

另一个映射将是:

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

答案 4 :(得分:1)

我发现自己陷入了极大的困境。为了解决这个问题,我将以下映射放在我的.vimrc中:

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

第一个允许我在插入模式下使用插入binding.pry。

第二个让我使用我的领导者+ bp将binding.pry放在当前行之上。

答案 5 :(得分:0)

您可以使用以下按键来为此目的定义快捷方式

  1. :vsplit $ MYVIMRC
  2. i
  3. nnoremap bi obinding.pry
  4. :w
  5. :来源$ MYVIMRC

说明

  1. 在新的垂直拆分窗口中打开vimrc
  2. 切换到插入模式
  3. 定义快捷方式“ bi”的映射。
  4. 离开插入模式
  5. 保存更改
  6. 获取您的vimrc以使快捷方式可用

现在,在普通模式下,击键 (一个接一个)将在当前行下的新行中插入“ binding.pry”。

第3步的解释: nnoremap是用于映射击键以执行某些操作的命令。 “ bi”是按键组合。您可以根据需要进行调整。其余的是在VIM上的常规编辑序列:

  • o-在当前行下切换到插入模式
  • binding.pry -是要写入的文本
  • -按Esc键退出插入模式。