2015-05-14 44 views
0

如何可以寫一個熱鍵(這在任何編輯工作)的``如何``

如雙擊「文本」包當前選定的文本換行當前選定的文本,它變爲選中,然後通過按下鍵單``它 被轉換爲text

以下爲僞代碼和實際的代碼組合。 <>內的文字是我不確定的

^<COMMAND FOR PRESSING ` KEY>:: 
KeyWait Control 
<STORE CURRENTLY SELECTED TEXT IN MEMORY> 
SendInput `<STORED SELECTED TEXT>' 
return 

回答

1

您的方法已經很不錯了。試試這個:

$`:: 
clp_tmp := ClipboardAll 
send ^c 
currently_selected := Clipboard 
stringReplace, currently_selected, currently_selected, `r,, All 
Clipboard := clp_tmp 

sendraw ``%A_Space% 
sendraw %currently_selected% 
sendraw ``%A_Space% 

return 

$是需要的,否則,sendraw ``將重新觸發這個熱鍵。內置變量clipboard/clipboardAll包含窗口的剪貼板。另外,你不需要任何keywaits。 ahk自己通過熱鍵觸發器管理併發修飾符。我也建議使用sendraw治療#作爲贏得 -button,+作爲等。如果多個線被選擇

怪異

腳本插入的每個線之間的新行。當使用msgBox, %currently_selected%而不是任何send命令時,換行符顯示正確...顯然有一些奇怪的格式正在進行,我通過從字符串中刪除所有回車換行(CR)(`r)選中的文字。

給定的解決方案適用於我的德語鍵盤。 對於其他鍵盤佈局,這可能會有所不同。對我而言,需要%A_Space%sendraw ``%A_Space%(至少在第二個),因爲如果你聲明sendraw ``(最後一個字面空格字符),AHK將忽略它。你也可以把所有三個send S IN這樣一行

sendraw `` %currently_selected%``%A_Space% 

另一種解決方案可能是

sendInput ````{BS}%currently_selected%````{BS} 

或者只是

sendRaw `%currently_selected%` 

最後:如果你想讓一切變得更容易,使用#EscapeChar命令並將分隔符從`更改爲\或某物。類似。

+0

謝謝,但那對我不起作用。行爲是,當按下'選擇文本後,文本本身重複約5次,並且還發送多個回車符。 shift +'用'¬ –

+0

替換整個文本好吧我編輯它。 – Blauhirn

+0

地獄這些在stackoverflow反推動我瘋了,特別是與ahk組合。 – Blauhirn