【问题标题】:How come this vim macro doesn't work?这个vim宏怎么不起作用?
【发布时间】:2016-03-18 04:23:05
【问题描述】:

我有一个大致如下所示的文件:

field :t, :type => String, :as => :timestamp
field :b, :type => String, :as => :test

index({ :t => 1 })
index({ :b => 1 })

我将光标放在第 4 行,并记录以下宏:

/:<CR>viwyma?field :ctrl-r0,<CR>$F:lviwy`aviwpj^

所以搜索一个冒号,去那里,选择整个单词(在这种情况下是t),在a上创建一个标记,向后搜索字段后跟一个冒号,寄存器0中的单词(@987654327 @),然后是逗号。到行尾,向左移动一个字符,选择整个单词,拉取它,回到a 标记处,选择整个单词,粘贴我刚刚拉取的内容(timestamp),然后走到下一行和第一个非空白字符(这样我可以立即再次运行宏)。

之后,第 4 行就是我所期望的,index({ :timestamp => 1 }) 然后,我再次尝试运行宏,第 5 行变为index({ :: => 1 })

谢谢!

【问题讨论】:

  • 我能问一下为什么这被否决了吗?

标签: vim macros


【解决方案1】:

我发现了问题。我安装了 vim-hardtime 以使移动变慢。我原以为它会对宏禁用,但事实证明并非如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多