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 から出来るだけ速やかに投稿出来そうです.