ã¯ããã«
ãã®èšäºã®ç®ç
çè
ãå幎éVimããããç¶ããããæ°ã¥ãã°æ¥œãã䜿ããããã«ãªã£ãçµéšãå
ã«ãåå¿è
ã§ãç¡çãªãVimãå§ããããããŒããããã玹ä»ããŸãã
ãã£ãšããªãããVimã奜ãã«ãªãã¯ãã§ãã
â»ãã®èšäºã§ã¯ãã³ãã³ãã®ç޹ä»ãèšå®ã®èª¬æã¯æäœéã«ãšã©ããŸãã
察象èªè
- Vimã«èå³ã¯ãããã©æ·å± ãé«ããšæããŠãã人
- Vimã䜿ãå§ãããã©ãéäžã§æ«æãã人
çè ãVimã䜿ããããã«ãªããŸã§
æšå¹Žã®4æããæªçµéšè»¢è·ã§ãšã³ãžãã¢ã«ãªããå ¥ç€ŸçŽåŸã«Vimãã©ãåããVSCodeãã¢ã³ã€ã³ã¹ããŒã«ãããã3æ¥ã§æ«æã
ãã³ãã³ããèŠããªãããããªãããšããã®ãå«ãããŠããã°ããé ãããŠããŸããããå¿ã®å¥¥åºã§ã¯ã絶察Vim䜿ããæ¹ãããããª...ããšããæããåžžã«ãããŸããã
ããã§æãã€ããã®ãããäžæ°ã«ããã®ã¯èŸãã®ã§ãé·æéãããŠããã£ãšç¶ãããäœæŠã§ããçæéã§é 匵ã£ãŠã³ãã³ããèŠããã®ã§ã¯ãªãããããé·æéãããŠãã£ãŠããã°ãåæã«ã§ããããã«ãªã£ãŠããããïŒãšããç®æ®µã§ãã
ãããããŸãããããçŸåšãšãã£ã¿ã¯Neovimã䜿çšããŠããŸãã(粟é²äž)
Vimãå§ããå¿åŸ
Vimã¯ããã¹ãŠããã¹ã¿ãŒããªããã°äœ¿ããªãããã®ã§ã¯ãããŸãããæ¥ã ã®ç掻ãä»äºã®äžã§ãå°ããã€åãå ¥ããŠããããšã§èªç¶ãšæã«éŠŽæã¿ããã€ã®éã«ããªããŠã¯ãªããªãååšã«ãªãã¯ãã§ãã
-
æåããå®ç§ãç®æããªã
- ãããªããç¢å°ããŒã絶察䜿ããªãããªã©ãå®ç§ãç®æããçžãã«ãŒã«ã¯æ«æããã¡
-
èªåã®äžã®ã楜ããããåååã«
- ã³ãã³ããèŠããªãããšæãããå°ããã€ã§ããããšããæ¥œãã
以äžãç§ãå®éã«åã£ãè¡åãããšã«ãããŒããããã3ã¹ãããã§ã玹ä»ããŸãã
ã¹ããã1: ãã©ãŠã¶æäœãVimã£ãœãããŠã¿ã
æé: Vim掻éå§ 1~2ã¶æç®
ä»äºã§ããã©ã€ããŒãã§ãæ¯æ¥äœ¿ããã©ãŠã¶æäœããVimã®ã³ãã³ãã§æäœåºæ¥ãããã«èšå®ããŸããããGoogle Chromeã®æ¡åŒµæ©èœã®Vimium Cããªã¹ã¹ã¡ã§ãã
以äžã®ããŒæäœã¯å®éã®Vimã§ãããã¡ããã¡ã䜿çšããŸãã
| ã㌠| 説æ |
|---|---|
| j | äžã«ç§»å |
| k | äžã«ç§»å |
| f | ãªã³ã¯ã«ãã©ãŒã«ã¹ |
| gg | ããŒãžã®å é ã«ç§»å |
| G | ããŒãžã®æ«å°Ÿã«ç§»å |
| Esc | äœãèµ·ãããåãããªããªã£ãæã«é£æããŸããã |
ããã§ãããªãã®äžçã«Vimãåãå
¥ããããŸããã
æåã¯ããªã«ãããããã£ïŒãã£ãŠãªããšæããŸãããã€ããšéãæäœæã楜ãã¿ãŸãããã
ãã®ãã§ãŒãºã§ã¯ãã䜿ãã®ãšãã£ã¿ã§Vimã䜿ãããšãèããããŸããã©ãŠã¶æäœã§é°å²æ°ãæŽã¿ãŸãããã倧äºãªããšãªã®ã§2åèšããŸããããŸãã¯ãã©ãŠã¶æäœã ãã§OKã§ããæäœãæã«éŠŽæããŸã§ãçŠããã«è¡ããŸãããã
楜ãããã€ã³ã
- ããïŒã¹ã¯ããŒã«ã§ããã¹ãŽãïŒ
- ããŠã¹äœ¿ããªãã®æå€ãšããïŒ
ã¹ããã2: VSCodeãªã©ã«Vimã®æ¡åŒµæ©èœãå ¥ãã
æé: Vim掻éå§ 2~4ã¶æç®
ãã©ãŠã¶æäœãéããŠããŒããŒãã§ã®äžäžç§»åããã¹ã¿ãŒããããªãã¯ããã£ã𿮿®µäœ¿ã£ãŠãããšãã£ã¿ã§ãåãããã«æäœããããšæãå§ããŠããã§ãããã
ãã®ãã§ãŒãºããæ¬æ Œçã«Vimã䜿ãå§ããŸãã
VSCodeã®æ¡åŒµæ©èœã®æ€çŽ¢çªãããVimããšæ€çŽ¢ããã奜ã¿ã®ãã®ãã€ã³ã¹ããŒã«ããŠã¿ãŠãã ããã以äžã®ãã®ã§ãããããããŸããã
ããããã¯ããŒãã«ã¢ãŒããã€ã³ãµãŒãã¢ãŒããªã©ãã¢ãŒããšãã£ãæ°ããªæŠå¿µãåºãŠããŸãã(ããžã¥ã¢ã«ã¢ãŒããã³ãã³ãã¢ãŒãã¯å²æ)
ããŒãã«ã¢ãŒã
- ããã¹ãã®ç·šéã§ã¯ãªããæäœã«ç¹åããã¢ãŒã
ã€ã³ãµãŒãã¢ãŒã
- ããã¹ããå®éã«å ¥åããã¢ãŒã
| ã㌠| 説æ |
|---|---|
| h | å·Šã«ç§»å |
| l | å³ã«ç§»å |
| x | äžæåæ¶ã |
| dd | äžè¡æ¶ã |
| yy | äžè¡ã³ããŒ(ã€ã³ã¯) |
| p | 貌ãä»ã |
| i | ã€ã³ãµãŒãã¢ãŒãã«åãæ¿ã |
| Esc | ã€ã³ãµãŒãã¢ãŒãããããŒãã«ã¢ãŒããž |
æåã¯ãç§»åã»åé€ã»ã³ãããªã©ã®æäœéã®ããã¹ãç·šéãã§ããã³ãã³ãããå§ããŸãããã
ããã§ã倧äºãªããšã¯ãã絶察ç¢å°ããŒã¯äœ¿ããªãïŒããšèªåãå³ããçžããªãããšã§ãã æäœãããŸããããã€ã©ã€ã©ããæ¥ã¯ãç¡çããç¢å°ããŒã§ã«ãŒãœã«ãç§»åãããŠãã ããããããŠæ¬¡ã®æ¥ãæ°ããªæ°æã¡ã§ãå°ãã ãã§ãããã®ã§Vimã®ã³ãã³ãã§æäœããŠã¿ãŸãããã
æ¬åœã«å°ãã ãã§è¯ãã®ã§ããæ¯æ¥å°ããã€ã§ãVimãè§Šãç¶ããããšã§ããã€ã®æ¥ãèªç¶ãšã§ããããšãå¢ããŠãããŸãããçŠãããç¶ãããããšã ããæèããŸãããã
ä»ã«ã©ããªæäœãã§ãããã ããïŒãšæ°ã«ãªã£ãæ¹ã¯ãåºæ¬çãªVimã®æäœãåŠã¹ããã¥ãŒããªã¢ã«ãvimtutorãã«ãã£ã¬ã³ãžããã®ããããšæããŸãã
ã䜿ãã®PCã®ã¿ãŒããã«ã§ä»¥äžã®ããã«å®è¡ããã ãã§ãã¥ãŒããªã¢ã«ãèµ·åããŸãã
$ vimtutor
ãvimtutorãã§ã¯ãããããã®ã³ãã³ããåºãŠããŸãããäžæ°ã«èŠããå¿ èŠã¯ãããŸãããã¡ãã£ãšãã€ãããªãšæã£ããã®ãã¡ã¢ããŠã䜿ã£ãŠã¿ãŸãããã
楜ãããã€ã³ã
- ããŒããŒãã ãã§ç·šéã£ãŠã«ãã³ããïŒ
- ã³ãã³ãããããã ãªãææ¥äœ¿ã£ãŠã¿ããã
ã¹ããã2ãšäžŠè¡: ããŒãã·ãŒãäœã
ã¹ããã2ã§ãããªãã¯æ°å€ãã®ã³ãã³ããšåºäŒãããšã§ããããã³ãã³ããå€ããŠããã®ã³ãã³ããªãã ã£ãïŒããšå¿
ããªããŸãã
èªåã®è³å
æŽçã®ããã«ããèªåã ãã®ããŒãã·ãŒããäœããšè¯ãã§ãããã
ç§ã¯Notionã«ãŸãšããŠãããæ¥ã
æ°ã«ãªã£ãã³ãã³ãã¯ã¡ã¢ããŠããŸãã䜿ã£ãŠããªãã³ãã³ãã¯å¿ããã®ã§ãããŸã«ããŒãã·ãŒããèŠè¿ããšãããããªã®ãã£ããªããšãªããŸãç¬
ã¹ããã2ãšäžŠè¡: èšäºãåç»ã§æ·±æã
ã¹ããã2ã§ç޹ä»ãããç§»åã»åé€ã»ã³ããã ãã ã©ãæ£çŽVimã®è¯ãããããŸããããèŸããããããŸããã
ãŸã ãŸã ãããã䟿å©ãªã³ãã³ããããã®ã§ããããããããšã§ããªãããª...ããšæã£ãããã°ã°ã£ãŠã¿ãŸããããChatGPTå
çã«èãã®ããããšæããŸãã
ãŸãäžèšã®ææã¯ãæ¬åœã«è¯ãã£ãã®ã§ããªããšãªãç§»åã»åé€ã»ã³ããã«æ
£ããæ¹ã¯ããã²èŠãŠã¿ãŠãã ããã
- ã¯ãããŠã®Vim ã Vimã¯ãããïŒãŽãªã©ãšåŠã¶Vimè¬åº§
åã¢ãŒãããšã«è©³ãã説æïŒã³ãã³ãã玹ä»ãããŠããŠãVimã§ã©ããªããšãã§ãããç¶²çŸ çã«åŠç¿ã§ããŸãã
- ãVimå ¥éVol.1ããããèŠããã ãã§å ¥éã§ããïŒVimã®äœ¿ãæ¹è¶ å ¥é
ç§ã¯ãã®åç»ãèŠãŠããVimã®èã«ãªããŸãããããã£ïŒïŒãããªããšãã§ããã®ïŒïŒïŒããšãã£ãšVimã«èå³ãæ¹§ãã¯ãã§ãã
ã¹ããã3: èšå®ãã¡ã€ã«ãæžããŠããšãã£ã¿ãšããŠã®Vimã䜿ã£ãŠã¿ã
æé: Vim掻éå§ 4~6ã¶æç®
ã䜿ãã®IDEã§Vimã®æäœã«ããçšåºŠãªããããªãã¯ããã£ãšæ¥ã
è²ããªã³ãã³ããæ€çŽ¢ããŠãããããªé¢çœãã³ãã³ããããŸããïŒããšäŒç€Ÿã®ååãå人ã«èªæ
¢ãã«è©±ããŠããã¯ãã§ãã
ãããŠèã
ãèªåã§èšå®ãã¡ã€ã«ãæžãã°ãèªåç¬èªã®èšå®ãã§ããããšãæ°ãä»ããŠããã§ãããããããŸãè¯ãããããªããã©ãã©ã°ã€ã³ãªããã®ã®ååšãç¥ã£ãŠããã¯ãã
ãã®ãã§ãŒãºã§ã¯ãèªåã§èšå®ãã¡ã€ã«ãæžããŠVimãæ¬æ Œçã«ãšãã£ã¿ãšããŠäœ¿ãå§ããŠã¿ãŸãããã
èšå®ãã¡ã€ã«ã«ã€ããŠ
èšå®ãã¡ã€ã«(.vimrc/init.vimãªã©)ããèªèº«ã§çšæãããšãVimãNeovimã§ããŒãããã³ã°ãã«ã¹ã¿ãã€ãºã§ããŸããããã®ããŒã£ãŠè¥å¹²æŒãããããª...ããšæãããã®ããã£ãããæãåã£ãŠèšå®ãã¡ã€ã«ãæžããŠã¿ãã®ããããããããŸããã
äžããæžãã®ã¯å€§å€ãªã®ã§ãæ€çŽ¢ããŠè¯ããããªãã®ãç䌌ããŠã¿ãŸãããã
ç§ã¯$ã^ãæŒãã®ãèŠæãªã®ã§ãCnt+hãCnt+lã§æé ã»ææ«ã«ç§»åã§ããããã«èšå®ããŠããŸãã
"ããŒãã«ã¢ãŒã/ããžã¥ã¢ã«ã¢ãŒãæã«ãæé ã»ææ«ã«ç§»åããããŒã倿Ž
nnoremap <C-h> ^
nnoremap <C-l> $
vnoremap <C-h> ^
vnoremap <C-l> $
ãã©ã°ã€ã³ã«ã€ããŠ
ãIDEãœãããããªãããèŠãç®ãã£ããããããããšããã°ããã©ã°ã€ã³ãå
¥ããŠã¿ãŸããããæ¬åœã«ããããªçš®é¡ãããã®ã§ãäžåºŠã¯èããããšããã ããã Vim ã§ã§ãããããšã¯ãã®ããšã ããšçæããã§ãããã
ãããããã©ã°ã€ã³ã®èšäºãã¿ãããGitHubã®ãªããžããªãæ€çŽ¢ããŠãæåã©ããããã£ãšèŠãŠã¿ãã®ãé¢çœããããããŸããã
ç§ã䜿ã£ãŠãããã©ã°ã€ã³ã®äžäŸãã玹ä»ããŸãã
- fzf (ãã¡ã€ã«æ€çŽ¢)
- vim-gutter (Gitã®å·®å衚瀺ãªã©)
- vim-airline (ã¹ããŒã¿ã¹ã©ã€ã³ãã«ãã³ããããŠããã)
- rainbow (ãã¢ã®ã«ãã³ã«è²ã€ããŠããã)
èšå®ãã¡ã€ã«ãå°ããã€æžãããšãã£ã¿ã®æäœæ§ãåäžããŠãããšã
èšå®ãã¡ã€ã«ãæžãããšèªäœãã©ãã©ã楜ãããªããããããã§ããããªïŒãããã§ããããªïŒããšèª¿ã¹ããã詊è¡é¯èª€ãããããæéãå¢ããŠããã§ãããã
楜ãããã€ã³ã
- ãã°ïŒãã®ããŒãã€ã³ãã¯ãã°ãïŒä¿ºå€©æïŒ
- ããïŒãããããªæéïŒãã®ãã©ã°ã€ã³è©Šãããã£ããã©ãææ¥ããã...
è£è¶³: ç§ãVSCodeããNeovimã«ç§»è¡ãããŸã§
æ®æ®µã®æ¥åäžã¯ãVSCodeäžã§Vimã®æ¡åŒµæ©èœã䜿çšãã€ã€ã
Vim掻4ã¶æç®ããããããå°ãã¥ã€Neovimã®èšå®ãã¡ã€ã«ãæžããŠãããŸããã
ãã®èšå®ãã¡ã€ã«ãæžãããšããšãŠã楜ãããèªåã ãã®ããŒãã€ã³ããèšå®ããããè²ããªãã©ã°ã€ã³ãå ¥ããŠäœ¿ã£ãŠã¿ããããŸãã§èªåã ãã®ãšãã£ã¿ãäœãäžããŠããæèŠã§ããã
ããçšåºŠèšå®ãã¡ã€ã«ãæžãããšããã§ãNeovimã§ç·šéããããVSCodeã§ç·šéããããšè¡ãæ¥ããªãããVim掻6ã¶æç®ã§ãå®å šã«Neovimã«ç§»è¡ããŸããã
â»ããããªãããVSCodeã®æ¡åŒµæ©èœVSCode Neovimãã䜿ãã®æ¹ãªãããèªèº«ã§èšå®ããinit.luaãèªã¿èŸŒãã§ãããã¿ãããªã®ã§ãèªåã§èšå®ãã¡ã€ã«ãæžãã€ã€VSCodeã䜿ããããã§ãã
ã¹ããã4: ç¡éã®åœŒæ¹ãž
æé: Vim掻éå§ 6ã¶æç®~
ãããŸã§æ¥ãããªãã¯ãã£ãšãVimãªãã®ç掻ãèããããªãã»ã©ã«VimãæçšããVimãå§ããã®ããã«ã€ãŸã¥ããŠèŠåŽãããã®æ¥ã ãæãããæããããããŸããã
åœææããŠããæ·å± ã®é«ãããã³ãã³ããèŠããªããããšãããã¬ãã·ã£ãŒã¯ããã¯ãã©ãå¹ã颚ããã®è±å¯ãªã³ãã³ãã®æ°ã ã¯ããã€ã®éã«ãèªç¶ãšæã«éŠŽæãã§ãããèªåã§ãé©ãã»ã©äœ¿ãããªããŠããããšã«æ°ä»ãã§ãããã
ãã®ãã§ãŒãºã§ã¯ãããªãã®èå³ã®èµŽããŸãŸã«ææŠããŠã¿ãŠãã ããã
ããªãã ãã®Vimã¹ã¿ã€ã«ãæ¢æ±ããããã«é²åãããŠãããŸãããã
æåŸã«
ãããŸã§ãä»ãåãããã ããããããšãããããŸããã
Vimã¯ç¢ºãã«æåã¯é£ãããããããŸããããé·æéãããç¶ããŠããããšã§å¿
ãæã«éŠŽæãæ¥ãæ¥ãŸãããã®èšäºããããªãã®Vimã©ã€ãã®å§ãŸãã®äžæ©ã®æå©ãã«ãªãã°å¹žãã§ãã