創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2020年7月12日 星期日

vim-anywhere

摘要

vim-anywhere方面的使用記錄,本文環境是Ubuntu MATE 18.04。

vim-anywhere簡介

vim-anywhere讓Vim用戶在桌面環境任何輸入文字的欄位中都可使用Vim。它事實上是段shell script,在文字欄位中,按下一組快捷鍵,以引發gVim,在gVim中輸入好文字並存檔關閉(:wq)後,文字儲存到一暫存檔中,它會將暫存檔中的文字內容複製到系統的剪貼簿中。使用者再以貼上的快捷鍵把剪貼簿中的文字送入該文字欄位中。官網上有個簡單的示範動畫圖可供參考。

vim-anywhere可用在Linux與macOS,是開放源碼軟體。

安裝vim-anywhere

官網已有清楚的安裝指示,這裡依自己的環境做點補充。在安裝它之前可先安裝它的依賴:

$ sudo apt install xclip git vim vim-gtk
已裝過的就別管了,如果沒裝,在以下安裝vim-anywhere的過程,也會出現提醒訊息。

安裝vim-anywhere:

$ curl -fsSL https://raw.github.com/cknadler/vim-anywhere/master/install | bash
檔案不太,安裝也不費什麼時間。

使用前的設置

上面說過vim-anywhere是一段script,但不以命令行方式來執行它,而是以快捷鍵(或稱捷徑鍵)來執行這段script,它再啟動gVim供輸入文字。所以裝好後使用前要先為vim-anywhere指定好一組快捷鍵。

官網上介紹了如何設置快捷鍵,但不同桌面環境,設置方法會有所不同。MATE的設置法是用“鍵盤捷徑鍵”這程式,可從“選單” -> “偏好設定”中找到它。

在“鍵盤捷徑鍵”中按“加入”,出現“自訂捷徑鍵”對話盒,“名稱”輸入 vim-anywhere 或其他合適名稱,“指令”則是 /home/{username}/.vim-anywhere/bin/run ,將此處的 {username} 替換成正確的用戶名。套用之後按下指定的快捷徑,如Ctrl + Alt + V。結果如下圖:


如果沒出錯,此時快捷鍵即可生效。注意前述的 /home 可不能用 ~ 或 $HOME 代替,否則使用時會出錯。

使用例

開啟一個須要輸入文字的軟體,譬如像桌面版的Telegram。有些人會在這款軟體Linux桌面版遇到所用的中文輸入法無法打中文的冏境,實際情形依會所用的中文輸入法與Telegram版號的不同而有所差異,這裡就不研究其中的詳情,自己則是利用vim-anywhere處理這難題的。

開啟Telegram後,鼠標點一下要輸入文字的欄位處,即讓此處成為輸入的焦點,會出現文字游標。按下 Ctrl + Alt + V 或是其他指定的快捷鍵,vim-anywhere會把 gVim 開起來,在gVim中輸入好文字後,存檔關閉。正常的話輸入焦點會自動移回Telegram的輸入欄,按下 Ctrl + V ,即貼上的快捷鍵,把剛剛打在gVim的文字送進去。

暫存的文字放在何處?

以快捷鍵執行vim-anyhwere後gVim暫存的檔案在 /tmp/vim-anywhere 之中。在重啟系統時會自動刪除 /tmp 中的暫存檔。

若想看一下有哪些歷史檔案:

$ ls /tmp/vim-anywhere
若想開啟最近的暫存檔:

$ vim $( ls /tmp/vim-anywhere | sort -r | head -n 1 )

類似軟體

無意間發現另一個同樣是開源的類似軟體:vimclip,不過沒實際試過。它可以讓使用者改用Vim以外的編輯器,只要指定$EDITOR即可。

在Windows上則有一個免費的小工具可用,叫 Text Editor Anywhere。有安裝版也有免安裝版,可針對不同文件種類設置使用不同的編輯器,使用上也算簡單。

結語

vim-anywhere利用剪貼簿把gVim中的文字貼到應用軟體的文字欄中,也許有人會覺得這樣做是多此一舉,但對於慣用Vim的人而言,在任何須要輸入純文字的地方都採用同一種習慣與相同的按鍵則是件愉快的事。

前述的使用例提到了這軟體的其中一種使用情境,最後再提另一個,相信有不少人也有類似以下的經驗。在某個網站,譬如論壇,想發表些文字,在網頁上的編輯器上花了不少時間打了不少字,最後按發送時卻發生某種意想不到的情況而遺失文字,如字數超過,系統不接受;或意外斷線;或是瀏覽器當掉……。遇過這類情況的人,下回做類似的事,可能就會先在某種編輯器上先打完字存檔,再複製文字到網頁上的編輯器;使用vim-anywhere在某些程度上,可避免這類的風險,而且也更方便。

參考

沒有留言:

張貼留言