2013-08-18 34 views
1

我有一个:cabbr云:如何在函数中执行:cabbr?

:cabbr fil v/<c-r><c-w>/d 

,我希望在一个函数来执行它(光标已经正确定位)。

我该如何继续?

预先感谢

+0

我不认为一个命令行缩写将在一个函数中工作。你可以在函数中使用'exec'v///d''或使用'expand('')'这是相同的'' – FDinoff

+3

为什么不只是在你的函数中执行':g /直接命令?它是独立的'ab'设置,并使您的脚本更通用 – Kent

+0

@FDinoff:我曾尝试过,但没有奏效。更确切地说,我有,例如包含Foo的6行和包含Bar的4行;光标,在该功能的那个阶段位于Bar上;因此v/Bar/d应该给我4行。但是,实际上,它删除了所有的行,我不明白为什么。感谢您的帮助 – ThG

回答

2
​​

(在这种情况下^M被按压<c-v><cr>。)

现在:call Foo()将输出foo

编辑:正如人们在评论中指出的,feedkeys(':abc ^M')也可以用feedkeys(":abc\<cr>")来代替。

+0

@ThG对此答案的任何反馈? – mhinz

+1

对不起,我出去了很短的时间。我尝试了你的答案,并稍微改变了它:1)我保持我的:cabbr,因为它是和2)插入我的函数:调用饲料键(“:fil \ ”),它的工作。感谢您将我带入解决方案。这就是我接受你的答案的原因。非常感谢你 – ThG

+0

很酷,很高兴它现在正在工作。 :) – mhinz