前言

有时候想用一个简洁点儿的备忘录,发现没有简洁好用的,于是就想着开发一个,秉着简洁

的思想,所以连界面都没有,只能通过命令行来操作(尽可能的将命令简化)。设计的时候

借鉴了git分支的思想,每个备忘录都等同于一个分支,我们可以创建多个备忘录。功能上

可以查看所有备忘录的名称,切换备忘录,添加备忘内容,“已完成”备忘录内容,删除备忘

录,删除备忘录内容。

备忘录相关的数据文件是放在当前用户的家目录里面的,有个隐藏的文件夹~/.memo/,这里面

包含了所有的备忘录信息。

实现是通过PHP实现的,安装需要通过composer安装,安装完成之后就可以使用memo xxx命令

来管理你的备忘录了。

使用介绍

项目地址:https://github.com/aizuyan/cli-memo

win下面目前支持的不是很好

这里面的所有备忘录、以及备忘录中的备忘都有一个短名称shortName,截取对应中文名

md5的前几位,以便于对其进行操作(比如,切换备忘录、删除备忘录、完成备忘等),避免

直接对冗长名称、数据操作,这也借鉴了git的提交版本。

安装

这个可以通过composer安装在全局,再将bin/目录加入到PATH中,就可以直接使用了:

composer global require aizuyan/cli-memo

上面这个命令会包安装到 ~/.composer/目录下面,再将/Users/ruitao/.composer/vendor/bin

路径配置到系统路径PATH中就可以直接使用memo命令了:

linux下面我是配置在~/.bashrc里面的:

PATH=$PATH:/usr/local/bin:/Users/ruitao/.composer/vendor/bin

memo help

memo help,这个命令展示了memo的所有命令列表:

➜  ~ memo help
create name 创建新的备忘录
change short name 切换备忘录
del short name 删除备忘录 add memo string 给当前的备忘录添加一条记录
done memo string short name 标记当前备忘录的某条备忘为已完成 show 列出当前备忘录所有备忘
list 列出所有的备忘录名称
memo init

memo init,这个命令用来初始化软件,包括在用户目录下新建必要的文件、文件夹,执行

成功之后,会在家目录下面创建如下的内容:

/Users/ruitao/.memo/是备忘录软件数据存放目录,head_memo_name_record用来记录

当前备忘录的名称,initFlag文件用来标记是否初始化过,memo/目录存放具体的备忘录

信息,每个备忘录一个文件。默认会创建一个默认备忘录,并将当前备忘录指向他。

/Users/ruitao/.memo/
├── head_memo_name_record
├── initFlag
└── memo/
└── 默认备忘录
memo create

memo create 工作备忘录,这个命令用来创建备忘录,创建完成之后会在备忘录数据目录

创建/Users/ruitao/.memo/memo/工作备忘录文件

memo list

memo list,这个命令用来列出备忘录,如下面所示,小手指向的就是当前所在的备忘录,

另外备忘录前面有一串字母,这里是备忘录的标识,后面删除、切换备忘录的时候都要用到

他。

➜  cli-memo git:(master) bin/memo list
备忘录列表
☞ a69b36c0 默认备忘录
8c13e2c7 工作备忘录
memo change

memo change <shortName>,这个命令用来切换当前的备忘录,跟git切换分支类似。就像

下面这样,切换之后,就会切换到备忘录[4be22fcf MCN备忘录]。

➜  ~ memo list
备忘录列表
☞ 45e43b27 生活备忘录
4be22fcf MCN备忘录
8c13e2c7 工作备忘录
a69b36c0 默认备忘录
➜ ~ memo change 4be22fcf
切换备忘录[4be22fcf => MCN备忘录]成功
➜ ~ memo list
备忘录列表
☞ 4be22fcf MCN备忘录
8c13e2c7 工作备忘录
45e43b27 生活备忘录
a69b36c0 默认备忘录
memo del

memo del <shortName>,这个命令用来删除不需要的备忘录,但是不能删除当前正在使用的分支

,就像下面这样:

➜  ~ memo list
备忘录列表
☞ 45e43b27 生活备忘录
4be22fcf MCN备忘录
8c13e2c7 工作备忘录
a69b36c0 默认备忘录
➜ ~ memo del a69b36c0
删除备忘录[a69b36c0 => 默认备忘录]成功
➜ ~ memo list
备忘录列表
☞ 45e43b27 生活备忘录
4be22fcf MCN备忘录
8c13e2c7 工作备忘录
[memo show]|[memo]

memo show和命令memo是等价的,为了便于查看,默认命令设为memo show,如下所示:

其中分为两大类:待完成事项、已完成事项,待完成事项排列在前面,标记为已完成的事项

排列在后面。

➜  ~ memo show
生活备忘录
待完成事项:
☞ 5e23fd6d 每天坚持远眺
☞ 7f3fc212 翻译文章《The Incredible Growth of Python》
已完成事项:
✔ 5a71bbc5 每天看书两个小时
➜ ~ memo
生活备忘录
待完成事项:
☞ 5e23fd6d 每天坚持远眺
☞ 7f3fc212 翻译文章《The Incredible Growth of Python》
已完成事项:
✔ 5a71bbc5 每天看书两个小时
memo add

memo add <string>,在当前备忘录添加备忘记录,如下所示:

➜  ~ memo add 今天提测同步数据接口
添加备忘[今天提测同步数据接口]到备忘录[生活备忘录]成功
➜ ~ memo
生活备忘录
待完成事项:
☞ 5e23fd6d 每天坚持远眺
☞ 7f3fc212 翻译文章《The Incredible Growth of Python》
☞ 887bad83 今天提测同步数据接口
已完成事项:
✔ 5a71bbc5 每天看书两个小时
memo done

memo done <shortName>,在当前备忘录标记shortName对应的备忘记录为已完成,如下

所示:

➜  ~ memo done 887bad83
备忘[887bad83 => 今天提测同步数据接口]标记已完成成功
➜ ~ memo
生活备忘录
待完成事项:
☞ 5e23fd6d 每天坚持远眺
☞ 7f3fc212 翻译文章《The Incredible Growth of Python》
已完成事项:
✔ 5a71bbc5 每天看书两个小时
✔ 887bad83 今天提测同步数据接口

TODO

  1. 因为短名称shortName使用的是md5的前几位,所以还是有一定几率重复的,这里需要解决下。
  2. 添加时间概念,新建的时候添加什么时候提醒,发送邮件。
  3. 解决win显示问题,没颜色可以显示整齐点儿。

命令行备忘录 cli-memo的更多相关文章

  1. 灰常牛逼的命令行备忘录 navi

    灰常牛逼的命令行备忘录 navi 1. navi命令简介 1.1 navi命令简介 命令行是非常高效的工具,但一个很常见的现象是,很多命令行过一段时间就容易忘.举个栗子,如果我们常用 git 命令行管 ...

  2. 使用.Net Core编写命令行工具(CLI)

    命令行工具(CLI) 命令行工具(CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行. 通常认为,命令行工具(CLI)没有 ...

  3. commanderJs编写命令行工具(cli)

    前言: 最近需要做一个内部的node cli来独立构建流程,对整个命令行工具实现流程有了大致了解,下面来解释一下如何实现一个cli,和如何使用 commander 库.   新手误区: 在开始实现之前 ...

  4. PHP命令行(CLI模式)

    CLI模式 CLI模式其实就是命令行运行模式,英文全称Command-Line Interface(命令行接口) $ php -h Usage: php [options] [-f] <file ...

  5. golang开发:类库篇(三)命令行工具cli的使用

    为什么要使用命令行 觉得这个问题不应该列出来,又觉得如果初次进行WEB开发的话,可能会觉得所有的东西都可以使用API去做,会觉得命令行没有必要. 其实,一个生产的项目命令行是绕不过去的.比如运营需要导 ...

  6. Flask内置命令行工具—CLI

    应用发现 flask命令在Flask库安装后可使用,使用前需要正确配置FLASK_APP环境变量以告知用户程序所在位置.不同平台设置方式有所不同. Unix Bash (Linux, Mac, etc ...

  7. Apache Commons CLI官方文档翻译 —— 快速构建命令行启动模式

    昨天通过几个小程序以及Hangout源码学习了CLI的基本使用,今天就来尝试翻译一下CLI的官方使用手册. 下面将会通过几个部分简单的介绍CLI在应用中的使用场景. 昨天已经联系过几个基本的命令行参数 ...

  8. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  9. Hive 学习之路(三)—— Hive CLI和Beeline命令行的基本使用

    一.Hive CLI 1.1 Help 使用hive -H或者 hive --help命令可以查看所有命令的帮助,显示如下: usage: hive -d,--define <key=value ...

随机推荐

  1. 手把手带你做一个超炫酷loading成功动画view Android自定义view

    写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾 ...

  2. nginx 编译增加新的模块

    原已经安装好的nginx,现在需要添加一个未被编译安装的模块: nginx -V 可以查看原来编译时都带了哪些参数 原来的参数:--prefix=/app/nginx 添加的参数: --with-ht ...

  3. Leetcode_128_Longest Consecutive Sequence

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43854597 Given an unsorted arra ...

  4. Leetcode_144_Binary Tree Preorder Traversal

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42876699 Given a binary tree, r ...

  5. 软考论文的六大应对策略V1.0

    软考论文的六大应对策略V1.0 短短2个小时,要写3000字的文章,对习惯了用电脑敲字.办公的IT从业人员而言,难度不小.尤其,大家会提笔忘字.笔者的应试策略,就是勤学苦练,考试前的一个星期,摸清套路 ...

  6. TCP中的MSS解读(转)

    本文摘录自TCP中的MSS解读. MSS 是TCP选项中最经常出现,也是最早出现的选项.MSS选项占4byte.MSS是每一个TCP报文段中数据字段的最大长度,注意:只是数据部分的字段,不包括TCP的 ...

  7. Media Player Classic - HC 源代码分析 6:MediaInfo选项卡 (CPPageFileMediaInfo)

    ===================================================== Media Player Classic - HC 源代码分析系列文章列表: Media P ...

  8. 集群RPC通信

    RPC即远程过程调用,它的提出旨在消除通信细节.屏蔽繁杂且易错的底层网络通信操作,像调用本地服务一般地调用远程服务,让业务开发者更多关注业务开发而不必考虑网络.硬件.系统的异构复杂环境. 先看看集群中 ...

  9. 手动将jar添加到maven仓库中

     1.将jar放到E:\workspace\lib中.如下图: 2.编写pom.xml文件,定义jfinal的坐标. <project xmlns="http://maven.ap ...

  10. LeetCode之“字符串”:最短回文子串

    题目链接 题目要求: Given a string S, you are allowed to convert it to a palindrome by adding characters in f ...