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

  • 2021 年 7 月 19 日
  • 筆記

什麼是 flomo-cli

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

功能

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

安裝

從源碼編譯安裝

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

git clone [email protected]: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