[[ðArticles]] > [[ð2025 Articles]]
![[2025-06-02.webp|cover-picture]]
[[Neovim]]ãš[[VSCode]]ã®äºåæµã§æ¥œããå¿«é©ã«éçºã§ããããã«ã[[VSCode]]ã[[Neovim]]è²ã«ã³ãŒãã£ããŒãããŠã¿ãŸããã
## ãªãNeovimã䜿ããªãã®ãïŒ
ããããèšäºãæžããš
```
ãVSCodeãNeovimã£ãœããããªããŠãšãã§ããªãïŒ NeovimãšéããšãããVSCodeã®è¯ããªã®ã«ããããªãããªãã§VSCode䜿ãããšæã£ããã§ããïŒ Neovim䜿ã£ãŠãã°ãããããªãã§ããïŒã
```
ãšãã声ãçŽã¡ã«èãããŠãããã§ããç§ãã€ã1ã¶æåãŸã§ã¯åãé¢šã«æã£ãŠããŸãããå®éã®ãšããã3æçµããé ã«ä»¥äžã®èšäºãæžããŸããã
<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">
ðCodeCompanionã䜿ã£ãŠNeovimãšäžç·ã«æ¥œããAI Coding
</div>
<div class="link-card-v2-content">Neovimã§AIã³ãŒãã£ã³ã°ãããããã®ãã©ã°ã€ã³ãCodeCompanionã®èšå®æ¹æ³ãäœ¿ãæ¹ãã»ããã¢ããããé çªã«å®äŸã亀ããŠã玹ä»ããŸãã察象ãšãªãã®ã¯ ãAIã³ãŒãã£ã³ã°ãã¯ãããªããã°ãšæãã€ã€ããNeovim以å€ã®ãšãã£ã¿ã«ã¯ç§»è¡ããããªã...ããšãå°ãã®éçºè
ã§ãã</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/%F0%9F%93%98Articles/attachments/2025-03-21.webp" />
<a data-href="ðCodeCompanionã䜿ã£ãŠNeovimãšäžç·ã«æ¥œããAI Coding" class="internal-link"></a>
</div>
%%[[ðCodeCompanionã䜿ã£ãŠNeovimãšäžç·ã«æ¥œããAI Coding]]%%
ãã®èšäºã®ååãèªãã§ããã ããšåããéãããã®é ããæ¢ã«ãã¯ãããŠãã®ãŸãŸ[[Neovim]]ã䜿ã£ãŠããŠããã®ã ããã...ããšããèè€ã¯ãããŸããã
### 倧ããªãã£ããã¯MacBook Proãžã®ç§»è¡
[[Windows]]ã䜿ã£ãŠããé ã¯ãéçºã[[WSL]]ã§è¡ã£ãŠããããã[[VSCode]]ã䜿ãå Žåã¯å¿
ç¶çã«[[Remote Development]]ã®[[VSCode Extension]]ã䜿ãå¿
èŠããããŸããããªã¢ãŒãã®å²ã«å¿«é©ã§ã¯ãã£ããã®ã®ãããããããšãèãããšãã倧ãããªæ§æã§ããæ§æã®è€éããããã©ãŒãã³ã¹ã®äœäžãšãã£ããã¡ãªããããããŸããã
ããããGWåã«33幎ãå
±ã«ãã[[Windows]]ãã[[macOS]] ([[MacBook Pro M4 Pro]]) ãžç§»è¡ãããŸããã
<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">
ðãããªãWindowsã33å¹Žã®æ¥ã
ã
</div>
<div class="link-card-v2-content">33幎é䜿ãç¶ããWindowsããmacOSãžç§»è¡ããçç±ãçµç·¯ãå®éã®ç§»è¡æé ãããããããŒã«ãããŒããŒãã«ã¹ã¿ãã€ãºãã¿ãŒããã«ãç»åã»åç»å§çž®ããšãã£ã¿ç°å¢ã®éããªã©ã詳ãã解説ããŠããŸããWindowsãšMacã®éããç§»è¡ã®ã³ããç¥ãããæ¹ã¯ãã²ã芧ãã ããã</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/%F0%9F%93%98Articles/attachments/2025-05-15.webp" />
<a data-href="ðãããªãWindowsã33å¹Žã®æ¥ã
ã" class="internal-link"></a>
</div>
%%[[ðãããªãWindowsã33å¹Žã®æ¥ã
ã]]%%
ç§»è¡ããåœæã¯æ°ã«ããŸããã§ãããããã°ããããŠæ°ãã€ããã®ã§ãã**[[macOS]]ãªã[[WSL]]ã[[Remote Development]]ã䜿ããªããŠãã[[VSCode]]ã§å¿«é©ã«éçºã§ãããšããããšã«ã**
### äŒç€Ÿã»ããŒã ãšããŠã®æšæºãšãã£ã¿
å
ã®èšäºã§ãæžãããŠããããã«ãè·å Žã§ã¯ [[VSCode]] x [[GitHub Copilot]] ãæšå¥šç°å¢ãšããAIã³ãŒãã£ã³ã°ãžã®é©å¿ãå§ãŸã£ãŠããŸããããŸããŠãç§ã¯ãããäž»å°ããåŽã®äººéã§ãã
```
ãVSCode? åãããŸãããNeovimã ã£ããä»»ããŠãã ãã(ïŸïŸïŸïœ¯ ã
```
ãšãèšã£ãŠããããç«å Žã§ããªããšæããŸããã
### ãããŠã«ã¹ã¿ãã€ãºã«æ¬æ°ãåºãå§ãã
ãããã®éœåãã[[VSCode]]ãæ¬æ°ã§äœ¿ãå§ããŸãããããããããã©ã«ãã®ç¶æ
ã§ã¯æ£çŽèŠçã§ããç§ã®èº«äœã[[Neovim]]ã«ãã£ããããŠããŸã£ãŠãããããŸããçŽ ã®[[VSCode]]ãåãå
¥ããããªãã®ã§ãã
ãããªãšãã以äžã®èšäºãå¶ç¶èŠãããŸããã
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://static.zenn.studio/images/logo-transparent.png" />
<span class="link-card-v2-site-name">Zenn</span>
</div>
<div class="link-card-v2-title">
ããã£âŠç§ã®ãšãã£ã¿ãããµããâŠïŒããŠãªã€ã³ã°ã«ãã«ãŠã±ããCursorã»VSCodeã®ã€ã±ã€ã±èšå®
</div>
<img class="link-card-v2-image" src="https://res.cloudinary.com/zenn/image/upload/s--dEVILKQ0--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2581%2586%25E3%2582%258F%25E3%2581%25A3%25E2%2580%25A6%25E7%25A7%2581%25E3%2581%25AE%25E3%2582%25A8%25E3%2583%2587%25E3%2582%25A3%25E3%2582%25BF%25E3%2580%2581%25E3%2583%2580%25E3%2582%25B5%25E3%2581%2599%25E3%2581%258E%25E2%2580%25A6%25EF%25BC%259F%25E3%2583%258A%25E3%2582%25A6%25E3%2581%25AA%25E3%2583%25A4%25E3%2583%25B3%25E3%2582%25B0%25E3%2581%25AB%25E3%2583%2590%25E3%2582%25AB%25E3%2582%25A6%25E3%2582%25B1%25E3%2581%2599%25E3%2582%258BCursor%25E3%2583%25BBVSCode%25E3%2581%25AE%25E3%2582%25A4%25E3%2582%25B1%25E3%2582%25A4%25E3%2582%25B1%25E8%25A8%25AD%25E5%25AE%259A%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:aose%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2pSV1VrTEpMZE1Ra1hjVExDNjdGNW9vWDEzTVpVdlkwYzhCSWJaPXM5Ni1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" />
<a href="https://zenn.dev/aose/articles/6188f61a6a2a25"></a>
</div>
**ãããïŒ [[VSCode]]ã[[Neovim]]è²ã«æããŠããŸãã°ãããã ïŒ**
æªéã®åãã«è³ãåŸãã[[VSCode]]ã[[Neovim]]è²ã«ã³ãŒãã£ããŒãããäœæ¥ãå§ããŸããã
## åæ
### 察象èªè
| 察象 | ãªã¹ã¹ã¡åºŠ |
| -------------------------------------- | ----- |
| [[Neovim]]å©çšè
ã§ããã[[VSCode]]ã仿¹ãªã䜿ã£ãŠããæ¹ | âââ |
| [[VSCode]]ã®UIãã·ã³ãã«ã«ãããæ¹ | ââ |
| [[VSCode]]ã®ç°å¢ã匷åãããæ¹ | â |
### ç°å¢
PCã¯[[MacBook Pro M4 Pro]]ã䜿ã£ãŠããŸãããŸãã[[OS]]ãããŒã«ã®ããŒãžã§ã³ã¯ä»¥äžã®éãã§ãã
| 察象 | ããŒãžã§ã³ |
| ---------- | ------- |
| [[macOS]] | 15.4.1 |
| [[VSCode]] | 1.100.2 |
### é²è¡
æ¬èšäºã¯[[Neovimã¡ãã]]ãš[[VSCodeã¡ãã]]ã®å¯Ÿè©±åœ¢åŒãã¡ã€ã³ã«é²è¡ããŠãããŸãã
## éé
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããã«ã¡ã¯ïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã¯ãããŸããŠã[[Neovimã¡ãã]]ãæ¬æ¥ã¯ãããããé¡ãããŸããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> [[VSCodeã¡ãã]]ãšã話ããã®ã¯åããŠã ãïŒ å®ã¯ããããã¡ã£ãŠçãŸããæãåããªãã ããããã£ãå§ããŠç¥ã£ããã ãã©...
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããæ¬åœã ...ããŠãã¯2015幎11æ18æ¥ã« `v0.10.1` ãšããŠèªçããã®ã ãã©ã[[Neovimã¡ãã]]ãåã 2015幎11æã« `v0.1.0` ãšããŠèªçããŠãããã§ããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããããååã®å§åйã¿ãããªãã®ã ããïŒ ãããã®ããšã¯æ°è»œã«ããªã¡ããã£ãŠåŒãã§ãïŒ ãããã[[VSCodeã¡ãã]]ã®ããšãã³ãŒã¡ããã£ãŠåŒã¶ããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããããŸããããããããé¡ãããŸããã
> (è·é¢ãã°ã€ã°ã€è©°ããŠããåãªãã ãªã...)
## Neovimã£ãœãèŠãç®ã«ãã
### äžèŠãªã³ã³ããŒãã³ããé衚瀺ã«ãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããæ©éãèŠãç®ã®éšåããããããè²ã«ã³ãŒãã£ããŒããã¡ãããïŒ ã³ãŒã¡ããã®èŠãç®ã¯çµæ§è³ããã ããã...ã
![[20250601_16_56_00.webp|frame]]
*VSCodeã®æšæºUI*
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããããªã...ãããã§ãããªãã·ã³ãã«ã ãšæã£ãŠããã§ããã©...ã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããã³ãŒã¡ããã¯è²ã
ãªãŠãŒã¶ãŒãšæ¥ããŠãããããäžäººã«äœ¿ããããèŠãç®ã«ããŠãããã ãããäžæ¹ãããã㯠**ããŒããŒãè³äžäž»çŸ©ã§... èŠãç®ãèªåã§ã«ã¹ã¿ãã€ãºãããæŽŸ** ã ããå¿
èŠãªæ
å ±ããåºããããªããã ã
![[20250601_17_05_43.webp|frame]]
*Neovimã®ã«ã¹ã¿ãã€ãºãããç»é¢*
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> æ¬åœã ...ããšãã£ã¿ã®æ
å ±éã¯ããŸãå€ãããªããã©ã[[ã¢ã¯ãã£ãã£ãã£ããŒ]]ã[[ã«ã¹ã¿ã ã¿ã€ãã«ããŒ]]ãããããããªã©ãç¡ããã§ããã
> (ããããã[[Neovim]]ã£ãŠãããŸã§æ
å ±ã衚瀺ã§ãããã®ãªãã ...ã)
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããæ®æ®µäœ¿ããªãã¢ãã¯å¿
èŠãªãããããŸã«ãã䜿ããªããã®ã¯åžžæè¡šç€ºãããŠããå¿
èŠããªãããããããããã³ãŒã¡ããã®åšèŸºã³ã³ããŒãã³ããé衚瀺ã«ãã¡ãããïŒ
```json
// settings.json ã«è¿œå
{
// è€æ°ã€ã³ã¹ã¿ã³ã¹ãããŒãžããŠ1ãŠã£ã³ããŠã§è¡šç€º
"window.nativeTabs": true,
// äžçªäžã®ã«ã¹ã¿ã ã¿ã€ãã«ããŒãé衚瀺ã«ãã
"window.customTitleBarVisibility": "never",
// å·Šãµã€ãã®ã¢ã¯ãã£ããã£ããŒãéå±éæã¯é衚瀺
"workbench.activityBar.location": "top",
// ãã©ã³ãèšå® (ããŸã)
"editor.fontFamily": "CaskaydiaCove Nerd Font",
"editor.fontSize": 16,
}
```
![[20250601_17_21_22.webp|frame]]
*ã«ã¹ã¿ã ã¿ã€ãã«ããŒãšãã©ã€ããªãŒãµã€ãããŒãæ¶ããŠã¹ãããªããVSCode*
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãã...ãäžæ°ã«ããªã¡ãããœããªããŸãããããã ãããã ãš[[ã³ãã³ããã¬ãã (VSCode)|ã³ãã³ããã¬ãã]]ã[[ãã©ã€ããªãŒãµã€ãããŒ]]ããã¡ãã¥ãŒã衚瀺ã§ããªããªã£ãŠããŸããªãã®ã§ãããã...ã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããããã¯ã·ã§ãŒãã«ããããŒã§èµ·åã§ããããã«ããŠããã°å€§äžå€«ã ãã[[ãã©ã€ããªãŒãµã€ãããŒ]]ãå±éããã°ããã®äžã«[[ã¢ã¯ãã£ãã£ãã£ããŒ]]ã衚瀺ããããã ãåèãšããŠããããã®èšå®ãæžããŠãããïŒ
```json
// keybindings.json
{
// ãã©ã€ããªãŒãµã€ãããŒã®è¡šç€ºåãæ¿ã
{
"key": "cmd+i",
"command": "workbench.action.toggleSidebarVisibility"
},
// ã³ãã³ããã¬ãã
{
"key": "cmd+escape",
"command": "workbench.action.showCommands"
},
}
```
![[20250601_17_30_09.webp|frame]]
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©... å匷ã«ãªããŸãã
> (ãã¯ãããŠã¹ã䜿ã£ãŠã¯ãããªãã®ã§ãã...ã)
### ãšãã£ã¿ã®è¡šç€ºãæå°éã«ãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããæ¬¡ã¯ãšãã£ã¿ã®äžãã¹ãããªãã¡ããããã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãããããé¡ãããŸãããã ãã·ã³ã¿ãã¯ã¹ãã€ã©ã€ãã ãã¯æ¶ããªãã§ãã ãããã1è²ã ãšæµç³ã«ã³ãŒããèªã¿ã¥ããã®ã§...ã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãã¯ã¯... æµç³ã«ãããŸã§ã¯ããªãããã³ãŒãã£ã³ã°ã®åŠšãã«ãªããã€ãºãé衚瀺ã«ãããã ããªãã ãããæµç³ã«ãããã1è²ã®ã³ãŒãã¯èªã¿ãããªããã
```json
// settings.json ã«è¿œå
{
// ã€ã³ãã³ãã¬ã€ããé衚瀺ã«ãã
"editor.guides.indentation": false,
// ãããããã¯é衚瀺
"editor.minimap.enabled": false,
// ã«ãã³ã®è²ããã¢ããšã«å€ããªã (ãã¹ãŠåãè²ã«ãã)
"editor.bracketPairColorization.enabled": false,
// ã«ãŒãœã«ã¯ç¹æ»
ãããªã
"editor.cursorBlinking": "solid",
// ã«ãŒãœã«è¡ã¯gutterã ããã€ã©ã€ã
"editor.renderLineHighlight": "gutter",
}
```
![[20250601_18_00_29.webp|frame]]
*ãšãã£ã¿ã®è¡šç€ºãæå°éã«ããVSCode*
> [!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]]
>
> ãããããæ®éã¯ã³ãŒã¡ããã®æèŠã«è³æã ãšæããããã ããããã¯**ãã®çšåºŠã§èªã¿ã«ãããªããããªã³ãŒããã§ããã ãæžãããã**ãšæã£ãŠãããã ãã€ã³ãã³ããã«ãã³ã®ãã¹ãã衚瀺ããŠããªãã®ã¯ã**èªåèªèº«ãžã®æãã¿ãããªãã®**ãªãã ãã
> [!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]]
>
> ãããããããã°ããã¯å人ã®å¥œã¿ããªãèªåã«ãšã£ãŠã**å¿
èŠãªæ
å ±ãèªç¥ãããŸã§ã®ã¹ããŒããéããéäžã§ããŠã¢ãããŒã·ã§ã³ãäžãããã®**ãéžã¶ãã®ã倧äºã ãšæããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©...ãçè«ãšææ
ã®äž¡æ¹ã«äœçšããããŒããéžãã ã»ãããããšããããšã§ããã
> (ããã£ã... ä»åã¯ãŸãšãã ã)
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããã ããæ¬åœã¯ã³ãŒã¡ããã®å¥œããªããŒããšã¢ã€ã³ã³ãéžãã§ããããããã ãã©ãä»ã¯æéããªããããããããæ®æ®µäœ¿ã£ãŠããããŒãã«äŒŒããæãã§ã³ãŒãã£ããŒããããïŒ
```json
// settings.json
{
// ããŒã
"workbench.colorTheme": "Ayu Mirage Zed",
"workbench.colorCustomizations": {
// ã©ã€ã³çªå·ãšgutterã®è²å€æŽ
"editorLineNumber.foreground": "#888888",
"editorLineNumber.activeForeground": "#EFEF33",
// éžæç¯å²ã®è²å€æŽ
"editor.selectionBackground": "#565612",
// ãªãŒãã³ã³ããªãŒãã®è²å€æŽ
"editorSuggestWidget.selectedForeground": "#CDCDCD",
"editorSuggestWidget.selectedBackground": "#363C58"
},
// ã¢ã€ã³ã³
"workbench.iconTheme": "catppuccin-mocha",
}
```
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããã§èšå®ããããŒããšã¢ã€ã³ã³ã¯[[Chrome Extension]]ãå¿
èŠã ãã[[Ayu Mirage Zed]]ãš[[Catppuccin Icons for VSCode]]ãã€ã³ã¹ããŒã«ããŠãããŠãã
<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">
Ayu Mirage Zed - Visual Studio Marketplace
</div>
<div class="link-card-v2-content">
Extension for Visual Studio Code - A remake of Zed's Ayu mirage theme for VSCode.
</div>
<img class="link-card-v2-image" src="https://enhancedjax.gallerycdn.vsassets.io/extensions/enhancedjax/vscode-ayu-zed/1.0.2/1722093690903/Microsoft.VisualStudio.Services.Icons.Default" />
<a href="https://marketplace.visualstudio.com/items?itemName=enhancedjax.vscode-ayu-zed"></a>
</div>
<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">
Catppuccin Icons for VSCode - Visual Studio Marketplace
</div>
<div class="link-card-v2-content">
Extension for Visual Studio Code - ðŠ Soothing pastel icon theme for VSCode
</div>
<img class="link-card-v2-image" src="https://catppuccin.gallerycdn.vsassets.io/extensions/catppuccin/catppuccin-vsc-icons/1.21.0/1746234508629/Microsoft.VisualStudio.Services.Icons.Default" />
<a href="https://marketplace.visualstudio.com/items?itemName=Catppuccin.catppuccin-vsc-icons"></a>
</div>
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> [[Catppuccin Icons for VSCode]]ã£ãŠå¯æãããããŒãã§ãããããªã¡ããã«ããŠã¯æå€ãªãã§ã€ã¹ã ãªãšæããŸããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããå®ã¯ãããã䜿ã£ãŠããã¢ã€ã³ã³ãšã¯äŒŒãŠããªããã ãããããã§ãã³ãŒã¡ããã«ã¯ã³ããã®æ¹ããããªãšæã£ããã ïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã§ã¯å®éã®ç»é¢ã確èªããŠã¿ãŸããã
![[20250601_18_28_20.webp|frame]]
*ããŒããšã¢ã€ã³ã³ãé©å¿ããVSCode*
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããã§èŠãç®ã®å€æŽã¯äžéãçµãã£ãããã[[Neovim]]ã®ç»é¢ãšäžŠã¹ãŠã¿ããïŒ
![[20250601_17_05_43.webp|frame]]
*VSCode*
![[20250601_18_28_20.webp|frame]]
*Neovim*
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> é ç®ã«ã¯ã©ã¡ããã©ã¡ããäžç®ã§åãããªãã§ãã...ãæ®éã«éãšèšãããŠãä¿¡ããŠããŸããã... ãã...ïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãã£ïŒ æ°ãã€ããããªïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ç»åã®æ³šéãéã§ãããäžã®ç»åã[[Neovim]]ã§ãäžã®ç»åã[[VSCode]]ã§ãããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãã£ããã³ãŒã¡ããïŒ ã»ãšãã©ã®äººã¯æ°ã¥ããã«ã¹ã«ãŒããŠããŸãã®ã«ããæ°ãã€ãããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã¯ãããŠãããããã確èªãšãã¯åŸæãªãã§ãã
> (ãã®æãã ãšããããšãã£ããã§ãã... æ²¹æã§ããªããªã...)
## Neovimã®è¡ã泚ã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããŠãããããã¯ã³ãŒã¡ããã«ãããã®è¡ã泚ãã§ãããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã...ïŒ è¡ã§ãã...ïŒ
> (ãããªç©éšãªããšã...)
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããããèšãæ¹ãæªãã£ãããæ£ç¢ºã«èšããšã**[[VSCode]]ã®ãšãã£ã¿ã«é¢ããã³ã³ãããŒã«ã[[Neovim]]ã«ä»»ãã**ã£ãŠããšãªãã ãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ïŒïŒïŒ
> [[VSCode]]ã䜿ãã®ã«[[Neovim]]ãåºãŠãããã§ããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããåããŠã®äººã«è©±ããšãã€ãããã¯ãªããããã ãã©ã**[Neovimã¯RPC APIãéããŠUIã®å®è£
ãå¥ã®ã¯ã©ã€ã¢ã³ãã«ä»»ããããšãã§ãã](https://neovim.io/doc/user/ui.html)**ãã ãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãïŒïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ã€ãŸãããŠãŒã¶ãŒã[[VSCode]]ã«å¯ŸããŠæäœãããããRPC APIãéããŠããã[[Neovim]]ã«äŒãã[[Neovim]]ãå
容ãç·šéããããšã§ããããã**[[VSCode]]ã®ãšãã£ã¿ã[[Neovim]]ãšããŠäœ¿ã£ãŠãããã®ãããªäœéš**ãäžãããããã ãïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> [[Neovim]]ã«ãããªæ©èœããã£ããã§ãã...ããããã[[VSCode]]ã§ãã®é£æºãã§ãããªããŠ... èªåããšãªã®ã«ãŠãããªã«ãç¥ããªãã£ãã§ã...ã
> (ã€ãŸã... ==[[Neovim]]ã«èå³ãªãæ¹ã¯æ¬ç« ãé£ã°ããŠãããããã§ããã==)
### [[VSCode Neovim]]ã®ã€ã³ã¹ããŒã«
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãã®æ©èœã䜿ãã«ã¯ãRPC APIãéãã飿ºãã§ããããã«[[VSCode Neovim]]ãã€ã³ã¹ããŒã«ããå¿
èŠããããã䌌ãååã®ãã®ã§[[VSCodeVim]]ãšããã®ãããããééããªãããã«æ°ãã€ããŠãã
<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">
VSCode Neovim - Visual Studio Marketplace
</div>
<div class="link-card-v2-content">
Extension for Visual Studio Code - Vim mode for VSCode, powered by Neovim
</div>
<img class="link-card-v2-image" src="https://asvetliakov.gallerycdn.vsassets.io/extensions/asvetliakov/vscode-neovim/1.18.22/1747928565527/Microsoft.VisualStudio.Services.Icons.Default" />
<a href="https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim"></a>
</div>
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> [[VSCodeVim]]ã¯[[Neovim]]ãããã¯ãšã³ããšããŠå©çšããã®ã§ã¯ãªãããããŸã§[[Vim]]ã£ãœãåããæäŸãã[[VSCode Extension]]ãªãã§ããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããã ããã**[[Neovim]]ã¯äœ¿ã£ãŠãªããã©ã[[VSCode]]ã§ã[[Vim]]ã®ããŒãã€ã³ãããæåãª[[Vimãã©ã°ã€ã³]]ã®ãããªæ©èœãã»ãã**ãšãã人ã«ã¯ãªã¹ã¹ã¡ãªãã ãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©...ããŠãã®ãšããã«ãã[[Vim]]ã®ãã®æ©èœãªããã§ããïŒãã£ãŠè³ªåãæã
ããã®ã§ã次ã«è³ªåããããšãã¯çžæã®ç¶æ³ã«ããããŠç޹ä»ããŠã¿ãŸããã
### VSCodeã®èšå®
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> [[VSCode]]ã®èšå®ãã¡ã€ã«ã«æžã[[VSCode Neovim]]ã®èšå®ã¯1ã€ã ãã ãã
```json
// settings.json
{
"extensions.experimental.affinity": {
"asvetliakov.vscode-neovim": 1
},
}
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãã®èšå®ã¯ããã... [[VSCode Extension]]ã[[ã¯ãŒã¯ã¹ããŒã¹ (VSCode)|ã¯ãŒã¯ã¹ããŒã¹]]管çãšã¯å¥ããã»ã¹ãšããŠåããèšå®ã§ããã詊éšçæ©èœãªã®ã§ããã¥ã¡ã³ãã«ãèšèŒãå°ãªãã®ã«ãåç¥ãšã¯æµç³ã§ãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããã[[Vimmer]]ãšããŠããã©ãŒãã³ã¹ãžã®æèã¯å€§äºã ãããïŒ `Open Process Explorer` ã³ãã³ãã§Process Explorerãéããšãã¡ãããšå¥ããã»ã¹ã§åããŠããããšã確èªã§ãããã
![[20250601_20_59_16.webp|frame]]
*Process Explorerã®è¡šç€º*
### Neovimã®èšå®
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããã¯[[Neovim]]ã®èšå®ã調æŽããŠãããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> [[VSCode Neovim]]ã®ããã¯ãšã³ãã¯[[Neovim]]... ãšããããšã ã£ãã®ã§ã**[[Neovim]]ã®èšå®ããã¹ãŠãã®ãŸãŸäœ¿ãã**ã®ã§ããããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããããæããããã§ããæãåºããŠã¿ãŠãããã¯ãšã³ãã¯[[Neovim]]ãªãã ãã©ã**UIã®éšåã¯[[VSCode]]**ãªãã ãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã... ããã§ããã...ããšããããšã¯ã[[Neovim]]ã®èšå®ããã**UIã«é¢ããéšåãé€å€**ããªããã°ãããªããšããããšã§ããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããUIã«é¢ããèšå®ã[[Neovimãã©ã°ã€ã³]]ã[[LSP]]ãªã©[[VSCode]]ã«ä»»ããæ©èœã¯ãšã©ãŒãåºãªãããã«é€å€ããªããã°ãããªããã ãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãã
... é£ãããã§ãã...ã
#### LSPãç¡å¹åãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> [[LSP]]ã¯[[VSCode]]ã§çšæãããŠãããã®ã䜿ãã°ããããã[[Neovim]]ã®[[LSP]]èšå®ã¯ç¡å¹åãã¡ãããã
```lua
-- lua/lsp.lua
-- â
VSCode Neovimã«ããèšå®èªã¿èŸŒã¿ã§ã¯ãªãå Žåã®ã¿ãLSPãæå¹ã«ãã
if not vim.g.vscode then
vim.lsp.enable({
"bashls",
"biome",
-- äžç¥
"vue_ls",
"yamlls",
})
end
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãã®èšå®ãå
¥ããªããŠã[[VSCode]]ã®æ©èœã¯äœ¿ãããã§ããããã ããã¡ã€ã«ãéããã¿ã€ãã³ã°ã§[[Neovim]]ã®[[LSPã¯ã©ã€ã¢ã³ã]]ãèµ·åããŠããŸããããããå¥ã®[[Language Server]]ãæ©èœããŠããŸã... ãšããããšã§ãããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããã䜿ããªã[[LSPã¯ã©ã€ã¢ã³ã]]ã[[Language Server]]ãç¡é§ã«åãã¡ãã£ãŠããã©ãŒãã³ã¹ãèœã¡ã¡ãããã ãã
### lazy.nvimã§äžèŠãªãã©ã°ã€ã³ãç¡å¹åãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> [[Neovim]]ã®ãã©ã°ã€ã³ãããŒãžã£ãŒã¯äœã䜿ã£ãŠããããªïŒ ãããã¯[[lazy.nvim]]ã䜿ã£ãŠãããããããã§ã¯[[lazy.nvim]]ã§ãã©ã°ã€ã³ã®æå¹/ç¡å¹ãåãæ¿ããæ¹æ³ã玹ä»ãããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãã
... å
šç¶åãããªãã®ã§ãããªã¡ããã«ããŸããããŸã...ã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããä»»ããŠãïŒ ãŸãã¯[[lazy.nvim]]ã®`setup`颿°ã« `defaults.cond` ãæå®ããŠã¿ããïŒ
```lua
-- lua/plugin.lua
require("lazy").setup({
spec = {
{ import = "plugins" },
},
diff = { cmd = "terminal_git" },
change_detection = {
notify = false,
},
defaults = {
-- â
ããã远å
cond = function()
-- VSCode Neovimããã®èµ·åã§ãªãå Žåã®ã¿ true ãè¿ã
return not vim.g.vscode
end,
},
})
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©...ã`defaults.cond` ã«æå®ãã颿°ã `true` ãè¿ãå Žåã®ã¿ã[[lazy.nvim]]ã[[Neovimãã©ã°ã€ã³]]ãæå¹åãããšããããšã§ããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããã[[lazy.nvim]]ã®ããã¥ã¡ã³ãã§ãã[condãæå®ããã®ã¯VSCodeãªã©ããèµ·åãããšãã«ããã©ã«ãã§ãã©ã°ã€ã³ãç¡å¹åãããã](https://lazy.folke.io/configuration)ã£ãŠæžããŠãããã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãã... ã§ãããã ãšã[[VSCode Neovim]]ããèµ·åãããšãã¯[[Neovimãã©ã°ã€ã³]]ã䜿ããªããšããããšã«ãªã£ã¡ãããŸãããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> 倧äžå€«ã ãïŒ [[VSCode Neovim]]ã§äœ¿ããã[[Neovimãã©ã°ã€ã³]]ã®åå¥èšå®ã§ `cond = true` ãæå®ããŠãããã°ãããã ãïŒ
```lua
-- lua/plugins/lasterisk.lua
return {
"rapan931/lasterisk.nvim",
-- â
ããã远å ãããš VSCode Neovim ããã®èµ·åã§ãæå¹ã«ãªã
cond = true,
}
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©...ã ããŸãåºæ¥ãŠããŸãããã§ããæ
£ãããŸã§ã¯**ã©ã®ãã©ã°ã€ã³ã[[VSCode Neovim]]ã§æå¹ã«ãããã®å€æãé£ããã**ã§ããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããæ
£ããªããšé£ãããšæããã[[ð䜿ã£ãããšã®ããNeovimãã©ã°ã€ã³äžèЧ]] ã [[ð䜿ã£ãããšã®ããVimãã©ã°ã€ã³äžèЧ]] ã« [[VSCode Neovim]]ã§æå¹ã«ããŠãããã©ãããèŒããŠããããã ãããããã°åèã«ããŠã¿ãŠãã
### ããŒãããã®èª¿æŽ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> æ¬ç« ã®ã©ã¹ãã¯ããŒãããã®èšå®ã ãïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããŒãããã®èšå®... ãšãããš[[keybindings.json]]ã«èšå®ãæžãã®ã§ããããïŒ ãããšããããã¯ã°ã©ãŠã³ãã[[Neovim]]ãªã®ã§ã[[Neovim]]ã®èšå®ãã¡ã€ã«ã«æžãã®ã§ããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ã³ãŒã¡ãããéããªã£ãŠãããïŒ åºæ¬çã«ã¯ **[[Neovim]]ã®ããŒããããã¡ã€ã«ã«æžãããèšå®**ã䜿ããããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©...ã[[Neovim]]ã§ã¡ãããšããŒããããèšå®ããŠããã°ã[[VSCode Neovim]]ã®ããã«æéãæããå¿
èŠã¯ãªãã®ã§ãããããã£ãã§ãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããããšããããããããããªããã ããã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã...ïŒ
#### UIã«é¢ããããŒããããå¥ã§èšå®ãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ã³ãŒã¡ãããç¥ã£ãŠã®ãšããã[[VSCode Neovim]]ã§ã¯[[VSCode]]ãUIãæ
åœããŠãããããã ããã[[Neovim]]åãã®ããŒãããã ãšçµæ§äžéœåãåºãŠãããã ãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã... ãããŸã§ã¯äžæã飿ºããŠãããªããã§ãããæ®å¿µã§ãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããã ãã[[Neovim]]ã®ããŒããããã¡ã€ã«ã«è¿œå ã®èšå®ãå¿
èŠã ããäžè¬çãªèšå®ãããã€ãæžããŠãããïŒ
```lua
-- lua/keymaps.lua
if vim.g.vscode then
local vscode = require("vscode")
-- ååŸã®å€æŽç¹(Git)ã«ç§»å
vim.keymap.set("n", "<space>j", function()
vscode.action("workbench.action.editor.nextChange")
end)
vim.keymap.set("n", "<space>k", function()
vscode.action("workbench.action.editor.previousChange")
end)
--------------------------------------------------------------
-- VSCodeã®settings.jsonã«ãèšå®ãå¿
èŠ (Neovim以å€ã®ã¿ãã®åãæ¿ã)
--------------------------------------------------------------
-- å·Šã®ã¿ããžç§»å
vim.keymap.set("n", "<Space>l", function()
vscode.action("workbench.action.nextEditorInGroup")
end)
-- å³ã®ã¿ããžç§»å
vim.keymap.set("n", "<Space>h", function()
vscode.action("workbench.action.previousEditorInGroup")
end)
-- çŸåšã®ã¿ããéãã
vim.keymap.set("n", "<Space>q", function()
vscode.action("workbench.action.closeActiveEditor")
end)
-- çŸåšã®ã¿ã以å€ããã¹ãŠéãã
vim.keymap.set("n", "<space>w", function()
vscode.action("workbench.action.closeOtherEditors")
end)
-- fold/unfold
vim.keymap.set("n", "zc", function()
vscode.action("editor.fold")
end)
vim.keymap.set("n", "zo", function()
vscode.action("editor.unfold")
end)
end
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> `vim.g.vscode` ã¯[[VSCode Neovim]]ããã®èµ·åå€å®ã ã£ããšæããŸããã`vscode.action` ãšããã®ã¯[[VSCode]]ã®ã³ãã³ããå®è¡ãã颿°ãªã®ã§ããããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããã`vscode.action(commandID)` ãšãã圢ã§[[VSCode]]ã®ã³ãã³ããéåæã«å®è¡ã§ãããã ããä»ã«ã[10è¿ãã¡ãœããã䜿ãã](https://github.com/vscode-neovim/vscode-neovim?tab=readme-ov-file#%EF%B8%8F-api)ãã©ãã»ãšãã©ã®å Žå㯠`vscode.action` ã ãèŠããŠããã°ããããããªãããªã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> [[VSCode]]ã®commandIDã¯ãããŒããŒãã·ã§ãŒãã«ããã®èšå®ã§å³ã¯ãªãã¯ã¡ãã¥ãŒããã¯ãªããããŒãã«ã³ããŒã§ããã®ã§ããããå©çšããã°ããããã§ããã
![[20250602_00_22_15.webp|frame]]
*ã³ãã³ãåã®å³ã¯ãªãã¯ã¡ãã¥ãŒãã `Copy Command ID` ãéžæãã*
#### ãšãã£ã¿ä»¥å€ã§å©çšãããããããŒãèšå®ãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããªã¡ããããã£ãèŠããŠãããããŒãããèšå®ãªãã§ããã©ããVSCodeã®settings.jsonã«ãèšå®ãå¿
èŠããšæžãããŠããã®ã¯ã©ãããæå³ãªãã§ããïŒ
```lua
--------------------------------------------------------------
-- VSCodeã®settings.jsonã«ãèšå®ãå¿
èŠ (Neovim以å€ã®ã¿ãã®åãæ¿ã)
--------------------------------------------------------------
-- å·Šã®ã¿ããžç§»å
vim.keymap.set("n", "<Space>l", function()
vscode.action("workbench.action.nextEditorInGroup")
end)
```
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããããã£ãã説æãå¿ããŠããã©ãããã¯ãšãŠã倧äºãªãã€ã³ããªãã ãïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ä»ãŸã§ã®æãã ãšã**ãšãã£ã¿ãã¢ã¯ãã£ãã§ã¯ãªãã¿ãã§ããåãã·ã§ãŒãã«ããããŒã§åäœããããã«ãããã**ã§ãããïŒ
![[20250602_00_41_23.webp|frame]]
*ãšãã£ã¿ããªãã¿ãã§ã¯Neovimã®ããŒãããã¯å¹ããªã*
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããã ãããããã颚ã«[[keybindings.json]]ã«ãèšå®ããªããã°ãããªããã ãã
```json
// keybindings.json
{
// 次/åã®ã¿ããžç§»å
// Neovimã§ãèšå®ãå¿
èŠ (Neovimãšãã£ã¿ã®ã¿ãåãæ¿ã)
{
"key": "space l",
"command": "workbench.action.nextEditorInGroup",
"when": "!inputFocus"
},
{
"key": "space h",
"command": "workbench.action.previousEditorInGroup",
"when": "!inputFocus"
},
}
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©... ãããã§ã[[VSCode]]ã§ããŒãããèšå®ããŠããŸãã°ããããã[[Neovim]]ã®æ¹ã§ããŒãããããªããŠãããã®ã§ã¯ãªãã§ããããïŒ
```lua
--------------------------------------------------------------
-- â
ãã®èšå®ã¯ãããªãã®ã§ã¯ïŒïŒïŒ
--------------------------------------------------------------
-- å·Šã®ã¿ããžç§»å
vim.keymap.set("n", "<Space>l", function()
vscode.action("workbench.action.nextEditorInGroup")
end)
-- å³ã®ã¿ããžç§»å
vim.keymap.set("n", "<Space>h", function()
vscode.action("workbench.action.previousEditorInGroup")
end)
```
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããããæãããããã£ããã ããããã®ããã«èšå®ããŠè©ŠããŠã¿ãŠã¯ã©ãããªïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããã§ãããããŸã«ã¯æãåãããŠç¢ºèªããŠã¿ãŸããã[[Neovim]]åŽã®èšå®ãæ¶ããŠ... [[VSCode]]èšå®ã® `when` ããããªããã§ããã
```json
{
"key": "space l",
"command": "workbench.action.nextEditorInGroup"
// "when": "!inputFocus"
},
{
"key": "space h",
"command": "workbench.action.previousEditorInGroup"
// "when": "!inputFocus"
},
```
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ...
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããšã¯[[VSCode]]ãåèµ·åããŠ...
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> [[Neovim]]ã®èšå®ãèªã¿èŸŒã¿çŽãã ããªã `Neovim: Restart Extension` ãå®è¡ããã°[[VSCode]]ã®åèµ·åã¯äžèŠã ãïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããããšãããããŸãããã®ã³ãã³ããå®è¡ããŠ... ãã¡ã€ã«ãè€æ°éã㊠`<Space>h` ã§åã®ãšãã£ã¿ã«ç§»å...ãšãããŸãã§ããŸããïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããããããã[[Neovim]]ã® `keymaps.lua` ã§èšå®ãããŠãã `<Space>b` ã¯åãããªïŒ
```lua
vim.keymap.set("n", "<Space>b", function()
vim.cmd("normal ysiW*.")
end, { silent = true })
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãã... åããªãã§ã...ããã£ãã¯åããŠããæ°ãããã®ã§ãããã©ãããŠ...ã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããæžæã£ã¡ããããã[[ã¹ããŒã¿ã¹ã㌠(VSCode)|ã¹ããŒã¿ã¹ããŒ]]ãèŠãŠã¿ãããïŒ
![[20250602_02_52_51.webp|frame]]
*SpaceããŒãæŒããçŽåŸã®ã¹ããŒã¿ã¹ããŒ*
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã...ããããããŠã[[VSCode]]ã§ `Space h` ã®ãããª[[2ããŒãã€ã³ã]]ãããŠããŸã£ãããã`Space`ããã¹ãŠ[[VSCode]]ã«å¥ªãããŠããŸã£ãã®ã§ãããã...ïŒ
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> æ£è§£ïŒ ãã£ãã³ãŒã¡ããã `when` ãã³ã¡ã³ãã¢ãŠããã¡ãã£ãããã**ãã¹ãŠã®å Žé¢ã§[[VSCode]]ãSpaceããŒã[[2ããŒãã€ã³ã]]ã§ãããšèªèããŠããŸã£ã**ãã ãïŒ
```json
{
"key": "space l",
"command": "workbench.action.nextEditorInGroup"
// "when": "!inputFocus"
},
{
"key": "space h",
"command": "workbench.action.previousEditorInGroup"
// "when": "!inputFocus"
},
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãªãã»ã©...ããã® `"when": "!inputFocus"` ã«ã¯ããããæå³ããã£ããã§ããããããªãå
¥åããŠãããšãããšãã£ã¿ã§ã¯æå¹ã«ãªããªããããSpaceã[[2ããŒãã€ã³ã]]ãšæ±ãããªããŠãã...ãšããããã§ããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããã ããããšãã£ã¿ã®ããŒãã€ã³ãã¯[[Neovim]]ã®æ¹ã§ããŒãããããå¿
èŠããããã ãïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> (Spaceã®[[2ããŒãã€ã³ã]]ã§ã¯ãªãã`Cmd+Tab` ãªã©ã«ããã°ãã®ãããªå¿é
ãããªããŠããã¿ããã ãã©... ããã¯ããªã¡ããã®ãã ããããããã ãããªã...ã)
#### ããã©ã«ãã§ã¯å©çšã§ããªãããŒããã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> äžéšã®ããŒãããã¯[[VSCode]]ã®[[keybindings.json]]ã«èšå®ã远å ããªããšäœ¿ããªãããæ°ãã€ããŠãã
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ããããã°ã[[Neovim]]ã§èšå®ãã `<C-CR>` ã®ããŒããããå¹ããªããŠæ©ãã§ããŸãã...ã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããããã**修食ããŒãšã¢ã«ãã¡ãããæ°å以å€ã®åææŒãã¯ãäžéšãé€ããŠç¡å¹åãããŠãã**ããã以äžã®ãããªèšå®ãå¿
èŠã«ãªããã ãïŒ
```json
// keybindings.json
{
// Ctrl + Enter ã VSCode Neovimã§æå¹ã«ãã
{
"command": "vscode-neovim.send",
"key": "ctrl+enter",
"when": "editorTextFocus && neovim.mode != insert",
"args": "<C-CR>"
}
}
```
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ã[[ðVSCode Neovimã§<C-CR>ãªã©å©çšã§ããªãããŒãã€ã³ãããã]]ãã§è©³ããæžãããŠããŸãããåŸã§ãã£ããèªãã§ãããŸãã
## äŒæ©
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ããŠãåºæ¬ã¯äžéãçµãã£ãããããããã¯ãã©ã°ã€ã³ã®è©±ã现ããèšå®ã®è©±ãããŠãããïŒ
> [!left-bubble] ![[vscode-chan-face1-transparent.webp]]
>
> ãé¡ãããŸã... ãšèšããããšããã§ãããããªã¡ãããããããäŒæ©ã«ããŸãããïŒ ãŠããããé ãŸãããžãã®ã©ãã
> [!right-bubble] ![[neovim-chan-face1.webp]]
>
> ãããããäžæ°ã«è©°ã蟌ã¿ããã¯è¯ããªãããïŒ ãããããç¶ãã¯äŒæ©ããŠããã«ããããïŒ
> (ã³ãŒã¡ããã¯ç²ããŠãããšäº¬éœåŒã«ãªãã®ããªïŒ)
<p style="text-align: center; font-size: 150%; font-weight: bold; letter-spacing: .3rem;">
To Be Continued...
</p>
---
1èšäºã§çµããããã€ããã§ããããæ³å以äžã®åéã«ãªã£ãŠããŸã£ãã®ã§ç¶ãã¯åŸç·šãšããŸããè»è·¡ã·ãªãŒãºå¶äœè
ã®æ°æã¡ãåããæ°ãããŸããð€£
远èš: ç¶ãã§ãã
<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颚ã«ã«ã¹ã¿ãã€ãºããæ¹æ³ãåŸç·šã§è§£èª¬ãLazygitãoil.nvim颚ãšã¯ã¹ãããŒã©ãŒãTODOã³ã¡ã³ãã®ãã€ã©ã€ãããã¡ãžãŒãã¡ã€ã³ããŒãå
šææ€çŽ¢ã®ãã¬ãã¥ãŒãªã©ãæ¡åŒµæ©èœãèšå®äŸã詳ãã玹ä»ããŠããŸããVSCodeãšNeovimã®äºåæµãç®æãæ¹ãããšãã£ã¿ã®ã«ã¹ã¿ãã€ãºã«èå³ãããæ¹ã¯ãã²ã芧ãã ããã</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/%F0%9F%93%98Articles/attachments/2025-06-15-1.webp" />
<a data-href="ðç®æãäºåæµïŒ VSCodeãNeovimè²ã«ã³ãŒãã£ããŒãããŠã¿ã -åŸç·š-" class="internal-link"></a>
</div>
%%[[ðç®æãäºåæµïŒ VSCodeãNeovimè²ã«ã³ãŒãã£ããŒãããŠã¿ã -åŸç·š-]]%%