支援 Homebrew 安裝和編輯器模式的 flomo 命令列工具

MrEasonYang發表於2021-07-19

什麼是 flomo-cli

這是一款可以在命令列中將筆記和想法儲存到 flomo 的工具。
基於 Golang 實現,可通過 Homebrew 便捷安裝。
GitHub Repo:https://github.com/MrEasonYang/flomo-cli
中文文件:flomo-cli中文說明

功能

  • 一行命令即可建立 flomo 筆記。
  • 支援編輯器模式,可使用 vim/neovim/emacs 建立筆記。
  • 支援 shell 管道,快速儲存檔案或過濾結果。

安裝

從原始碼編譯安裝

保證環境中已安裝 1.16 版本以上的 Golang ,執行以下命令即可:

git clone git@github.com:MrEasonYang/flomo-cli.git
cd flomo-cli
go build

使用Homebrew安裝

在 Homebrew 中輸入以下命令即可完成安裝。

brew tap MrEasonYang/taps
brew install flomo

目前支援以下平臺:

  • Apple Intel AMD64
  • Apple Silicon
  • Linux AMD64

手動下載安裝

如果不喜歡 Homebrew 或正在使用 Windows 系統,那麼你可以訪問 Release 下載對應平臺的最新版本並手動進行配置。

使用

配置

訪問 Flomo 個人配置頁面 以獲取個人的開放 API ,執行以下命令配置 API 到 flomo-cli 中:

flomo set api ${Flomo API}

隨後 flomo-cli 將會在使用者目錄生成名為 .flomo-cli.config 的隱藏檔案,該檔案的許可權為 0600 。

一鍵儲存

Memo 即 flomo 概念下的筆記,只需在各類終端工具的命令列中輸入以下命令即可

flomo save ${Your memo content}

Shell 管道

Flomo-cli 如常見程式一樣,支援以管道的資料重定向內容作為筆記內容,可藉助 cat 等命令快速儲存檔案等內容:

cat memo.txt | flomo

編輯器模式

除了直接在命令列中輸入,flomo-cli 也支援使用編輯器進行筆記編寫和儲存,只需要執行以下命令即可:

# Open vim to compose the memo.
flomo vim 

# Open neovim to compose the memo.
flomo nvim 

# Open emacs to compose the memo.
flomo emacs

目前 flomo-cli 只對 vim/neovim/emacs 進行了支援, 輸入其他內容將丟擲異常以避免任意執行帶來的安全問題。

清理臨時檔案

編輯器模式的實現思路是在接收到命令時呼叫指定編輯器對 ~/.flomo-tmp 目錄的臨時檔案進行編輯並一直等待。當使用者退出編輯器時停止等待,接著將臨時檔案的內容作為筆記傳送至 flomo ,最後將臨時檔案刪除。
這樣一來,如果存在併發呼叫或強制終止 flomo-cli 的情況,則臨時檔案的刪除工作可能就會被中斷,進而造成堆積的臨時檔案佔用磁碟空間。對於這一問題可以執行以下命令一鍵清理臨時檔案:

flomo clear

設定 alias

為了防止只使用 flomo 單個命令帶來的誤輸入風險,目前筆記的儲存操作必須結合 save 關鍵字來進行。如果你希望簡化輸入,那麼只需要在 zsh/bash 等 shell 的配置檔案中新增 alias 即可,示例如下:

alias flomo="flomo save" 

貢獻程式碼

歡迎大家通過 PR 的形式來完善本工具或加入新的想法,PR 形式不限,提 PR 前做好 lint 即可。

協議

MIT

相關文章