是否可以通过键入快捷方式将光标下的单词发送到perl脚本?
我该怎么做?
答案 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在命令行中插入当前单词。