什么是 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

支持 Homebrew 安装和编辑器模式的 flomo 命令行工具的更多相关文章

  1. pycharm不支持svn,是需要svn命令行工具没有安装(for windows)

    1. 安装svn命令行工具 Subversion for Windows下载https://sourceforge.net/projects/win32svn/?source=typ_redirect ...

  2. 如何在sublime编辑器中,执行命令行脚本

    我有个愿意,在执行命令行时,不打开那个黑乎乎命令行窗口,如果编辑器内置支持就好了. 打开vs code 和 sublime,分别按快捷键 Ctrl + ·(tab键上面那个键),vs code可以提供 ...

  3. Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,将全部来与官网 我猜去全部机翻+个人 ...

  4. 【Mac】Mac OS X 安装GNU命令行工具

    macos的很多用户都是做it相关的人,类unix系统带来了很多方面,尤其是经常和linux打交道的人. 但是作为经常使用linux 命令行的人发现macos中的命令行工具很多都是bsd工具,跟lin ...

  5. brew 安装指定版本命令行工具 tmux 多版本实现

    Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护. 核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 ...

  6. Django之win7下安装与命令行工具

    Django之win7下安装与命令行工具 下载安装 pip3 install django 注意:自动添加环境变量 测试是否安装成功 1.输入python 2.输入import django 3.输入 ...

  7. Django---定义、MVC和MTV模式、命令行工具、配置文件settings

    1.什么是web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的 ...

  8. NodeJS 安装cnpm命令行工具

    在安装之前,请确保已安装Git和NodeJS. cmd机内命令窗口,输入以下命令: git config --system http.sslcainfo /bin/curl-ca-bundle.crt ...

  9. 安装nodejs express框架时express命令行无效

    我也是看了这篇才明白.http://jingyan.baidu.com/article/922554468a3466851648f419.html 最近在看一本书,nodejs开发指南.至于出现这个问 ...

随机推荐

  1. GO语言面向对象01---封装属性与创建对象的方法与工厂模式

    package main import "fmt" /* 面向过程编程:调度大量的变量.函数 ---------- 面向对象编程(OOP=Object Oriented Progr ...

  2. MySQL 基础、安装、配置

    1. MySQL 基础 1.1 什么是数据库? 1.2 数据库的类型 1.3 关系型数据库的优点 1.4 MySQL 简介 1.5 MySQL 数据类型 1.6 Mysql 存储引擎 1.7 MySQ ...

  3. PyTorch 进行 Neural-Transfer

    PyTorch 进行 Neural-Transfer 1.简介 本文讲解如何实现由 Leon A. Gatys,Alexander S. Ecker和Matthias Bethge提出的Neural- ...

  4. CUDA运行时 Runtime(四)

    CUDA运行时 Runtime(四) 一.     图 图为CUDA中的工作提交提供了一种新的模型.图是一系列操作,如内核启动,由依赖项连接,依赖项与执行分开定义.这允许定义一次图形,然后重复启动.将 ...

  5. Nucleus 实时操作系统中断(下)

    Nucleus 实时操作系统中断(下) Nucleus RTOS兼容性 由于中断在Nucleus SE中的实现方式与Nucleus rto截然不同,因此不应期望有特定的兼容性.Nucleus RTOS ...

  6. 孟老板 ListAdapter封装, 告别Adapter代码 (上)

    BaseAdapter封装(一) 简单封装 BaseAdapter封装(二) Header,footer BaseAdapter封装(三) 空数据占位图 BaseAdapter封装(四) PageHe ...

  7. 已经安装好了tensorboardX,任然报错 No module named ‘tensorboardX‘ ??

    问题: 1.在jupyter notebook网页版中已经使用命令pip install tensorboardX来安装tensorboardX包,但是运行程序时仍旧出现错误:No module na ...

  8. CSS3-过渡、动画、2D与3D

    过渡 过渡属性transition,可适用于大部分属性间变化的过渡,例如长度的.宽度和透明度等等. 语法: transition: property duration timing-function ...

  9. Docker开启安全的TLS远程连接

    目录 1.1 不安全的远程访问方式 1.1.1 编辑docker.service文件: 1.1.2 重新加载Docker配置生效 1.1.3 警告! 2.1 建立基于TLS数字签名的安全连接 1.1 ...

  10. DBA入门相关知识介绍

    DBA(database administrator):数据库管理员                           DBMS(database management system):数据库管理系 ...