2010-10-12 104 views

回答

5

如果光標下的單詞包含特殊字符,以上解決方案並不安全。您應該使用

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

代替。

對於整條生產線,用getline('.')代替expand("<cword>")。對於光標下的文件名,使用expand("<cfile>")

1

你可以做到以下幾點:

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

在vimrc,該行映射F5鍵字符的組合。 CTRL-R CTRL-W在命令行中插入當前字。

+0

-1不逃避論點。 – ZyX 2010-10-12 14:18:15

2

給出一個perl腳本${HOME}/test.pl,你可以使用:

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

然後按F2將光標下的單詞發送到您的腳本。

根據我對your previous question的回答,CTRL-RCTRL-W表示光標下的單詞。

見的Vim以下幫助主題,讓你開始寫作鍵盤快捷鍵:

我的測試腳本:

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

給了我路徑文件。謝謝。 – 2010-10-12 13:17:14

+0

和代表光標下的整行代碼是什麼? – 2010-10-12 13:29:33

+0

ZyX的答案更好地解釋瞭如何做到這一點。我在這裏留下了我的答案,因爲它有一些有用的鏈接來說明如何映射鍵(現在你已經問了一些關於這個問題的問題)。 – Johnsyweb 2010-10-12 23:27:01