目錄
你需要經常回覆電郵,重複輸入大量文字嗎?或者你是設計師/剪輯師/網站開發人員,需要經常輸入特定的代碼/名稱嗎?還是你只是像我一樣,想要單純的加快自己工作的速度而拼命練習提升自己的鍵盤打字速度,想要增加自己的生產力? 如果你的工作或生活需要經常重複輸入某些字句,今天介紹的Espanso (text expander)工具你或許會很感興趣。
簡介
Espanso是個免費並開源的文字擴展器(Text expander),可以在Window,Mac和Linux上運行。Espanso主要的功能是偵測鍵盤輸入的自定義引發文字然後顯示其代替文字,從而減少打字和複製貼上的時間,還有避免在手動輸入時出錯的機會。
Espanso安裝步驟
在Espanso的網站下載軟件後Espanso會自動運行了,在電腦的狀態欄看到Espanso的圖示就可以確認它在運行了。Espanso本身有預設的指令,比如輸入:espanso
就會出現「Hi there!」的代替文字。
創建自定義指令
接下來該創建我們自己的指令了。要更改關於這個軟件的所有設定首先要找到其configuraiton files的檔案位置。根據不同的電腦系統會在不同的位置,以下是在Espanso網站上提供找到檔案位置的資料。
- Window系統: {FOLDERID_RoamingAppData}\espanso (e.g. C:\Users\user\AppData\Roaming\espanso)
- Mac系統: $HOME/Library/Application Support/espanso (e.g. /Users/user/Library/Application Support/espanso)
- Linux系統: $XDG_CONFIG_HOME/espanso
我使用的是Window的系統,只在按下Win鍵加R鍵叫出執行命令的視窗,然後輸入%Appdata%
點擊確定。然後雙擊叫Roaming的檔案,就找到名叫espanso的檔案了,這裡就是更改所以關於這個軟件的地方。
在這個espanso的檔案裡有兩個文件夾,一個叫match另一個叫config。雙擊match的檔案並找到base.yml
的檔案,這個檔案是我們創建自定義指令的地方。這個檔案可以利用文字編輯的軟件比如WordPad打開,但我強烈建議先下載VS code(免費工具)並利用它作為更改指令的工具。原因是視覺上比較美觀之餘這個軟件本來就是寫程式代碼的工具,在更改文字檔的時候比較不會出現格式錯誤的機會。
創建指令有兩個元素,一個是trigger即是「引發」的文字,而replace則是「代替」的文字。比如我希望我在輸入:greet
會出現「Hi! How are you?」 的代替文字的話,我就可以在base.yml
文字檔中輸入以下的程式碼:
- trigger: ":greet"
replace: "Hi! How are you?"
在存檔後Espanso會跳出通知說已成功儲存,儲存後當我在輸入引發文字就會出現相應的代替文字了。
列印功能
除了基本的代替文字之外,Espanso還可以替我們「列印」時間和日期,這個功能對於常寫筆記的我來說非常實用。我設定了今天和明天日期的組合,只要輸入:today
就會出現今天的日期(電腦上的日期),輸入:tmr
就會出現明天的日期,又或者輸入:now
就會出現目前的時間。以下是程式碼提供參考:
- trigger: ":today"
replace: "{{mydate}}"
vars:
- name: mydate
type: date
params:
format: "%d-%b-%Y"
- trigger: ":tmr"
replace: "{{mydate}}"
vars:
- name: mydate
type: date
params:
format: "%v"
offset: 86400
- trigger: ":now"
replace: "It's {{mytime}}"
vars:
- name: mytime
type: date
params:
format: "%H:%M"
表格功能
如果需要經常大量回覆電子郵件的話,可以利用Espanso的表格功能實現類似於電子郵件模板的效果。比如說我是個客服人員或業務員,我可以用以下的設定作為我的電子郵件模板:
- trigger: ":email"
form: |
Hey [[name]],
Thanks for reaching out to our team, we are happy to help.
[[text]]
Best,
Margaret
form_fields:
text:
multiline: true
輸入一槓的符號告訴Espanso請依照目前的分行/分段顯示代替文字,而不是同一段落顯示。
在括號中的是可以填寫資料的位置,也就是填空的概念。在輸入引發文字後會跳出一個視窗讓我們填空。完成填寫資料後按Ctrl + Entre
就會出現表格中的文字了。
安裝Package
在Espanso上面有不少預設的Package可以提供下載,只要複製在Package 網頁上的命令,然後按Win鍵加R鍵叫出執行命令的視窗然後貼上,再按確定就安裝成功了。要確認是否安裝成功,在上面提到的Match 的文件夾裡的Package的文件夾查看是否有剛剛安裝的Package。我就安裝了all emojis這個表情包,在輸入:smile:
就會出現😄,可以讓我的筆記更生動一些。
搜尋列
當使用Espanso的時間越來越長,設下的指令也越來越多,慢慢的記不得已經設定的引發文字怎麼辦呢?這時候可以按下Alt+Space
去查看搜尋列,搜尋列可以顯示我們已經設定好的match組合。如果這個Alt+Space
的快捷鍵組合已經有其他的功能設定的話(比如Microsoft的Powertoys),可以用滑鼠右擊Espanso在狀態欄的圖示,然後選擇open search bar也可以達到相同的效果。但如果你跟我一樣十分堅持只利用鍵盤的話,下面的章節會提到怎麼自定義開始搜尋列的快捷鍵。
看到這裡都是在講解怎使用這個軟件的,那麼要是我不想要代替文字出現的話又該怎麼辦呢?也很簡單,只需要按backspace
鍵就可以取消代替文字的出現變回原先輸入的文字了。但如果我想要更進階一點設定只在使用某個程式時才關閉Espanso,或者是在使用某些程式的時候才啟用某些引發文字又該怎麼設定呢?那麼這是時候研究一下Espanso的設定了!
Espanso設定
還記得在之前在創建自定義指令的時候,除了match的文件夾以外還有另外一個叫config的文件夾嗎?這裡就是更改設定的地方。
如何實現在某些程式中關閉Espanso
有兩個方法可以實現這個情境,方法一是直接關閉Espanso, 方法二是設定特定的config檔案令Espanso在開啟特定的程式時自動關閉。
直接關閉設定方式:
- 用利用滑鼠右鍵點擊Espanso在狀態欄的圖示,點選Disable,這樣圖示變成了灰色就代表已經關閉了
- 在鍵盤上按兩次
Alt
鍵(這個快捷鍵也叫Toggle key也可以自定義,將在下面章節說明更改方法)
設定特定的config檔案令Espanso在開啟特定的程式時自動關閉:(這裡用signal 程式作為範例)
- 首先在VS Code或WordPad裡建立一個叫
signal.yml
的文字檔並儲存在config的文件夾中 - 在這個
signal.yml
的文字檔裡寫以下程式碼:
filter_exec: signal
enable: false
- 然後存檔, 這樣的話在使用Signal程式的時候Espanso就會自動關閉了
如何在使用某些程式的時候才啟用某些引發文字:(這裡用「在使用Chrome時才引發電郵範本」作為範例)
- 首先在match的文件夾裡創建一個
_email.yml
的文字檔 - 在文字檔裡建立自定義組合
- 然後創建一個叫
chrome.yml
的文字檔並存到config的文件夾中,並寫下以下的程式碼:
filter_exec: "chrome"
extra_includes:
- "../match/_email.yml"
- 儲存後,那些在
_email.yml
裡的組合就只會在使用Chrome時才會成功引發,在使用其他程式時並不會出現代替文字的情況
一般設定
那麼在上述提到打開搜尋列的快捷鍵和快速開啟和關閉Espanso的快捷鍵又該如何設定呢?在config文件夾裡面有一個叫default.yml
的檔案,這裡是更改一般設定的地方。
更改快速開啟和關閉Espanso的快捷鍵(toggle key):
比如說我希望用雙擊左邊的SHIFT
鍵作為我的快捷鍵,可以在這個default的文字檔輸入以下的程式碼:
toggle_key: LEFT_SHIFT
存檔後,雙擊左邊的SHIFT
鍵兩次就可以關閉/開啟Espanso了。
更改打開搜尋列的快捷鍵:
也是在相同的default的文字檔輸入以下程式碼:(這裡用SHIFT+CTRL+SPACE
作為範例)
search_shortcut: SHIFT+CTRL+SPACE
儲存後只要按SHIFT+CTRL+SPACE
這組快捷鍵就可以叫出Espanso的搜尋列了。
注意事項: 設計自定義引發文字
雖然這套工具十分方便,但在設計引發文字的時候要思考會不會跟常用的字有衝突。不太建議使用英文單字或縮寫去做為引發文字,建議在引發文字的最前方加入一些符號這樣會減少不小心觸發代替文字的機會。另外一個要注意的是表情符號,比如說我嘗試過設定「:o」為引發文字,但結果卻變成了😮而不是我想要的代替文字。
結語
Espanso這個工具令我省去了很多重覆輸入的時間和減少輸入時出錯的機會,加快了我的工作速度。說到提升使用電腦的生產力,AutoHotKey這個巨集指令程式工具能透過自訂的腳本自動化鍵盤和滑鼠的操作,從而簡化重覆的步驟,如果你有興趣了解更多可以參考這篇文章。延伸閱讀:AutoHotKey應用實例教學:活用腳本,提升效率
參考資料: Espanso教學文件網站