torikatsu923.dev

サイト内検索

    【zsh】ターミナルでサクッとメモを取るための設定

    いきなりですが、あなたは今ターミナルで作業をしています。巧みなキーボードさばきで様々なコマンドをバシバシと打ち込みタスクを進めています。

    いきなりですが、あなたは今ターミナルで作業をしています。 巧みなキーボードさばきで様々なコマンドをバシバシと打ち込みタスクを進めています。 そんな作業中ふとgitのコミットIDを控えたくなりました。

    そんな時あなたはどうしますか?

    • OSデフォルトのメモアプリを開く
    • evernoteを開く
    • 手元のメモ帳にペンでメモ書きする

    …etc

    色々な方法があると思います。
    せっかくターミナルで作業をしているなら、ターミナルでメモを取れるようにしたいですよね

    f:id:torikatsu923:20210911232556p:plain

    今回はzshでコマンドのインストールなしでメモを取るための簡単な設定を紹介したいと思います。

    メモの設定のステップ

    ターミナルでサクッとメモをとるためには、以下の3ステップが必要になります。

    1. メモのファイルを置くディレクトリを作成する
    2. メモのファイルを作成する
    3. ターミナル上で動作するエディタでファイルを開く

    例えば以下のコマンドで上のステップを実行することができます。

    $ mkdir ~/memo
    $ touch ~/memo/foo.md
    $ vim ~/memo/foo.md

    でも毎回コマンドを叩くのは面倒だと思います。 なので、この一連のステップを関数にして、.zshrcに関数を呼び出すためのエイリアスを登録します。

    .zshrcの設定

    以下を.zsrhcに追記します。

    # memo alias
    function writeMemo() {
      MEMO_HOME=$HOME/memo
      MEMO_FILE=$MEMO_HOME/$(date +%Y_%m_%d).md
      if [[ -d $MEMO_HOME ]] then
        mkdir $MEMO_HOME -P
      fi
      if [[ -f $MEMO_FILE ]] then
        touch $MEMO_FILE
      fi
      vim $MEMO_HOME/`date +%Y_%m_%d`.md
    }
    
    alias memo=writeMemo

    .zshrcを更新したら.zshrcの再読み込みをします。

    $ source ~/.zshrc

    これで以下のコマンドでメモを取れるようになりました!

    $ memo

    この設定の嬉しいこと

    今回紹介した設定で嬉しいことはたくさんあります!
    例えば…

    • キーボードのみで操作可能

      vim, vim, neovim, emacs, nano, vimといったターミナルで動くエディタを使用するのでキーボードのみで操作が可能です

    • シームレスにメモを取ることができる

      メモを取るためにアプリを移動する必要がないため、非常に高速にメモを取り始めることができます。  エディタにvimを選択している場合<C-z>でメモをバックグランドにし、ターミナルの様子を確認したあと$ fgでメモを再開することができるのも大きなメリットです。
      特にtmuxとのコンビネーションは最強なのでおすすめです。

    • メモ全体をgrepできる

      以下のようにメモ全体に対してgrepすることができます。
      cat ~/memo/* | grep '検索したい文字列'

    • バックアップが簡単

      以下のコマンドで簡単にバックアップを取ることができます。
      tar ~/memo | gzip > backup.tar.gz
      githubのプライベートリポジトリと連携し定期的にメモ同期することで、あらゆるPCでメモを共有することができるかもしれません

    • 任意の形式でメモを取ることができる

      生成するメモのファイル名を自由に指定することができるため、任意の拡張子のファイルを生成することができます。これにより、任意の形式でメモを取ることができます。
      今回紹介した設定では.mdを指定しているためマークダウン形式です。ここに.yamlや.json、 .htmlを指定することもできます()
      またエディタ側の設定次第でシンタックスハイライトや入力補完を有効にすることができます。

    おわりに

    今回はターミナルでメモを取るための簡単な設定を紹介しました。
    もし今回紹介した設定が誰かの生産効率UPにつながれば幸いです!

    -––