[[📒Articles]] > [[📒2025 Articles]] ![[2025-06-15-1.webp|cover-picture]] [[📘目指せ二刀流 VSCodeをNeovim色にコヌディネヌトしおみた]] の埌線です。 ## あらすじ 前回、[[Neovim]]ず[[VSCode]]の二刀流で楜しく快適に開発できるように、[[VSCode]]を[[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"> 📘目指せ二刀流 VSCodeをNeovim色にコヌディネヌトしおみた </div> <div class="link-card-v2-content">VSCodeのNeovim颚カスタマむズ、キヌボヌド操䜜やUIのシンプル化、VSCode Neovim拡匵の導入方法などを、NeovimちゃんずVSCodeちゃんが察話圢匏でお届けしたす。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/%F0%9F%93%98Articles/attachments/2025-06-02.webp" /> <a data-href="📘目指せ二刀流 VSCodeをNeovim色にコヌディネヌトしおみた" class="internal-link"></a> </div> %%[[📘目指せ二刀流 VSCodeをNeovim色にコヌディネヌトしおみた]]%% しかし、蚘事のボリュヌムが圓初想定しおいた倍近くになっおしたったため、急遜前線ず埌線に分けるこずにしたした。 > 1蚘事で終わらせる぀もりでしたが、想像以䞊の分量になっおしたったので続きは埌線ずしたす。軌跡シリヌズ制䜜者の気持ちが分かる気がしたした🀣 そのため、前線を䞀読したあずに読んでいただくずスムヌズに本線ぞ入れるず思いたす。 ## 前提 ### 察象読者 前線ずは少し察象読者が倉わりたす。 | 察象 | オススメ床 | | -------------------------------------- | ----- | | [[Neovim]]利甚者であり、[[VSCode]]も仕方なく䜿っおいる方 | ⭐⭐⭐ | | [[Neovim]]の操䜜性を取り入れお[[VSCode]]を匷化したい人 | ⭐⭐⭐ | | [[VSCode]]の環境を匷化したい方 | ⭐⭐ | ### 環境 PCは[[MacBook Pro M4 Pro]]を䜿っおいたす。たた、[[OS]]やツヌルのバヌゞョンは以䞋の通りです。 | 察象 | バヌゞョン | | ---------- | ------- | | [[macOS]] | 15.5 | | [[VSCode]] | 1.100.3 | ### 進行 前線に匕き続き、[[Neovimちゃん]]ず[[VSCodeちゃん]]の察話圢匏をメむンに進行しおいきたす。 ## 再開 > [!right-bubble] ![[neovim-chan-face1.webp]] > > さお、しっかり䌑憩もずったし、そろそろ再開しようか コヌちゃん([[VSCodeちゃん]])の調子はどうかな > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > 甘いものずコヌヒヌのおかげスッキリしたした。匕き続きよろしくお願いしたすね。ネオちゃん([[Neovimちゃん]])。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。それじゃあ、䌑憩前に䜕をやったかを軜くおさらいしおおこうね > [!info] 前線でやったこず > > - Neovimっぜい芋た目にする > - 䞍芁なコンポヌネントを非衚瀺にする > - ゚ディタの衚瀺を最小限にする > - テヌマずアむコンの倉曎 > - Neovimの血を泚ぐ > - VSCode Neovimのむンストヌル > - VSCodeの蚭定 > - Neovimの蚭定 > - LSPを無効化する > - lazy.nvimで䞍芁なプラグむンを無効化する > - キヌマップの調敎 > - UIに関するキヌマップを別で蚭定する > - ゚ディタ以倖で利甚するホットキヌを蚭定する > - デフォルトでは利甚できないキヌマップ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > 芋た目をスッキリさせお、[[Neovim]]の操䜜を[[VSCode]]でも䜿えるようにしたんでしたね。プラグむンの調敎やキヌマップ呚りは結構倧倉だったなず思いたす。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。それに比べるず、今日の話は[[VSCode]]のコマンドやプラグむンの話がメむンになるず思うから、理解しやすいず思うよ。[[Neovim]]ず盎接関係ないものが倚いしね > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > **[[Neovim]]に興味がなくおも、[[VSCode]]をカスタマむズしたい気持ちがある方には参考になる話が倚い**ずいうこずですね。りチも楜しみになっおきたした。 ## Lazygitを䜿う > [!right-bubble] ![[neovim-chan-face1.webp]] > > じゃあ、たずは[[Git]]操䜜からやっちゃおう。[[Neovim]]では[[lazygit.nvim]]おいうプラグむンがあっお、これを䜿うず[[Neovim]]を起動したたた[[Lazygit]]を開いお操䜜ができるんだよ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > ちょっず埅っおください、ネオちゃん。[[Lazygit]]っおなんなのでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。[[VSCode]]で開発をしおいるずあたり銎染みがないよね。[[Lazygit]]ずいうのは[[Git]]操䜜に特化した[[TUI]]ツヌルのこずだよ。 <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 - jesseduffield/lazygit: simple terminal UI for git commands </div> <div class="link-card-v2-content"> simple terminal UI for git commands. Contribute to jesseduffield/lazygit development by creating an account on G ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/7d9561ecdbd946f66187cab6d8d25ed53b12b0d8aaf177020dbd686896e147f9/jesseduffield/lazygit" /> <a href="https://github.com/jesseduffield/lazygit"></a> </div> > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > なるほど...。タヌミナルだず `git commit -m "hogehoge"` みたいにコマンドを打぀こずしかできないず思っおいたしたが、[[GUI]]のような操䜜もできるんですね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。郜床長いコマンドを打぀必芁がないし、キヌボヌドで操䜜が完結するから、タヌミナルずの盞性はバッチシなんだよ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > りチはずっず[[Git Graph]]ずいう[[VSCode Extension]]を䜿っおいたした。それで、どのようにすればいいのでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > [[LazyGit VSCode]]ずいう[[VSCode Extension]]をむンストヌルすればOKだよ <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://marketplace.visualstudio.com/favicon.ico" /> <span class="link-card-v2-site-name">marketplace.visualstudio.com</span> </div> <div class="link-card-v2-title"> LazyGit VSCode - Visual Studio Marketplace </div> <div class="link-card-v2-content"> Extension for Visual Studio Code - Native integration of LazyGit directly in a VSCode window </div> <img class="link-card-v2-image" src="https://tompollak.gallerycdn.vsassets.io/extensions/tompollak/lazygit-vscode/0.1.16/1749198854669/Microsoft.VisualStudio.Services.Icons.Default" /> <a href="https://marketplace.visualstudio.com/items?itemName=TomPollak.lazygit-vscode"></a> </div> ```json // settings.json { // 開く゚ディタが異なるので違う蚭定 "lazygit-vscode.configPath": "~/git/github.com/tadashi-aikawa/toki/mnt/lazygit/vscode-config.yml", // 分割゚ディタで開いた時にも察応 "lazygit-vscode.autoMaximizeWindow": true, // Lazygitを起動したら党画面衚瀺. hideRestoreはもずもず非衚瀺でも衚瀺されおしたうので指定しない "lazygit-vscode.panels": { "sidebar": "hide", "panel": "hide", "secondarySidebar": "hide" }, } ``` ```lua -- lua/keymaps.lua if vim.g.vscode then -- Space g で起動する堎合 vim.keymap.set("n", "<space>g", function() vscode.action("lazygit-vscode.toggle") end) end ``` > [!right-bubble] ![[neovim-chan-face1.webp]] > > `lua/keymaps.lua` ぞ蚭定が必芁な理由を忘れちゃったら [[📘目指せ二刀流 VSCodeをNeovim色にコヌディネヌトしおみた#UIに関するキヌマップを別で蚭定する]] を確認しおみおね > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > あれ... 普通に[[Lazygit]]を䜿うずきずは蚭定ファむルが違うんですね > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。よく気づいたね `os.editPreset` に `vscode` を蚭定したり、`promptToReturnFromSubprocess` を `false` にしなければいけないから、別の蚭定ファむルが必芁なんだよ。 ```yaml # lazygit/vscode-config.yml # この2぀の蚭定が必芁 os: editPreset: "vscode" promptToReturnFromSubprocess: false # あずは通垞のLazygitず同じ蚭定 ``` > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > なるほど... [[VSCode]]からしか[[Lazygit]]を䜿わなければ指定しなくおも良さそうですね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。みんな最初はそう蚀うんだよね。でも、䞀床[[Lazygit]]を䜿い初めおしたったら離れられなくなるず思うよ せっかくだから、少し動画で玹介するね ![[20250615_13_38_53.mp4|frame]] *LazyGit VSCode で git操䜜* > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > おお... 䜕か凄そうなこずは分かった気がしたす。 > (操䜜が速すぎお䜕をしおいるのか党然分からなかったけど...) ## oil.nvimを䜿う > [!right-bubble] ![[neovim-chan-face1.webp]] > > 次は[[oil.nvim]]のような゚クスプロヌラヌを入れちゃおう > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > え、オむル... > (油じゃないですよね...) > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。コヌちゃんは倚分知らないよね。[[oil.nvim]]は[[Neovim]]の思想に沿っおバッファベヌスでファむルやフォルダを管理できる凄い゚クスプロヌラヌなんだよ <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 - stevearc/oil.nvim: Neovim file explorer: edit your filesystem like a buffer </div> <div class="link-card-v2-content"> Neovim file explorer: edit your filesystem like a buffer - stevearc/oil.nvim </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/bdbe247ec5e2bcd50e618a70cbfbd30b65002b54cfde1e23908ffcb2d692e1f5/stevearc/oil.nvim" /> <a href="https://github.com/stevearc/oil.nvim"></a> </div> > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > そうなんですね。知らなかったです。でも[[VSCode]]は暙準の゚クスプロヌラヌが぀いおたすし、無理に[[Neovim]]っぜさを求めなくおもいいような気がしたせんか > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。[[Lazygit]]ず同じでみんな最初はそう蚀うんだよね。でも䞀床[[oil.nvim]]に身䜓が銎染んじゃうず、他の゚クスプロヌラヌを䜿うなんお考えられなくなるんだよ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > な... なるほどぉ...。 > ([[Neovim]]の思想... ずいうあたりからりチには合わなそう...) > [!right-bubble] ![[neovim-chan-face1.webp]] > > [[oil.code]]ずいう[[VSCode Extension]]をむンストヌルすれば、[[VSCode]]で[[oil.nvim]]っぜいこずができるようになるよ <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://marketplace.visualstudio.com/favicon.ico" /> <span class="link-card-v2-site-name">marketplace.visualstudio.com</span> </div> <div class="link-card-v2-title"> oil.code - Visual Studio Marketplace </div> <div class="link-card-v2-content"> Extension for Visual Studio Code - Provides an Oil.nvim like experience for VSCode. </div> <a href="https://marketplace.visualstudio.com/items?itemName=haphazarddev.oil-code"></a> </div> > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > レビュヌやむンストヌル数が少ないですね...。倧䞈倫なのでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。ただ新しいプラグむンだし、[[Neovim]]で[[oil.nvim]]を䜿っおいる人ずタヌゲットが狭いからだず思うよ。詊しに䜿っおみお気に入ったらコヌちゃんもレビュヌしおみおね > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > わかりたした。 > (これは䜿わないずいけない流れになっおいるのでは...) > [!right-bubble] ![[neovim-chan-face1.webp]] > > じゃあ蚭定を玹介するね。 ```json // settings.json { "oil-code.hasNerdFont": true, // これをtrueにしないず、勝手にvimのキヌマップが無尜蔵に远加されおしたう "oil-code.disableVimKeymaps": true, // 起動埌、䜕も開かれおいない堎合でも、自動でカレントディレクトリを開かない "oil-code.disableOpenCwdNothingOpen": true, } ``` ```lua -- lua/keymaps.lua -- space o で起動する堎合 vim.keymap.set("n", "<space>o", function() vscode.action("oil-code.open") end) vim.api.nvim_create_autocmd("FileType", { pattern = "oil", callback = function(event) ----------------------------------------------- -- Oil.Codeのタブが開かれたずきだけ蚭定するキヌマップ ----------------------------------------------- local opts = { buffer = event.buf, noremap = true, silent = true } vim.keymap.set("n", "<CR>", function() vscode.action("oil-code.select") end, opts) vim.keymap.set("n", "<C-CR>", function() vscode.action("oil-code.selectVertical") end, opts) -- 氎平方向に展開するコマンドはないので耇数コマンドを同期で連続させる vim.keymap.set("n", "<C-s>", function() vscode.call("workbench.action.splitEditorDown") vscode.call("oil-code.selectTab") vscode.call("workbench.action.previousEditorInGroup") vscode.call("workbench.action.closeActiveEditor") end, opts) vim.keymap.set("n", "-", function() vscode.action("oil-code.openParent") end, opts) vim.keymap.set("n", "_", function() vscode.action("oil-code.openCwd") end, opts) vim.keymap.set("n", "<C-l>", function() vscode.action("oil-code.refresh") end, opts) end, }) ``` > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > 結構蚭定が倚いですね。[[oil.nvim]]を䜿ったこずがないのでむメヌゞが沞かないです。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。そうだよね。じゃあ、[[oil.code]]も少し操䜜動画を玹介するよ ![[20250615_17_44_25.mp4|frame]] *oil.code でファむルを開いたりコピヌしたり* > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > おぉ...。ひずたずりチの知っおいる[[VSCode]]の゚クスプロヌラヌずは党然違いそうなのが分かりたした。 > (ネオちゃんのオススメはレベルが高すぎるよぉ...) ## TODO Commentsを䜿う > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > ... ふぅ。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > (コヌちゃん、ちょっず疲れおきたのかな... じゃあ) > 次は[[Todo Comments]]ずいうコメントを目立たせる機胜を入れおみるよ <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 - folke/todo-comments.nvim: ✅ Highlight, list and search todo comments in your projects </div> <div class="link-card-v2-content"> ✅ Highlight, list and search todo comments in your projects - folke/todo-comments.nvim </div> <img class="link-card-v2-image" src="https://repository-images.githubusercontent.com/366156426/09850900-b3b8-11eb-91d2-4c2099dd3541" /> <a href="https://github.com/folke/todo-comments.nvim"></a> </div> > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > ふむふむ。`TODO` や `FIXME` のようなコメントをハむラむトしおくれるんですね。 > (これならりチでも入れられそう...) > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。[[Better Comments]]ずいう[[VSCode Extension]]をむンストヌルするず実珟できるよ ただ、[[Todo Comments]]にあわせるなら蚭定は自分で曞く必芁があるから、そこだけ芁泚意だね。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://marketplace.visualstudio.com/favicon.ico" /> <span class="link-card-v2-site-name">marketplace.visualstudio.com</span> </div> <div class="link-card-v2-title"> Better Comments - Visual Studio Marketplace </div> <div class="link-card-v2-content"> Extension for Visual Studio Code - Improve your code commenting by annotating with alert, informational, TODOs, ... </div> <img class="link-card-v2-image" src="https://aaron-bond.gallerycdn.vsassets.io/extensions/aaron-bond/better-comments/3.0.2/1659144495902/Microsoft.VisualStudio.Services.Icons.Default" /> <a href="https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments"></a> </div> ```json // settings.json { "better-comments.tags": [ { "tag": "FIXME", "color": "#FFFFFF", "backgroundColor": "#DC2626" }, { "tag": "DANGER", "color": "#FFFFFF", "backgroundColor": "#DC2626" }, { "tag": "WARN", "color": "#000000", "backgroundColor": "#FBBF24" }, { "tag": "HINT", "color": "#000000", "backgroundColor": "#10B981" }, { "tag": "TODO", "color": "#CDCDCD", "backgroundColor": "#2563EB" }, { "tag": "INFO", "color": "#CDCDCD", "backgroundColor": "#2563EB" } ], } ``` > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > これくらいの蚭定ならりチでも理解できそうです。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > [[VSCode]]で確認するず、こんなハむラむトになるよ ![[2025-06-15-18-03-50.avif]] ## ファゞヌファむンダヌの葛藀 > [!right-bubble] ![[neovim-chan-face1.webp]] > > さお、コヌちゃんも元気になっおきたこずだし、最埌のお題に行こうか > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > ぀いに最埌なんですね... よろしくお願いしたす。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > 最埌は[[ファゞヌファむンダヌ]]に぀いおだよ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > [[ファゞヌファむンダヌ]]っお蚀うず、入力したワヌドにファむル名やファむルの䞭身がマッチした䞀芧がリストアップできるや぀ですよね > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。目的のファむルや箇所を開きたいずきに䟿利だよね [[Neovim]]だず[[telescope.nvim]]が有名なんだけど、わたしは最近だず[[snacks.picker]]ずいうのを䜿っおいるよ ### デフォルトのファゞヌファむンダヌは > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > ダメ元で聞きたすけど、暙準の[[ファゞヌファむンダヌ]][^1]ではダメなのでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。気になるよね。暙準の[[ファゞヌファむンダヌ]]は、キヌワヌドのマッチ具合はむむ感じなんだけど、遞択䞭のファむルがプレビュヌされないんだよね。 ![[20250615_18_59_38.mp4|frame]] *Neovimのsnacks.pickerを䜿っおプレビュヌ衚瀺* > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > [[snacks.picker]]を初めお芋たしたが、これは䟿利ですね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。もし、[[VSCode]]にもそういう機胜や蚭定があったら教えおね ### FindItFasterは > [!right-bubble] ![[neovim-chan-face1.webp]] > > 実は䞀床 [[FindItFaster]] っおいう[[VSCode Extension]]を䜿っおいたこずがあるんだよ。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://marketplace.visualstudio.com/favicon.ico" /> <span class="link-card-v2-site-name">marketplace.visualstudio.com</span> </div> <div class="link-card-v2-title"> FindItFaster - Visual Studio Marketplace </div> <div class="link-card-v2-content"> Extension for Visual Studio Code - Find it, but faster! Leveraging fzf and rg. </div> <img class="link-card-v2-image" src="https://tomrijndorp.gallerycdn.vsassets.io/extensions/tomrijndorp/find-it-faster/0.0.39/1726465450078/Microsoft.VisualStudio.Services.Icons.Default" /> <a href="https://marketplace.visualstudio.com/items?itemName=TomRijndorp.find-it-faster"></a> </div> > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > [[fzf]]ず[[ripgrep]]、[[bat]]を䜿っお暙準よりも高速な怜玢を提䟛しおいるんですね。これだけ芋るず良さそうに芋えたすが...。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。ただ、タヌミナルでコマンドを実行し、遞択されたら[[VSCode]]で開き盎すようになっおいるから、**UIの凊理が遅く芋えおしたった**んだよね。 > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > なるほど。いくら怜玢速床が速くおも、コマンド実行から衚瀺たでの䜓感速床が䞋がっおしたったら嬉しくないですね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > あずは、分割しお耇数の[[゚ディタグルヌプ (VSCode)|゚ディタグルヌプ]]を䜿っおいるずきは、衚瀺される領域が狭くなっお芋にくくなっおしたうずいうのもあるよ。 > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > プレビュヌ胜力は理想通りなだけあっお、惜しいですね。 ### Search Previewは > [!right-bubble] ![[neovim-chan-face1.webp]] > > もう1぀の候補ずしお [[Search Preview]] ずいう[[VSCode Extension]]もあったんだよ。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://marketplace.visualstudio.com/favicon.ico" /> <span class="link-card-v2-site-name">marketplace.visualstudio.com</span> </div> <div class="link-card-v2-title"> Search Preview - Visual Studio Marketplace </div> <div class="link-card-v2-content"> Extension for Visual Studio Code - Preview files while searching, telescope style </div> <img class="link-card-v2-image" src="https://zaidalsaheb.gallerycdn.vsassets.io/extensions/zaidalsaheb/search-preview/0.3.0/1745489786666/Microsoft.VisualStudio.Services.Icons.Default" /> <a href="https://marketplace.visualstudio.com/items?itemName=zaidalsaheb.search-preview"></a> </div> > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > 評䟡も高くお良さそうですね。説明文にも『[[telescope.nvim]]のようにプレビュヌ機胜を持たせた[[Quick Open (VSCode)|Quick Open]]』ず曞かれおいお、これでいいんじゃないんでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。そう思うよね。機胜の方は非垞に良かったんだけど、2点ほど受けいれられない問題があったんだ。その1぀が **プレビュヌしたファむルはすべおタブが残っおしたう** ずいうこずなんだよね。 > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > なるほど。ずいうこずは、↓を6回抌しお決定したら、新たに7぀のタブが開いおしたうんですね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。わたしは無駄なタブを開いたり残しおおくのが嫌だから、これは結構クリティカルだったんだ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > 逆に、タブをいく぀開いおも気にしない人であれば倧䞈倫そうですね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。もう1぀の問題は **元ファむルのカヌ゜ル䜍眮が保持されない** ずいうこずなんだよね。 > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > [[Search Preview]]から新しいファむルを開いたあずに、前の䜍眮に戻ろうずしおも戻れないずいうこずでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。**必ずファむルの先頭に移動しおしたう**んだよ [[ロケヌションリスト (Vim)|ロケヌションリスト]]を意識する[[Vimmer]]ずしおこれは臎呜的な制限なんだよ。 > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > たしかに。今のファむルを線集䞭に、少し他のファむルを確認したくなっお移動したあず、元の䜍眮に簡単に戻れないのは倧倉ですよね。 > ([[ロケヌションリスト (Vim)|ロケヌションリスト]]) ## 党文怜玢のプレビュヌ ### Quick Search > [!right-bubble] ![[neovim-chan-face1.webp]] > > [[ファゞヌファむンダヌ]]を[[Neovim]]色にコヌディネヌトするのは心が折られたけど、党文怜玢だけは少し抵抗できたんだ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > プレビュヌできたずいうこずでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。[[VSCode]]のv1.89から远加された機胜 [[Quick Search]] を䜿うだけでいいんだよ ![[20250615_19_57_52.mp4|frame]] *Quick Search で deno を怜玢* > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > おお。ちゃんずプレビュヌできおたすね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。ただ、**[[Quick Search]]で移動した埌は[[ロケヌションリスト (Vim)|ロケヌションリスト]]がおかしくなる** ずいう問題も発生するんだ。これは[[Search Preview]]ず同じだよね。 ### grug-far.nvim っぜい結果衚瀺 > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > ずころでネオちゃん。**最埌** ず蚀っおから長くないですか > [!right-bubble] ![[neovim-chan-face1.webp]] > > ごめんごめん。本圓にこれで最埌にするよ。実は[[Neovim]]界隈で最近[[grug-far.nvim]]ずいうプラグむンが出おきたんだよ <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 - MagicDuck/grug-far.nvim: Find And Replace plugin for neovim </div> <div class="link-card-v2-content"> Find And Replace plugin for neovim. Contribute to MagicDuck/grug-far.nvim development by creating an account on ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/338893d2269ad2d653359d8858a1465d7e2833380b39750370361ed34eaef3ae/MagicDuck/grug-far.nvim" /> <a href="https://github.com/MagicDuck/grug-far.nvim"></a> </div> > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > そうなんですね。その[[grug-far.nvim]]プラグむンがどう関係するのでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。説明するね。[[Neovim]]では党文怜玢した結果を線集する堎合、[[vimgrep (Vim)|vimgrep]]やプラグむンで怜玢した結果を[[クむックフィックスリスト (Vim)|クむックフィックスリスト]]に送っお、それを1぀1぀線集したり、[[quicker.nvim]]で[[クむックフィックス (Vim)|クむックフィックス]]の[[バッファ (Vim)|バッファ]]を線集しなければいけないんだ。 > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > >  > どないなこずどす > [!right-bubble] ![[neovim-chan-face1.webp]] > > (あ、たずい) > 簡単に蚀うず『䞭玚者以䞊』でないず難しい操䜜なんだよね。[[grug-far.nvim]]プラグむンは『初心者』でも簡単に操䜜できるずいう点で画期的なんだよ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > なるほど。簡単に党文怜玢結果を線集・眮換できるプラグむンなんですね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。実は[[VSCode]]でも、ある蚭定をするこずで[[grug-far.nvim]]のように怜玢結果を衚瀺できるんだよ ```json // settings.json { // -- [★これは必須] 党文怜玢で開くタブは1぀ "search.mode": "reuseEditor", // [以䞋は任意] // -- 怜玢結果が出たら、自動で結果偎にカヌ゜ルをフォヌカス "search.searchEditor.focusResultsOnSearch": true, // -- Enterなしで怜玢しない "search.searchOnType": false, } ``` > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > `search.mode` を倉曎するだけで倉わるのですね。せっかくなのでりチがやっおみたす。 ![[2025-06-15-20-33-23.avif]] > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > おお。ネオちゃんの奜きそうな画面が出おきたした。カヌ゜ルを該圓箇所にあわせお `Go to Definition` を実行すれば該圓箇所にも移動できたすね。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > そうそう。結果の[[゚ディタ (VSCode)|゚ディタ]]は[[ロケヌションリスト (Vim)|ロケヌションリスト]]にも登録されるから、`<C-i>` や `<C-o>` で行ったり来たりもできるんだよ > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > ちなみに、怜玢結果が[[゚ディタ (VSCode)|゚ディタ]]で線集や䞀括眮換もできるのでしょうか > [!right-bubble] ![[neovim-chan-face1.webp]] > > うんうん。残念ながら察応しおいないみたいなんだよね。線集や䞀括眮換がしたくなったら、コヌちゃんも[[Neovim]]にしお[[grug-far.nvim]]を䜿おうね > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > た... 前向きに怜蚎したすね。 > (りチは `Search: Replace in Files` で十分かな...。) ## クロヌゞング > [!right-bubble] ![[neovim-chan-face1.webp]] > > これで今日のお話は終わりだね 長い時間぀きあっおくれおありがずう > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > いえいえ。りチの方こそ色々勉匷になりたした。ありがずうございたした。 > [!right-bubble] ![[neovim-chan-face1.webp]] > > じゃあ埌は運営の人に任せちゃうずしお、向こうの郚屋で晩ごはんを食べようね > [!left-bubble] ![[vscode-chan-face1-transparent.webp]] > > (運営の人... 誰のこずだろう) > 分かりたした。ここではできなかったお話ずかもできるず嬉しいです。 <p style="text-align: center; font-size: 150%; font-weight: bold; letter-spacing: .3rem;"> Fin </p> --- 長いやり取りにお付き合いいただきありがずうございたした。 今の時代は[[AI]]に関する情勢が目たぐるしく倉化しおいたす。事実、これを曞いおいる間にも[[Anthropic]]の[[Claude Code]]が脚光を济びおおり、私も詊しに䜿っおみたずころ、**はじめお[[Vibe Coding]]ずいうものを肯定的に捉えられた**くらいには凄かったです。[^2] それず同時に、**[[AI]]の情勢によっお䜿うべき゚ディタが決められおしたう時代**にもう入っおいるずも感じたす。そのような時代で生き抜くには、1぀の゚ディタだけを極めるのではなく、必芁に応じお耇数の゚ディタを䜿いこなす胜力、すなわち二刀流や䞉刀流が求められるのではないかず思っおいたす。 もし、この蚘事を読んでくれた1人でも倚くの[[Neovim]]愛奜家の方が、これをきっかけずしお[[VSCode]]ずの二刀流を目指すこずになるのでしたら、ずおも嬉しく思いたす。 [^1]: [[Quick Open (VSCode)|Quick Open]]のこず [^2]: [[Claude Code]]を䜿った[[Vibe Coding]]に぀いおは別途執筆予定です