我正在嘗試在 vifm(在 linux 上)中撰寫一個命令,該命令使用 copyq 將影像的內容復制到剪貼板。
這是我到目前為止得到的:
我使用命令xdg-mime query filetype myfile.jpg來獲取 mimetype。
我用來qcopy將檔案的內容寫入剪貼板,如下所示:
qcopy write $MIMETYPE - < myfile.jpg
以下命令在 shell 中運行良好,檔案內容被復制到剪貼板:
qcopy write $(xdg-mime query filetype myfile.jpg) - < myfile.jpg
現在我如何在我的vifmrc檔案中將此命令重寫為 vifm 命令?
我試過這個但它不起作用:
command! copyf
\| let $MIMETYPE = system(expand('xdg-mime query filetype %c'))
\| execute expand("copyq write $MIMETYPE - < %c && copyq select 0")
我只是收到“無效的命令名稱”錯誤。
uj5u.com熱心網友回復:
這里有多個問題:
- 默認情況下,命令的主體由 shell 執行,如果您以冒號開頭,它將作為內部處理。請參閱幫助。
- 您需要在命令名稱和它的主體之間有一個空格,并
copyf\n<spaces>\|在第一個引數中寫入結果:command,copyf|因此會Incorrect command name出錯。幫助。 qcopy拼寫為copyq在一個地方。:execute運行一個內部命令,稱為內部命令!運行一個shell命令,所以!需要在最后一行使用。%在命令體中自動擴展,需要將其加倍以進行轉義,以便稍后擴展。最后一行也擴展了expand(),因此在那里進行了雙重轉義%。
應該作業的固定版本:
command! copyf
\ : let $MIMETYPE = system(expand('xdg-mime query filetype %%c'))
\ | execute expand('!qcopy write $MIMETYPE - < %%%%c && copyq select 0')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532833.html
下一篇:命名選單選項
