Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 在键盘快捷键上插入预定义文本_Vim - Fatal编程技术网

Vim 在键盘快捷键上插入预定义文本

Vim 在键盘快捷键上插入预定义文本,vim,Vim,调试ruby文件时,我经常插入binding.pry。当我使用Vim时,我希望将其自动化,以避免每次都重新键入它。我怎么做呢 我想映射的确切顺序是: 插入新行 插入绑定。撬动新创建的行 返回正常模式 编辑:绑定。pry是我要粘贴的文本,而不是文件 插入前: a = 1 b = 2 插入后: a = 1 binding.pry b = 2 录制宏(未测试) 要执行宏,请执行以下操作: @q 或者将以下内容添加到.vimrc文件中 更新 要插入字符串binding.pry,映射将变为: map

调试ruby文件时,我经常插入
binding.pry
。当我使用Vim时,我希望将其自动化,以避免每次都重新键入它。我怎么做呢

我想映射的确切顺序是:

  • 插入新行
  • 插入绑定。撬动新创建的行
  • 返回正常模式
  • 编辑:
    绑定。pry
    是我要粘贴的文本,而不是文件

    插入前:

    a = 1
    b = 2
    
    插入后:

    a = 1
    binding.pry
    b = 2
    
    录制宏(未测试)

    要执行宏,请执行以下操作:

    @q
    
    或者将以下内容添加到
    .vimrc
    文件中

    更新

    要插入字符串
    binding.pry
    ,映射将变为:

    map ,p obinding.pry<ESC>
    
    map,p obinding.pry
    
    基于,您可以在
    .vimrc
    中定义并存储宏,例如
    g

    let @g = "Obinding.pry^["
    
    请注意,按CTRL-V键,然后按ESC键

    然后可以执行
    @g
    来执行宏


    通常,如果要保存宏,一种简单的方法是记录宏,例如在寄存器
    q
    中,然后执行
    “qp
    (其中
    q
    是宏名称)粘贴宏。然后用

    let @x = "..."
    
    其中,
    x
    是您希望它始终具有的宏名称,并将其放入
    .vimrc
    文件中。

    是从插入模式触发的缩写:

    :ia debug <CR>binding.pry
    
    :ia debug binding.pry
    
    现在,当您键入
    debug
    时,文本
    binding.pry
    将插入新行


    文档:
    :帮助缩写

    另一种映射方法是:

    nnoremap <silent> gb :let a='binding.pry'\|put=a<cr>
    
    nnoremap gb:let a='binding.pry'\\ put=a
    
    我发现自己陷入了一个巨大的困境。为了解决这个问题,我在.vimrc中放置了以下映射:

    imap <C-b> binding.pry 
    nnoremap <leader>bp O<% binding.pry %><esc>
    
    imap binding.pry
    nnoremap bp O
    
    第一个允许我在已处于插入模式时使用插入binding.pry


    第二个命令允许我使用我的leader+bp在当前行上方放置binding.pry。

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

  • :vsplit$MYVIMRC
  • nnoremap bi obinding.pry
  • :w
  • :来源$MYVIMRC
  • 解释

  • 在新的垂直拆分窗口中打开vimrc
  • 切换到插入模式
  • 定义快捷方式“bi”的映射
  • 离开插入模式
  • 保存更改
  • 为vimrc提供源代码,使快捷方式可用
  • 现在,当您处于正常模式时,击键(一个接一个键)将在当前行下的新行中插入“binding.pry”

    步骤3的说明: nnoremap是用于映射击键以执行某些操作的命令。“bi”是击键组合。您可以根据需要进行调整。其余是VIM上的正常编辑顺序:

    • o-切换到当前线路下的插入模式
    • binding.pry-将要写入的文本
    • -按escape以离开插入模式

    您的意思是插入文本“binding.pry”吗“,或者插入文件的内容
    binding.pry
    ?正如我在评论中所写的那样,这是一个文本“binding.pry”,而不是文件的内容。谢谢!一条注释:
    binding.pry
    不是一个文件,而是我想粘贴的字符串。这应该更简单,对吗?@mrzasa,跳过
    esc
    :r…
    步骤,用
    绑定替换。如果我想添加
    obinding.pry
    @FredrikPihl,有关更多信息,请参阅转义字符,这对我来说很有效:在Vim插入模式中,点击
    ctrl+q
    然后
    ESC
    这是我正在使用的:
    let@b=“obinding.pry^[0”
    使用小写字母“o”插入当前行下方。使用0(零)转到行的开头。您需要进入插入模式并键入一些单词,所以这不是最简单的。
    imap <C-b> binding.pry 
    nnoremap <leader>bp O<% binding.pry %><esc>