[[Tab Stacks]]を使わなくても大きなデメリットはなく、[[Neovim]]と操作性をあわせられることや、分割の自由度が増すメリットのほうが大きい。
## 経緯
以下の[[ADR]]で[[Obsidian]]では[[Tab Stacks]]を利用してきた。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
💿OBS-0002 Tab Stacksを使う
</div>
<div class="link-card-v2-content">Obsidian v0.16でTabとTab Stacksの概念が追加された。これにより、今までとは操作性が大きく変わるため、この機会にObsidian利用時の戦略やキーバインドを見直そうと思った。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/obs-adr.webp" />
<a data-href="💿OBS-0002 Tab Stacksを使う" class="internal-link"></a>
</div>
%%[[💿OBS-0002 Tab Stacksを使う]]%%
しかし、[[Neovim]]の習熟度が上がるにつれて、[[Tab Stacks]]によるエディタ分割に違和感を覚えるようになり、[[Neovim]]の[[ウィンドウ (Vim)|ウィンドウ]]・[[バッファ (Vim)|バッファ]]・[[タブ (Vim)|タブ]]のような戦略をとりたくなった。
[[Tab Stacks]]を当時採用したときに洗い出したメリット・デメリットが、現在においても有効化どうかを検証したうえで、そうでなければ[[タブグループ (Obsidian)|タブグループ]]を利用した戦略をとりたい。
## 提案内容
[[Tab Stacks]]を利用したエディタの分割戦略ではなく、[[タブグループ (Obsidian)|タブグループ]]を利用した[[Neovim]]に近しい分割戦略を採用する。
### 具体的な方針
| Neovimの概念 | Obsidianでの再現手法 |
| ---------------------- | ----------------------------- |
| [[バッファ (Vim)\|バッファ]] | なし[^1] |
| [[ウィンドウ (Vim)\|ウィンドウ]] | [[タブグループ (Obsidian)\|タブグループ]] |
[^1]: [[#バッファ (Vim) バッファ の表現は必要か?]]で補足
## 承諾した場合の結果
### メリット
- 左右分割したときにエディタの横幅を固定できる
- 好みの問題もあるが、**[[Neovim]]と同じ仕様であることはメリット**
- 上下分割したときにエディタの横幅が最大にならない
- 格子上にエディタを配置したいときに便利
- もちろん **[[Neovim]]と同じ仕様であることがメリット**
- 分割後に各エディタのサイズを動的に変更できる
- 固定の資料参照領域を並べて作業するときは便利
### デメリット
- 分割数が多くなっても、アクティブなエディタの横幅を自動で伸ばすことができない
- トレードオフなのでここは仕方ない
- **[[Neovim]]とは異なる仕様になるのでそれがデメリット**でもあると言える
### [[💿OBS-0002 Tab Stacksを使う]]のメリットはどうなる?
[[Tab Stacks]]を使い続けることによる大きなメリットない。
以下は『当時洗い出した[[Tab Stacks]]のメリット』に対するコメント。
- **横の解像度があれば直前に開いた複数のNoteを同時閲覧できる**
- ✅ [[タブグループ (Obsidian)|タブグループ]]による横方向の分割でも可能
- 加えて
- ✅ 分割可否をキーで選択可能
- ✅ [[Neovim]]と同じ操作感で[[コンテキストスイッチ]]の切り替えコスト低
- **`Alt+左`と`Alt+右`と負荷の少ないキーバインドで左右に移動できる**
- ❓ `<C-w>k` と `<C-w>l` なので少し大変かも
- ✅ [[Neovim]]と同じ操作で[[コンテキストスイッチ]]の切り替えコスト低
- **ほとんどのケースで[[タブグループ (Obsidian)|ペイン]]を意識しなくていい (シンプル)**
- ❓ [[タブグループ (Obsidian)|タブグループ]]([[タブグループ (Obsidian)|ペイン]])を意識しなくていいことは本質的なメリットではない
- ✅ [[Neovim]]と同じ操作で[[コンテキストスイッチ]]の切り替えコスト低
- **カッコイイ**
- ❓ これは好みの問題な気がする
全体的に[[Tab Stacks]]のメリットは[[タブグループ (Obsidian)|タブグループ]]に対しても言えることが多い、もしくはトントンである。
### [[バッファ (Vim)|バッファ]]の表現は必要か?
[[Neovim]]の[[バッファ (Vim)|バッファ]]に相当する表現を[[Obsidian]]でする必要があるか? 答えはNoだ。
[[Neovim]]で[[バッファ (Vim)|バッファ]]を意識するケースは大きく2通りあるが、[[バッファ (Vim)|バッファ]]の改善再現を頑張って実現するような大きな動機は存在しない。
- **保存されていない編集中のモノは何か?** を把握するため
- **[[Obsidian]]は2秒おきにオートセーブが走るので、↑の用途では不要**
- 開かれた[[バッファ (Vim)|バッファ]]を参照して素早く[[ウィンドウ (Vim)|ウィンドウ]]にアタッチしたいため
- [[barbar.nvim]]で `<Space>e` + 1文字 で該当[[バッファ (Vim)|バッファ]]をアタッチできる
- これはこれで便利だけど、[[🦉Another Quick Switcher]]の[[Recent search]]相当でも実現できる
- 現在の[[タブ (Vim)|タブ]]に上書きされてしまうが、キーバインドや設定にて新しい[[タブ (Obsidian)|タブ]]を開くようにすれば似たようなことができる
- そこまでは必要ない気がする
- [[Neovim]]と少し[[コンテキストスイッチ]]の切り替えは必要だが、許容範囲
## 参考
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
🧠Obsidianの新しいタブグループ操作戦略を考える
</div>
<div class="link-card-v2-content">Neovimのようなウィンドウ・バッファ管理に近いかたちを実現できないかという話。最終的にはADRに移動する可能性が高いかも。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/brain.webp" />
<a data-href="🧠Obsidianの新しいタブグループ操作戦略を考える" class="internal-link"></a>
</div>
%%[[🧠Obsidianの新しいタブグループ操作戦略を考える]]%%