2010-09-24 81 views
0

这种交互VIM宏是什么,我想用GVIM 7.3做:与多个选项卡

  1. 打开新的标签页文件(第一个选项卡)
  2. 获得包含一个模式的所有行 - >插入他们寄存器/剪贴板
  3. 打开一个新标签(第二个选项卡)
  4. 粘贴剪贴板
  5. 代码做一些正则表达式中的第二个选项卡更换过程。

我可以手动一个一个地成功执行命令。

我甚至可以用做此示例中顺序命令:

:let @b="This Value should be pasted in second tab" | :set dir=$TEMP | :tabe tabname | "bp | :%s/tab/tab and replaced in second tab/gi 

,但是当我把它们记录到宏;在步骤3

宏停止是否有处理函数/宏访问多个标签

谢谢特殊的技术。

这是命令样本

:let @b="This Value should be pasted in second tab" 
    :set dir=$TEMP 
    ":tabe tabName 
    "bp 
:%s/tab/tab and replaced in second tab/gi 

回答

0

你有你的第一行错误的语法:Ex命令不应:开始:你用:打开命令行,它不是一个Ex命令标志。所以,"bp在这个序列中所做的一切就是评论从"开始的整个行。如果要执行正常命令"bp,请使用execute 'normal! "bp',但也可以使用put b粘贴。功能,可以做你想做的(要放在~/.vimrc):

 
function! FindToTab(regex) 
    let @b="" 
    execute 'g/'.escape(a:regex, '/').'/.yank B' 
    set dir=$TEMP 
    tabe tabName 
    put b 
    %s/tab/tab and replaced in second tab/gi 
endfunction 
noremap <special> ,r :<C-u>call FindToTab(input("What to find? /", @/))<CR> 
+0

哇,感谢您的快速帮助。我将在标记为答案之前尝试您的答案 – kite 2010-09-24 06:17:47