是否可以通过键入快捷方式将光标下的单词发送到 perl 脚本?
我怎么做?
如果光标下的单词包含特殊字符,上述解决方案是不安全的。你应该使用
nnoremap <F2> :execute "!/path/to/script.pl ".shellescape(expand("<cword>"), 1)<CR>
反而。
对于整行,替换expand("<cword>")
为getline('.')
. 对于光标下的文件名,使用expand("<cfile>")
.
给定一个 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";
您可以执行以下操作:
nnoremap <f5> :!perl my_script.pl <c-r><c-w><enter>
在你的 vimrc 中,这行将 F5 键映射到这个字符组合。CTRL-R CTRL-W 在命令行中插入当前单词。