vim运行perl脚本,光标下的单词作为参数

时间:2010-10-12 10:44:13

标签: vim function cursor shortcut arguments

是否可以通过键入快捷方式将光标下的单词发送到perl脚本?

我该怎么做?

3 个答案:

答案 0 :(得分:5)

如果光标下的单词包含特殊字符,则上述解决方案不安全。你应该使用

nnoremap <F2> :execute "!/path/to/script.pl ".shellescape(expand("<cword>"), 1)<CR>

代替。

对于整行,请将expand("<cword>")替换为getline('.')。对于光标下的文件名,请使用expand("<cfile>")

答案 1 :(得分:2)

给定perl脚本${HOME}/test.pl,您可以使用:

:nnoremap <F2> :!${HOME}/test.pl <C-R><C-W><CR>

然后按 F2 会将光标下的单词发送到您的脚本。

根据我对your previous question的回答,CTRL-R CTRL-W代表光标下的字词。

请参阅Vim中的以下帮助主题,以便开始编写键盘快捷键:

我的测试脚本:

#!/usr/bin/env perl -w
print "You selected '$ARGV[0]'.\n";

答案 2 :(得分:1)

您可以执行以下操作:

nnoremap <f5> :!perl my_script.pl <c-r><c-w><enter>

在你的vimrc中,这一行将F5键映射到这个字符组合。 CTRL-R CTRL-W在命令行中插入当前单词。