Neovimを使ったノートの取り方、nvim-orgmodeとoil.nvimの話
はじめに
ノートの取り方についてなかなかやり方が決まらずにいて、いろいろと試してきましたが最近になって概ね固まってきました。これまではnvim-orgmodeで日々のタスク管理と時間の記録を、Neorgで日報やドキュメントなどを管理していました。
最近Neorgのv8.0.0で破壊的な変更が入ったこともあり[1]、それのキャッチアップをするか、nvim-orgmodeに一本化するか悩んでいました。その結果として、nvim-orgmodeに一本化して運用していくことに決めました。
この記事では、nvim-orgmodeを使ってどのようにノートを取っているのか、一本化したことで見つかったお悩み(oil.nvimまわり)について書いていきます。
ノートの取り方
まずはnvim-orgmodeをどのように使っているのかについて書いていきます。
nvim-orgmode自体がどのようなものなのかについては、リポジトリを参照ください。
ディレクトリ構成
まずはディレクトリ構成について、現在の環境はこんな感じです。
~/notes/org/
├── agenda
│ ├── inbox.org
│ ├── project-a.org
│ └── project-b.org
├── archive
│ └── inbox.org_archive
├── documents
├── inbox.org
├── index
├── journal
│ └── 2024-04.org
├── journal.org
└── notes
それぞれについて説明していきます。
agenda
タスク管理では、agenda
の下にプロジェクトなどの分けたい単位でorg
ファイルを作成して管理します。とりあえずタスクを入れる場所としてinbox.org
も置いてあります。とりあえず入れられる場所があると迷わなくて良いかなと思い作成しています。
inbox
index
には、ファイルの場所、Web記事などを記載します。記載する際には、Telescope.nvimを使って検索しやすい名前やタグを意識して記録します。このようにファイルやリンクを記録することで、nvim-orgmodeの<Leader>oo
を使用してファイルや記事を開けるようになります。ただ、ここにはお悩みポイントがありまして、それについては後述します。
archive
archive
はagenda
でアーカイブしたタスクが保存される場所です。
journal
journal
は日報の過去ログ。最新のものはjournal.org
に記載します。journal
ディレクトリ内で全て管理しても良かったんですが、この中から最新の日付のものを探すのは面倒かなーと思い、とりあえずこのファイル開いて最後までスクロールすればOKという形にしました。
documents
documents
は人に見せることを目的として記載したものを保存するディレクトリです。共有する際にはOenNoteなどのサービスを利用したいと考えています。が、いまのところまだ使ってないです。
共有する前提なのでMarkdownにエクスポートする仕組みがあると良いなーと思いましたが、いったんは考えないものとして必要に応じてフォーマットを修正する運用にしようと思います。これでクリティカルに困ることがあれば何か手を考えようかなと思います。
notes
notes
はjournal
とdocuments
の中間的な位置付けです。人に見せるほどまとまってないけど、ある程度まとまった内容を記載するのであればここに保存します。都度documents
に移動していく形です。
日々の運用
運用については、ディレクトリ構成の紹介で概ね想像できる内容かとは思います。journal
で日々の記録、notes
にドラフト版のドキュメントを作成、documents
に清書、index
に必要なリンクを残し、agenda
でタスク管理とそれらの時間記録をつけています。
長らく悩んでいたところがスッキリする構成を構築できたかなと思うので、しばらくこれでノートを取っていこうと思います。
細かい設定内容については私のdotfilesに格納してありますので参考にしていただけたらと思います。
nvim-orgmodeとoil.nvimについて
ここからは設定していく上で動作的に気になった箇所があるのでメモ書きとして残しておきます。
nvim-orgmodeではハイパーリンクをサポートしており、<Leader>oo
でURLもしくはパスで指定されたファイルを開けます。このとき、nvim-orgmodeではnetrwの機能を用いてファイルのオープンを実行しているようです。
一方でoil.nvimでは、デフォルトでnetrwを無効にする挙動をしています。
このため、これらが競合するとnvim-orgmodeにてハイパーリンクを開けない状態になります。
以前にNeorgを使用していたときは、norg
ファイルに記載されたハイパーリンクを特段の設定なく開けていたので、Neorgではどのようにファイルを開いているのか確認しました。
どうやらOSごとに開くためのコマンドを呼び分けているようです。
ついでにoil.nvimにて、ファイルを外部コマンドで開く処理を確認しましたが、こちらも同じくOSごとにコマンドを呼び分けているようです。
ということで調べた感じでは、nvim-orgmodeがnetrwを介してファイルを開くのでなく、OSごとにコマンドを呼び分けるつくりであれば競合することなく動作しそうだなーという感じでした。nvim-orgmodeのコミットログを遡ってみましたが、もとからOSで呼び分けることは考えずにnetrwを一貫して使用しているようです。
いったんはoil.nvimでnetrwを無効にしないように設定すれば期待通りに動作するので、今回はその方向でコンフィグを修正としました。(nvim .でoil.nvimを開きたい需要も今のところないので)
おわりに
ということで、nvim-orgmodeを使用した自分なりのノートの取り方について記事を書きました。
余談ですが、このように記事を書くのは今回がはじめてなので少しドキドキです。今後もなにかしら記事を更新していけたらなと思っています。
Discussion