1

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

我怎么做?

4

3 回答 3

5

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

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

反而。

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

于 2010-10-12T14:13:20.290 回答
2

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

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

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

根据我对您上一个问题的回答CTRL- R CTRL-W代表光标下的单词。

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

我的测试脚本:

#!/usr/bin/env perl -w
print "You selected '$ARGV[0]'.\n";
于 2010-10-12T11:22:38.830 回答
1

您可以执行以下操作:

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

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

于 2010-10-12T11:06:47.603 回答