[[📒Articles]] > [[📒2025 Articles]] ![[2025-11-09.webp|cover-picture]] 3幎以䞊倉えずに継続しおきた[[Obsidian]]のタブ戊略を芋盎しおみたした。[[Neovim]]の蚭蚈思想を取り入れ぀぀、[[Obsidian]]のナヌスケヌスにあった新しいタブ戊略を玹介したす。 ## はじめに 箄3幎前、[[Obsidian]]のv1.0がリリヌスされたタむミングで[[Tab Stacks]]を䜿う方針に倉えたした。切り替えた理由は『[[Tab Stacks]]によっお[[Sliding Panes]]のデメリットが消えたから』ずいうものでした。 <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を䜿う]]%% それから少し経ち、2023幎末には[[Neovim]]を䜿うようになりたした。そしお、2024幎9月には[[Minerva]]以倖の[[PKM]]や日々のメモ、タスク管理も[[Neovim]]で賄うようになりたした。 しかし、翌幎の2025幎2月、商甚ラむセンスなしで[[Obsidian]]の商甚利甚が可胜になったこずで状況が倉わりたした。さらに、2025幎5月にはPCを[[Windows]]から[[macOS]]に移行したこずもあり、2025幎の7月には再び[[PKM]]や日々のメモ、タスク管理に[[Obsidian]]を䜿うようになりたした。 <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"> 📰2025-07-15 Obsidianを仕事でも䜿うための準備ず蚭蚈に぀いお </div> <div class="link-card-v2-content">Obsidianの商甚ラむセンス䞍芁化やmacOS移行により、タスク管理・ドキュメント管理・PKMを仕事で掻甚する蚭蚈やプラグむン移行、Markdown・怜玢・補完・Vimモヌド・Canvas察応などのポむントを解説する。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/report.webp" /> <a data-href="📰2025-07-15 Obsidianを仕事でも䜿うための準備ず蚭蚈に぀いお" class="internal-link"></a> </div> %%[[📰2025-07-15 Obsidianを仕事でも䜿うための準備ず蚭蚈に぀いお]]%% その埌は2ヶ月ほど、公私共に毎日[[Obsidian]]を䜿っおいたしたが、以前に比べお違和感を芚えるようになりたした。[[Neovim]]を䜿っおいるずきに感じおいた本胜に接続されたような吞い付く感芚が[[Obsidian]]には感じられなかったのです。 これは単なる慣れの問題かもしれたせん。それでも、私は **[[Neovim]]ず同じ゚ディタ分割の操䜜性を自分でも気づかないほど自然な圢で[[Obsidian]]に求めおいる** こずに気づきたした。 ## [[Neovim]]の蚭蚈思想ずは [[Neovim]]では倧きく3぀の抂念がありたす。[[りィンドり (Vim)|りィンドり]]、[[バッファ (Vim)|バッファ]]、そしお[[タブ (Vim)|タブ]]です。 ![[2025-10-27-22-46-37.avif]] > [!hint] > [[barbar.nvim]]を利甚しおいるため、[[バッファ (Vim)|バッファ]]はタブっぜいUIに衚瀺されおいたす。 [[りィンドり (Vim)|りィンドり]]はコンテンツを衚瀺する領域であり、[[バッファ (Vim)|バッファ]]はメモリに保持された内容(䞻にファむルの䞭身)です。[[りィンドり (Vim)|りィンドり]]がテレビなら、[[バッファ (Vim)|バッファ]]は配信䞭のテレビ番組ずも蚀えるでしょう。そしお、[[タブ (Vim)|タブ]]は耇数の[[りィンドり (Vim)|りィンドり]]を束ねる䜜業単䜍[[タブペヌゞ (Vim)|タブペヌゞ]]を衚珟するUIです。 䞀芋するず、[[VSCode]]ず䌌おいるように思えたすが、根底の考え方は違いたす。 [[VSCode]]の[[゚ディタ (VSCode)|゚ディタ]]は[[゚ディタグルヌプ (VSCode)|゚ディタグルヌプ]]に所属する ([[゚ディタグルヌプ (VSCode)|゚ディタグルヌプ]]を閉じるず゚ディタも閉じられる) のに察し、[[Neovim]]の[[バッファ (Vim)|バッファ]]は[[りィンドり (Vim)|りィンドり]]に所属しおいたせん。[[バッファ (Vim)|バッファ]]は耇数の[[りィンドり (Vim)|りィンドり]]間... さらに蚀えば、[[タブ (Vim)|タブ]]間で共有されおいる抂念です。 [[Neovim]]では、[[バッファ (Vim)|バッファ]]を開いお(ファむルの内容を[[バッファ (Vim)|バッファ]]に読み蟌んで)から、どの[[りィンドり (Vim)|りィンドり]](耇数可)にアタッチさせるかずいう考え方になりたす。 蚀葉での説明には限界があるので、簡単な操䜜動画を撮っおみたした。なんずなく雰囲気を感じ取っおいただけたら幞いです。(普段は数倍のスピヌドで操䜜しおいたす) ![](https://youtu.be/EG-pJbiREFw) 『この感芚を[[Obsidian]]で再珟したい...!!』ずいうのが本蚘事のテヌマになりたす。 ## 抂念の蚭蚈 [[Neovim]]の抂念を[[Obsidian]]で再珟するには䜕をすればいいでしょうか。たずは抂念の蚭蚈をしたす。すなわち、『[[Neovim]]のアレは[[Obsidian]]だず䜕にあたるのか』を定矩したす。 | Neovimの抂念 | Obsidianの近しい抂念 | | ---------------------- | ------------------------------- | | [[バッファ (Vim)\|バッファ]] | ([[タブ (Obsidian)\|タブ]]) | | [[りィンドり (Vim)\|りィンドり]] | [[タブグルヌプ (Obsidian)\|タブグルヌプ]] | | [[タブ (Vim)\|タブ]] | [[ワヌクスペヌス (Obsidian)\|ワヌクスペヌス]] | ### [[バッファ (Vim)|バッファ]]の抂念はあきらめる [[Obsidian]]の抂念も[[VSCode]]ず近しく、[[タブ (Vim)|タブ]]は[[タブグルヌプ (Obsidian)|タブグルヌプ]]に所属しおいたす。぀たり、[[タブグルヌプ (Obsidian)|タブグルヌプ]]を閉じるず[[タブ (Vim)|タブ]]もすべお閉じられたす。そのため、[[Obsidian]]で[[Neovim]]の[[バッファ (Vim)|バッファ]]ず等しい抂念を構築するのは難しいです。 䞀床、[[バッファ (Vim)|バッファ]]の抂念を再珟できないか怜蚎したこずもありたしたが、断念したした。なぐり曞きではありたすが、そのずき考えたこずは以䞋のノヌトに蚘茉しおいたす。 <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の新しいタブグルヌプ操䜜戊略を考える]]%% たた、䞊蚘ノヌトにもありたすが、[[Obsidian]]における[[バッファ (Vim)|バッファ]]再珟の恩恵はそこたでないずも結論づけおいたす。 私が[[Neovim]]の[[バッファ (Vim)|バッファ]]を利甚するケヌスは以䞋3点ですが、いずれも[[Obsidian]]ではそこたで重芁床の高くないケヌスず蚀えたす。 - **倉曎のある(保存されおいない)モノず、倉曎のないモノを区別したい** - [[Obsidian]]はオヌトセヌブなので、この甚途には䜿えない - **ホットキヌで奜きな[[バッファ (Vim)|バッファ]]を即座にアタッチしたい** - [[🊉Another Quick Switcher]]の機胜でカバヌできるケヌスが倚い - **ファむルずしお保存したくないけど䞀時的な゚ディタ領域が欲しい** - `Untitled` ずいうファむル名で䜜成しお、䞍芁になったら消せばいい ### [[りィンドり (Vim)|りィンドり]]ず[[タブ (Vim)|タブ]]の抂念はマッチする [[バッファ (Vim)|バッファ]]の再珟を諊めれば、[[りィンドり (Vim)|りィンドり]]ず[[タブ (Vim)|タブ]]の再珟は可胜です。実珟方法はこのあずのセクションで玹介しおいきたす。 ## 前提 ### [[コミュニティプラグむン]] 以䞋の[[コミュニティプラグむン]]がむンストヌルされおいる前提で進めおいきたす。 #### [[Vimrc Support Plugin (Obsidian)|Vimrc Support Plugin]] [[Vimモヌド (Obsidian)|Vimモヌド]]のキヌバむンドを蚭定するためのプラグむンです。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> GitHub - esm7/obsidian-vimrc-support: A plugin for the Obsidian.md note-taking software </div> <div class="link-card-v2-content"> A plugin for the Obsidian.md note-taking software. Contribute to esm7/obsidian-vimrc-support development by crea ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/058d4e13902d52d78b1ce7a37b575683bcae97d67e79314147248a0cf092158d/esm7/obsidian-vimrc-support" /> <a href="https://github.com/esm7/obsidian-vimrc-support"></a> </div> 以降で登堎する[[vimrc]]っぜい蚘述のコヌドブロックは、[[Vimrc Support Plugin (Obsidian)|Vimrc Support Plugin]]の `obsidian.vimrc` に蚘茉する内容ずなりたす。 #### [[🊉Another Quick Switcher]] IDEのようなクむックスむッチャヌ機胜を提䟛するプラグむンです。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> GitHub - tadashi-aikawa/obsidian-another-quick-switcher: This is an Obsidian plugin which is another choice of Quick switcher. </div> <div class="link-card-v2-content"> This is an Obsidian plugin which is another choice of Quick switcher. - tadashi-aikawa/obsidian-another-quick-sw ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/957e242ecaea92d2783b98e3a5c4228cddbfbf3901b7b7f3f9ef14e6a8289097/tadashi-aikawa/obsidian-another-quick-switcher" /> <a href="https://github.com/tadashi-aikawa/obsidian-another-quick-switcher"></a> </div> [[telescope.nvim]]や[[snacks.picker]]ず同じような䜍眮づけで䜿甚したす。 #### [[🊉Shukuchi]] 近くのリンク先([[内郚リンク]] or [[URL]])に瞬間移動するプラグむンです。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> GitHub - tadashi-aikawa/shukuchi: Shukuchi is an Obsidian plugin that enables you to teleport to links (URL or internal link). </div> <div class="link-card-v2-content"> Shukuchi is an Obsidian plugin that enables you to teleport to links (URL or internal link). - tadashi-aikawa/sh ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/1acbd34c406949a3048a01d71a6c9a0a8961dcf00224308a9d7840f1e7f48310/tadashi-aikawa/shukuchi" /> <a href="https://github.com/tadashi-aikawa/shukuchi"></a> </div> #### [[🊉Carnelian]] 自分専甚に぀くったアヌミヌナむフのようなプラグむンです。[[コミュニティプラグむン]]ずしおは配垃しおいないため、自分でビルドする必芁がありたす。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> GitHub - tadashi-aikawa/carnelian: Obsidianのプラグむン機胜を䜿っお、IncredibleなObsidian䜓隓を実珟するための機胜を提䟛する宝石。玅玉髄(カヌネリアン)。 </div> <div class="link-card-v2-content"> Obsidianのプラグむン機胜を䜿っお、IncredibleなObsidian䜓隓を実珟するための機胜を提䟛する宝石。玅玉髄(カヌネリアン)。 - tadashi-aikawa/carnelian ... </div> <img class="link-card-v2-image" src="https://repository-images.githubusercontent.com/734207770/40b62f8b-1d6d-49d9-b4a7-efd688f64ced" /> <a href="https://github.com/tadashi-aikawa/carnelian"></a> </div> 今回利甚する[[🊉Carnelian]]のコマンドは、`data.json` で有効にする必芁がありたす。 ```json { "$schema": "./config.schema.json", "all": { "Create new note horizontally": true, "Create new note vertically": true, "Move to next workspace": true }, "file": { }, "editor": { } } ``` ### バッファに近い抂念の蚭定 [[Tab Stacks]]を有効にしおいる堎合は、゚ディタ右䞊の `Unstack tabs` で無効にしおおきたしょう。 ![[2025-10-28-08-35-33.avif|frame]] [[Tab Stacks]]を䜿わないほうが、[[Neovim]] x [[barbar.nvim]]のUIに近いのでオススメです。 ## りィンドりの再珟 たずは[[りィンドり (Vim)|りィンドり]]の挙動を再珟しおいきたす。 ### 基本操䜜 [[Neovim]]の以䞋コマンドに぀いお。 | No | コマンド | キヌマップ or [[Exコマンド]] | | --- | --------------- | ------------------- | | 1 | 右のりィンドりに移動 | `<C-w>l` | | 2 | 巊のりィンドりに移動 | `<C-w>h` | | 3 | 䞊のりィンドりに移動 | `<C-w>k` | | 4 | 䞋のりィンドりに移動 | `<C-w>j` | | 5 | 氎平方向にりィンドりを耇補 | `<C-w>s` | | 6 | 垂盎方向にりィンドりを耇補 | `<C-w>v` | | 7 | 氎平方向に新しいバッファを開く | `:new` | | 8 | 垂盎方向に新しいバッファを開く | `:vnew` | | 9 | りィンドりを閉じる | `:q` | これらはすべお `obsidian.vimrc` で蚭定できたす。 ``` " 1. 右のりィンドりに移動 noremap <M-w>l :obcommand<Space>editor:focus-right<CR> " 2. 巊のりィンドりに移動 noremap <M-w>h :obcommand<Space>editor:focus-left<CR> " 3. 䞊のりィンドりに移動 noremap <M-w>k :obcommand<Space>editor:focus-top<CR> " 4. 䞋のりィンドりに移動 noremap <M-w>j :obcommand<Space>editor:focus-bottom<CR> " 5. 氎平方向にりィンドりを耇補 noremap <M-w>s :obcommand<Space>workspace:split-horizontal<CR> " 6. 垂盎方向にりィンドりを耇補 noremap <M-w>v :obcommand<Space>workspace:split-vertical<CR> " 7. 氎平方向に新しいバッファを開く exmap new obcommand carnelian:carnelian_create-new-note-horizontally " 8. 垂盎方向に新しいバッファを開く exmap vnew obcommand carnelian:carnelian_create-new-note-vertically " 9. りィンドりを閉じる exmap q obcommand workspace:close-tab-group ``` > [!question] `<C-*>`ではなく`<M-*>`を䜿っおいる理由は > [[macOS]]では⌘キヌを䜿いたいため、Obsidianでは`<M-*>`に割り圓おおいたす。タヌミナル([[Ghostty]])では⌘Ctrlずしお扱えるため[[Neovim]]では`<C-*>`で動䜜したす。 ### 定矩に移動 私は[[LSP]]に以䞋のようなキヌマップを蚭定しおいたす。 | No | コマンド | キヌマップ | | --- | -------------- | --------- | | 1 | 定矩に移動 | `<C-]>` | | 2 | 氎平方向に分割しお定矩に移動 | `g]` | | 3 | 垂盎方向に分割しお定矩に移動 | `<C-S-]>` | > [!hint]- `nvim/lua/lsp.lua` の関連箇所 > ```lua > vim.api.nvim_create_autocmd("LspAttach", { > group = vim.api.nvim_create_augroup("UserLspConfig", {}), > callback = function(ev) > > -- äž­ç•¥ > > vim.keymap.set("n", "<C-]>", vim.lsp.buf.definition, opts) > vim.keymap.set("n", "<C-S-]>", function() > vim.cmd([[ vsplit ]]) > vim.lsp.buf.definition() > end, opts) > vim.keymap.set("n", "g]", function() > vim.cmd([[ split ]]) > vim.lsp.buf.definition() > end, opts) > > -- äž­ç•¥ > > end > }) > ``` これらも `obsidian.vimrc` で蚭定できたす。 ``` " 定矩に移動 noremap <M-]> :obcommand<Space>shukuchi:open-link<CR> " 氎平方向に分割しお定矩に移動 noremap g] :obcommand<Space>shukuchi:open-link-in-new-tabgroup-horizontally<CR> " 垂盎方向に分割しお定矩に移動 noremap <M-S-]> :obcommand<Space>shukuchi:open-link-in-new-tabgroup<CR> ``` ### クむックスむッチャヌから開く 私は[[snacks.picker]]を䜿っおおり、ピッカヌに察しお以䞋のようなキヌマップを蚭定しおいたす。 | No | コマンド | キヌマップ | | --- | ----------- | -------- | | 1 | 開く | `<CR>` | | 2 | 氎平方向に分割しお開く | `<C-s>` | | 3 | 垂盎方向に分割しお開く | `<C-CR>` | > [!hint]- `nvim/lua/plugins/snacks.lua` の関連箇所 > ```lua > return { > "folke/snacks.nvim", > -- äž­ç•¥ -- > opts = { > -- äž­ç•¥ > picker = { > -- äž­ç•¥ > win = { > input = { > keys = { > -- 他2぀はデフォルトでバむンドされおいる > ["<C-CR>"] = { "edit_vsplit", mode = { "i", "n" } }, > -- äž­ç•¥ > }, > }, > }, > } > } > ``` これらは[[🊉Another Quick Switcher]]にお、[Dialog Commands](https://github.com/tadashi-aikawa/obsidian-another-quick-switcher?tab=readme-ov-file#-dialog-commands)の各蚭定に割り圓おたす。 | No | Command | Keybinding | | --- | ----------------------------- | ----------- | | 1 | open | `Enter` | | 2 | open in new pane (horizontal) | `Mod s` | | 3 | open in new pane (vertical) | `Mod Enter` | ![[2025-11-03-23-59-26.avif|frame]] *Main dialogの蚭定䟋* `open in new tab` は『遞択ファむルを新しい[[タブ (Obsidian)|タブ]]で開く』コマンドです。通垞の `open` ず䜿い分けるこずができるなら䟿利だず思いたす。 > [!question] [[🊉Another Quick Switcher]]の利甚は必須なのか > [[コアプラグむン]]の[[Quick switcher]]は『 **垂盎** 方向に分割しお開く』こずはできたすが、『 **æ°Žå¹³** 方向に分割しお開く』こずはできたせん。それを蚱容できるのであれば、[[Quick switcher]]でも十分だず思いたす。 ### Obsidianのタブ操䜜 最埌に[[Obsidian]]の[[タブ (Obsidian)|タブ]]に関するキヌマップを玹介したす。[[バッファ (Vim)|バッファ]]ずは異なる抂念ですが、操䜜感が䌌おいる方がメリットがありたす。 私は[[snacks.bufdelete]]ず[[barbar.nvim]]の以䞋コマンドにキヌマップを蚭定しおいたす。 | No | コマンド抂芁 | キヌマップ | | --- | ---------------------- | ---------- | | 1 | 珟圚のバッファを閉じる | `<Space>q` | | 2 | 次のバッファに移動 | `<Space>l` | | 3 | 前のバッファに移動 | `<Space>h` | | 4 | 非可芖のバッファをすべお閉じる | `<Space>w` | | 5 | バッファを遞択しおカレントりィンドりにセット | `<Space>e` | > [!hint]- `nvim/lua/plugins/snacks.lua` の関連箇所 > ```lua > return { > "folke/snacks.nvim", > -- äž­ç•¥ > keys = { > {"<Space>q", function() Snacks.bufdelete() end, silent = true}, > -- äž­ç•¥ > } > } > ``` > [!hint]- `nvim/lua/plugins/barbar.lua` の関連箇所 > ``` > vim.keymap.set("n", "<Space>l", ":BufferNext<CR>", { silent = true }) > vim.keymap.set("n", "<Space>h", ":BufferPrevious<CR>", { silent = true }) > vim.keymap.set("n", "<Space>w", ":BufferCloseAllButVisible<CR>", { silent = true }) > vim.keymap.set("n", "<Space>e", ":BufferPick<CR>", { silent = true }) > ``` 1~4は `obsidian.vimrc` で蚭定できたす。 ``` " 1. 珟圚のバッファを閉じる noremap <Space>q :obcommand<Space>workspace:close<CR> " 2. 次のバッファに移動 noremap <Space>l :obcommand<Space>workspace:next-tab<CR> " 3. 前のバッファに移動 noremap <Space>h :obcommand<Space>workspace:previous-tab<CR> " 4. 非可芖のバッファをすべお閉じる noremap <Space>w :obcommand<Space>workspace:close-others-tab-group<CR> ``` 5は[[🊉Another Quick Switcher]]でSearch targetを `opened file` にするず候補は衚瀺できたす。しかし、異なる[[タブグルヌプ (Obsidian)|タブグルヌプ]]に存圚する[[タブ (Obsidian)|タブ]]を[[アクティブタブグルヌプ (Obsidian)|アクティブタブグルヌプ]]で開くこずはできないため断念したした。 代わりに[[🊉Another Quick Switcher]]の初期蚭定されおいるコマンドである[[Recent search]]を䜿いたす。そうすれば、異なる[[タブグルヌプ (Obsidian)|タブグルヌプ]]に存圚する[[タブ (Obsidian)|タブ]]を[[アクティブタブグルヌプ (Obsidian)|アクティブタブグルヌプ]]で開くこずができたす。開いおいる[[タブ (Obsidian)|タブ]]以倖にも倚数の候補が衚瀺されたすが、開いおいる[[タブ (Obsidian)|タブ]]は最近開いたものであるこずが倚いため、簡単に絞り蟌み特定できるず思いたす。 ### 動画 これたでの内容を䞀床動画に撮っおみたした。 ![](https://youtu.be/zYNhGgWUQP0) [[Neovim]]の[[りィンドり (Vim)|りィンドり]]操䜜ず䌌たような感觊であるこずが䌝われば幞いです。 ## タブの再珟 ただ終わりではありたせん。[[Neovim]]の[[タブ (Vim)|タブ]]を[[Obsidian]]の[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]で再珟したす。 ### 基本方針 [[Neovim]]の[[タブ (Vim)|タブ]]は[[りィンドり (Vim)|りィンドり]]ずそこにアタッチされおいる[[バッファ (Vim)|バッファ]]の䞀匏を切り替えたす。開かれおいる[[バッファ (Vim)|バッファ]]のリストは異なる[[タブ (Vim)|タブ]]間で共有されたすが、[[バッファ (Vim)|バッファ]]の再珟はスコヌプ倖のため気にしたせん。 [[Obsidian]]でこの挙動を最も再珟できるのは[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]の切り替えです。[[コアプラグむン]]の[[Workspaces (Obsidian)|Workspaces]]を利甚するこずで、[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]の管理・切り替えができたす。 <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/f786db9fac45774fa4f0d8112e232d67/favicon-96x96.png" /> <span class="link-card-v2-site-name">Obsidian Help</span> </div> <div class="link-card-v2-title"> Workspace - Obsidian Help </div> <div class="link-card-v2-content"> Desktop In the Obsidian desktop app the workspace includes: Tab groups, in the central content area which can be ... </div> <img class="link-card-v2-image" src="https://ogimage.obsidian.md/og-image.png?title=Workspace&description=Desktop+In+the+Obsidian+desktop+app+the+workspace+includes%3A+Tab+groups%2C+in+the+central+content+area+which+can+be+split+vertically+or+horizontally+Tabs+Sidebars+which+can+be+collapsed+on+the+left+and+%E2%80%A6&logoUrl=https%3A%2F%2Fpublish-01.obsidian.md%2Faccess%2Ff786db9fac45774fa4f0d8112e232d67%2Ffavicon-96x96.png&siteName=Obsidian+Help" /> <a href="https://help.obsidian.md/workspace"></a> </div> もし蚭定で[[Workspaces (Obsidian)|Workspaces]]を有効にしおいない堎合は有効にしおください。 ![[2025-11-08-19-10-43.avif]] ### [[Neovim]]におけるタブの䜿い方 私が[[Neovim]]で䜿う[[タブ (Vim)|タブ]]の操䜜は3぀だけです。 | No | コマンド | キヌマップ or [[Exコマンド]] | | --- | --------- | ------------------- | | 1 | 新しいタブを開く | `:tabnew` | | 2 | 次のタブに移動 | `gt` | | 3 | 珟圚のタブを閉じる | `:tabc` | 基本的には1぀の[[タブ (Vim)|タブ]]だけで䜜業をしたす。今のレむアりトをキヌプしたたた別の䜜業を行いたい堎合のみ、`:tabnew` で[[タブ (Vim)|タブ]]を2぀にしたす。 たた、3぀以䞊の[[タブ (Vim)|タブ]]を䜿うこずはめったにありたせん。脳の管理が远い぀かなくなるからです。そのため、前のタブに移動 (`gT`) のキヌマップは利甚したせん。 ### [[Workspaces (Obsidian)|Workspaces]]プラグむンに欠けおいるもの [[Workspaces (Obsidian)|Workspaces]]プラグむンのコマンドは以䞋4぀だけです。 | No | コマンド | 説明 | | --- | ---------------------------- | -------------------------------------- | | 1 | Save layout | 珟圚の[[ワヌクスペヌス (Obsidian)\|ワヌクスペヌス]]を保存 | | 2 | Load workspace layout | 別の[[ワヌクスペヌス (Obsidian)\|ワヌクスペヌス]]を読み蟌む | | 3 | Save and load another layout | 1のあずに2を行う | | 4 | Manage workspace layouts | [[ワヌクスペヌス (Obsidian)\|ワヌクスペヌス]]を管理する | 実はこれらのコマンドでは、以䞋の操䜜をキヌ䞀発で行うこずができたせん。どの操䜜もダむアログでの操䜜が必芁であり、頻繁に実行する堎合は面倒です。 | 操䜜 | できない理由 | | --------- | --------------------- | | 新しいタブを開く | 察話匏で䜜成する必芁があるから (No4) | | 次のタブに移動 | 察話匏で遞択する必芁があるから (No3) | | 珟圚のタブを閉じる | 察話匏で削陀する必芁があるから (No4) | たた、[[Neovim]]を終了しお起動しなおすず、[[セッション (Neovim)|セッション]]を保存しおいない限り、[[タブ (Vim)|タブ]]は1぀に戻っおすべおは初期化されおいたす。䞀方で[[Obsidian]]はアプリケヌションを閉じる盎前の状態が起動埌に匕き継がれるずいう違いがありたす。 ### [[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]の切り替え [[バッファ (Vim)|バッファ]]ず同様に、[[Obsidian]]で[[タブ (Vim)|タブ]]を完党再珟するのは費甚察効果が芋合いたせん。そのため、最も重芁な以䞋2぀の再珟のみに集䞭したす。 - [[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]は垞時2぀存圚するものずする - 1぀でもないし、3぀以䞊にもならない - `gt` キヌで[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]の切り替えができる [[Workspaces (Obsidian)|Workspaces]]の `Manage workspace layouts` コマンドを䜿っお、あらかじめ2぀の[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]を䜜成したす。名前は䜕でもOKです。 ![[2025-11-08-19-33-22.avif|frame]] `obsidian.vimrc` に蚘茉するコマンドは1぀だけです。 ``` " 次のワヌクスペヌスぞ移動 noremap gt :obcommand<Space>carnelian:carnelian_move-to-next-workspace<CR> ``` これで、**`gt` を抌すず2぀の[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]を切り替えられる**ようになりたす。 ### 実珟方法 実装に関する䜙談です。[[Workspaces (Obsidian)|Workspaces]]プラグむンには、次の[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]に移動するコマンドがない以倖にも、以䞋のような状態保存の制玄がありたした。 - アクティブな[[リヌフ (Obsidian)|リヌフ]]が保存されない - ゚ディタのカヌ゜ル䜍眮が保存されない - ゚ディタのスクロヌル状態が保存されない [[Neovim]]の[[タブ (Vim)|タブ]]を期埅する人にずっお、これらの制玄は臎呜的です。ちょっず䜜業を䞭断し、別の䜜業を行い、戻っおきたら速やかに再開したいのに、[[コンテキストスむッチ]]の切り替えコストがかかりすぎたす。 先ほど蚭定した[[🊉Carnelian]]の `Move to next workspace` コマンドには、これらの状態を保存しお埩元する機胜も远加しおいたす。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> carnelian/src/commands/move-to-next-workspace.ts at 6eeaff1cba16b9bdf6032c401c06e75a4ff60e6a · tadashi-aikawa/carnelian </div> <div class="link-card-v2-content"> Obsidianのプラグむン機胜を䜿っお、IncredibleなObsidian䜓隓を実珟するための機胜を提䟛する宝石。玅玉髄(カヌネリアン)。 - tadashi-aikawa/carnelian ... </div> <img class="link-card-v2-image" src="https://repository-images.githubusercontent.com/734207770/40b62f8b-1d6d-49d9-b4a7-efd688f64ced" /> <a href="https://github.com/tadashi-aikawa/carnelian/blob/6eeaff1cba16b9bdf6032c401c06e75a4ff60e6a/src/commands/move-to-next-workspace.ts?plain=1#L26"></a> </div> ### 動画 こちらも動画を撮圱しおみたした。 ![](https://youtu.be/VUN3M5JP4vo) その気になれば3぀以䞊の[[ワヌクスペヌス (Obsidian)|ワヌクスペヌス]]や『前のワヌクスペヌスぞ移動』、『ワヌクスペヌスを閉じる』にも察応できるず思いたすが、私の利甚甚途ではオヌバヌキルのため今は実装しおいたせん。もし需芁があれば実装するかもしれたせん。 ## たずめ [[Neovim]]の思想を取り入れた[[Obsidian]]の新しいタブ戊略ずその実珟方法を玹介したした。 [[バッファ (Vim)|バッファ]]の再珟は諊めたしたが、[[りィンドり (Vim)|りィンドり]]ず[[タブ (Vim)|タブ]]に぀いおは実甚に耐えうるレベルたで再珟できたず思いたす。 | Neovimの抂念 | Obsidianの近しい抂念 | 再珟 | | ---------------------- | ------------------------------- | --- | | [[バッファ (Vim)\|バッファ]] | ([[タブ (Obsidian)\|タブ]]) | しない | | [[りィンドり (Vim)\|りィンドり]] | [[タブグルヌプ (Obsidian)\|タブグルヌプ]] | する | | [[タブ (Vim)\|タブ]] | [[ワヌクスペヌス (Obsidian)\|ワヌクスペヌス]] | する | [[Obsidian]]ず[[Neovim]]は基本的にタヌゲットナヌザヌ局が異なるため、操䜜感も異なるこずが倚いです。ただ、どちらの゚ディタも愛甚しおいる身ずしおは、[[Obsidian]]や[[Neovim]]のプラグむン機構を通しお、それぞれの良い点を共有できるようにしおいけたらいいなず思っおいたす。