tl;dr
さっとメモを vim で書く為に, mattn さんの memo を使い始めました. vim に限らず, 好きなエディタでさっとメモをコマンドラインから書けるというのはとても気持ち良いものです.
詳細はリポジトリの README や以下の記事等をご一読下さい.
memo new
コマンドでさっと vim が起動してメモを取り始めることが出来ます. また, memo edit
でメモ一覧を peco で選択してさっと編集することが出来ます. サイコーです.
$ cat $HOME/.config/memo/config.toml memodir = "/Users/$USERNAME/.config/memo/_posts" editor = "vim" column = 20 width = 0 selectcmd = "peco" grepcmd = "grep -nH ${PATTERN} ${FILES}" memotemplate = "" assetsdir = "." pluginsdir = "/Users/$USERNAME/.config/memo/plugins" templatedirfile = "" templatebodyfile = ""
上記は, memo config
で出力される memo の設定内容で, pluginsdir
(以降, プラグインディレクトリ) にスクリプトを放り込むと機能の拡張をすることも可能です.
メモを Slack に共有したい
コピペでも
memo edit
でメモを開いてマウスで選択しコピーして Slack のチャンネルに貼り付けでもいいけど, せっかくなので memo のプラグイン機構を利用して memo コマンド内で完結してみたいと思います.
プラグインスクリプト
#!/usr/bin/env bash SLACK_API_TOKEN="xoxp-1234567890-1234567890-1234567890-abcdefg12345abcdefg12345" SLACK_CHANNEL="#your-channel" usage() { echo "memo share -slack" } slack() { FILE=$(ls ${HOME}/.config/memo/_posts/ | peco) if [ "${FILE}" != "" ];then curl -s -XPOST -d "token=${SLACK_API_TOKEN}" \ -d "channel=${SLACK_CHANNEL}" \ -d "as_user=true" \ -d "text=\`\`\`$(cat ${HOME}/.config/memo/_posts/${FILE})\`\`\`" \ "https://slack.com/api/chat.postMessage" > /dev/null fi } while getopts ":su:-" opt; do case "$opt" in -) case "${OPTARG}" in slack) slack ;; usage) usage ;; esac ;; s) slack ;; u) usage ;; esac done
このスクリプトを任意の名前を付けて memo のプラグインディレクトリに放り込みます. 今回は share
という名前でスクリプトを設置します. 尚, プラグインスクリプトには -usage
オプションを必ず実装する必要があります. プラグインディレクトリにスクリプトを設置して, memo
コマンドを実行すると...
$ memo NAME: memo - Memo Life For You USAGE: memo [global options] command [command options] [arguments...] VERSION: 0.0.4 COMMANDS: new, n create memo list, l list memo edit, e edit memo delete, d delete memo grep, g grep memo config, c configure serve, s start http server help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --help, -h show help --version, -v print the version SUB COMMANDS: share memo share -slack
上記のように SUB COMMANDS
に追加したスクリプトの使用方法 (-usage
で出力される内容) が出力されます.
こんな感じ
memo new
または memo edit
でメモを作成, 編集し, memo share -slack
で投稿している図です.
一応, やりたい事が出来た気がします.
以上
メモでした. slack だけではなく, API で投稿出来るサービスであれば同じやり方で vim + memo から出来るだけ速やかに投稿出来そうです.