tl;dr
さっとメモを vim で書く為に, mattn さんの memo を使い始めました. vim に限らず, 好きなエディタでさっとメモをコマンドラインから書けるというのはとても気持ち良いものです.
github.com
詳細はリポジトリの README や以下の記事等をご一読下さい.
mattn.kaoriya.net
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 コマンド内で完結してみたいと思います.
以下のように雑な 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 から出来るだけ速やかに投稿出来そうです.