6
3

自作コマンド「note」 - 素早くメモを作成しエディターを起動するmacOS用CLIツール

Last updated at Posted at 2024-07-19

概要

  • メモを素早く取るということに特化したCLIツール(中身はzshスクリプト)
  • メモファイルが無ければ新規作成、すでに存在している場合は既存のメモファイルを作成
    • 作成されるメモファイル形式は .md (Markdown)
  • $EDITOR で指定されたエディターを起動
    • $EDITOR が設定されていない場合はcode(Visual Studio Code)を起動
  • 基本的にはmacOS用

動作確認環境

  • M1 Max MacBook Pro
  • macOS Sonoma 14.5
  • VSCode 1.91.1
  • zsh 5.9 (x86_64-apple-darwin23.0)

セットアップ

noteコマンドはzshのスクリプトとなっているので、以下の手順で作成する

$HOME
mkdir -p $HOME/bin
touch $HOME/bin/note
chmod +x $HOME/bin/note
code $HOME/bin/note
$HOME/bin/note
#!/usr/bin/env zsh

set -eo pipefail

editor=${EDITOR:-code}

# create a note dir
NOTE_ROOT="$HOME/works/note"
NOTE_DIR="$NOTE_ROOT/$(date +%Y-%m)"
if [ ! -d $NOTE_DIR ]; then
  mkdir -p $NOTE_DIR
fi

# list notes
NOTE_NAME=${1:-1}
if [ "$NOTE_NAME" = "ls" ]; then
  ls -1 "$NOTE_DIR/"*
  exit 0
fi

# create a note file
NOTE_FILE="$NOTE_DIR/note_$(date +%Y%m%d)__${NOTE_NAME}.md"
NOTE_TEMPLATE_STR="# $(LANG=C date +"%Y%m%d %a") ${NOTE_NAME}\n"
if [ ! -f $NOTE_FILE ]; then
  echo "$NOTE_TEMPLATE_STR" >> $NOTE_FILE
fi

# append text to the note file
NOTE_DESC=${${@:2}:-""}
if [ "$NOTE_DESC" != "" ]; then
  echo "$NOTE_DESC" >> $NOTE_FILE
fi

# show the note path
echo "$NOTE_NAME: $NOTE_FILE"

# edit the note file
$editor $NOTE_FILE

必要に応じて $HOME/bin にPATHを通しておく。

~/.zshrc
export PATH="$HOME/bin:$PATH"

使い方

Usage
note [メモ番号] [...メモ追記内容]

noteコマンド実行例

# メモを作成してエディターを開く(デフォルトのメモ番号は1)
note

# メモ番号を指定してエディターを開く
note 1
note 99

# 数値以外も指定可能(メモ番号はファイル名と見出しになる)
note hello

# 第二引数以降の文字列はメモに追記される
note 1 hello
note 1 hello world
note 1 "foo bar baz"
# 今日作成したメモ一覧を表示する
note ls

補足

  • 必要に応じてzshスクリプトを変更してください
6
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3