Obsidianで編集しないフォルダを同期しない方法【Remotely Save】

// CONTENTS

iPhoneで編集するときに、不要なファイルまで表示されるのが嫌だった。なんてたってnode_modulesフォルダが尋常ではないファイル数なのだ。一フォルダくらいしか編集しないのにフォルダ階層も多い。それを解決したくて、その編集しないフォルダ、表示させたくないフォルダをインデックスしないようにする方法を色々と漁っていた。Obsidian標準の除外ファイル設定、プラグインのExcluded Filesと試してみて、結局のところ、元々入っていたDropboxを経由させるRemotely Saveの設定で制御という形に落ち着いた。その経緯を残しておこうと思う。

試してみたこと

試してみたことはこの4つ。

  • .obsidianignoreファイルを作る
  • Obsidianにデフォルトであるファイル除外設定をする
  • プラグインのExcluded Filesのファイル除外設定をする
  • Remotely Saveのファイル同期設定をする

この順番に一つ一つ試したことを書いていく。 この他に試せることと言えば、無視したいフォルダの先頭に.(ドット)をつけて、Obsidianのインデックスから除外するという方法もあった。しかし、この方法はファイル名変更になり、ビルドできなくなるため省いた。

ignoreファイルを作る

.obsidianignoreというファイルを作り、直下に置いてみた。.gitignoreや.obsidianフォルダができていた場所と同じ階層である。.gitignoreと同じように、フォルダを指定する。

node_modules/
dist/

Obsidianで開いてみてもさっぱり効いてなかった。ChatGPTに相談して戻ってきた回答だったが、後から調べると、プラグインがないとこのファイルは動作しないことが判明。

Obsidianのファイル除外設定をする

Obsidianの設定>ファイルとリンク高度な設定という項目がある。その中にある除外ファイル。 高度な設定の中にある除外ファイル ここから管理して、ファイルやフォルダを指定できる。しかし、この設定でもサイドバーのインデックスは消えなかった。調べると、Obsidian内のGrep(全ファイル検索)を使うときに検索除外になるだけらしい。それでは困る。

Excluded Filesのファイル除外設定をする

コミュニティプラグインのExcluded Files。これを入れると、オプションから.obsidianignoreというファイルを読み込んで、勝手にインデックスから外してくれた。 ただし、いちいち読み込みに時間がかかることが難点。僕のnode_modulesは重いらしい。
Excluded Filesプラグインの設定
特にiPhoneのObsidianでこのプラグインを入れた場合、Vaultを開き直すたびに、10秒以上時間を要する。毎度インデックスを読み込み直しているらしく、ものすごく重い。その動作がキャッシュとして保存されたりもできないのかも一応調べてみたが、そのような設定をする項目もない。そのため、他にいい方法はないかとまた探すことに。

Remotely Saveのファイル同期設定をする

Remotely Saveというプラグインはこちらの記事でも書いたように、Dropboxを他デバイスのObsidianでも同期するプラグインである。このプラグインの設定にRegex Of Paths To Ignore(無視するパスの正規表現)という項目があるが、そこにファイルを記述していく。 Remotely SaveのRegex Of Paths To Ignore設定 一度同期してしまったフォルダやファイルは勝手には消えない。そのため手動で消す必要がある。フォルダの消し方だが、Schedule For Auto Run(自動同期スケジュール)を一番間隔の短い1分にして、1分待ったのち、同期しないファイルを削除する方が安全。 Remotely SaveのSchedule For Auto Run設定

ここの設定はVaultから除外するのではなく、同期対象にするか選別する仕組みで動いている。そのため、このObsidianからnode_modulesやdistフォルダを削除しても、リポジトリやファイル自体が消えることにはならない。

どうせならと思って僕は画像と記事のみをiPhoneで閲覧できれば良いというスタンスだったので、このようにRegex Of Paths To Allow(許可するパスの正規表現)に追加した。 Remotely SaveのRegex Of Paths To Allow設定

^public/images/
^src/content/blog/

Dropboxでファイル管理している人にはこの方法がスマートだと思う。自動同期から外すことになるので、Obsidianのロードに時間がかかることもない。ロードも短く、すぐに書きたいと思ったときに書けるのは良いことだと思う。

これさえ覚えておけばOK

  1. Dropboxで管理している場合は、Remotely Saveのファイル同期設定をする
  2. Dropboxなどのクラウドで管理していない場合は、Excluded Filesで除外する

まとめ

ここまででRemotely Saveは多方面から良い働きをするプラグインだと実感した。DropboxのファイルをiPhoneのObsidianで編集できて、更には表示するファイルまで指定できる。最初に全てのファイルを読み込んでいると、どうしても後から非表示にするのは処理が重くなってしまうもんなのかなあ。

// SIGNAL

旅・日常・Webの解決ログ。東南アジアを放浪中。[ ABOUT ]
疑問や苦情などはこちら @driftingtape