Windows ç gVim ãã¢ã³ã¤ã³ã¹ãã¼ã«ãã話
以åã«、Windows11 on WSL2 + wezterm + Neovim = æå¼·éçºç°å¢ã¨ããçã ããè¨äºãæ¸ããã®ã ã、ãã®ç¶ãã®è¨äºã¨è¨ã£ã¦ãéè¨ã§ã¯ãªã。
ãã®è¨äºã¯ Vim é§ ä¼ã® 3 æ 1 æ¥ã®è¨äºã§ãã。 ååã¯ãºãã¼ããã®netrw ã使ãããã«ã¨ããè¨äºã ã£ã。 次å㯠kuuote ããã® Vim å´ã®çµã¿è¾¼ã¿ãã©ã°ã¤ã³ãç¡å¹åãããã㯠ã¨ããè¨äºã§ãã。
gVim ã¨ã®ä»ãåã
æãè¿ãã¦ã¿ãã¨、gVim ã¨ã®ä»ãåãã¯å¤§åé·ããªã£ã。ã¨ãã£ã¿ã¨ãã¦ã¯èªåã®äººçã®ä¸ã§æãé·ãä»ãåã£ã¦ããã¨ãã£ã¿ã¨è¨ãã。Vim ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¨ã㦠gVim ãä½åº¦ã使ã£ã¦ãã。èªåã®ææã¡ã®ãã·ã³ã¯ Windows ãªã®ã§、å¿ ç¶çã« gVim ãé¸æè¢ã¨ãã¦é¸ã¶å¿ è¦ããã£ã。
gVim ã®è¯ãã¯ä½ã。ããã¯、Windows ã¨ã®ã·ã¼ã ã¬ã¹ãªé¢ä¿ã§ãã、Windows OS ã®æ©è½ããã®ã¾ã¾ä½¿ãããå ´åã«æç¨ã§ãã。ãã¤ã¦ã®èªåã«ã¨ã£ã¦ãã®é¨åã¯é常ã«éè¦ã§ãã£ã。å ·ä½çã«ã¯、å°å·æ©è½ã¨ç»é¢åéæåæ©è½ã§ãã、ãããç¡ãã¨ãã£ã¦ãããªãã¨ããèªèã§ãã£ã。
ããã、æ代ãé²ã¿、èªåã®æè¡åã®åä¸ãèãæ¹ã®å¤å、ããã« Vim å¨ãã®ãã©ã°ã¤ã³ã®æ´æ°ãé²ã㨠gVim ã§éç¨ãã¦ããäºãã ãã ãã¨åå«ã«ãªã£ã¦ãã£ãã¨ããã®ãäºå®ã§ãã。æ ã«、WSL2 ä¸ã§åã Neovim ã®å¿«é©ãã«å¿ãæã¡éããã®ã§ãã。
æè¡åã®åä¸ã«ä¼´ãèãæ¹ã®å¤å
ãã¤ã¦ã®èªåã¯ä½ã§ã gVim ã§å¦çããããªã¨èãã¦ãã。ã¡ã¼ã«ãè¦ãã天æ°ãè¦ãã、Twitter ãè¦ããããã®ã«、gVim ãæ´»ç¨ãã¦ãã。ãã¤ã¦ã® Emacs 使ãã® guru ã®ãããªç«ã¡ä½ç½®ãç®æãã¦ããã¨ããã®ããã。2000 年代åé ã«ã¤ã³ã¿ã¼ãããã«å¤å°ãªãã¨ã触ãã¦ãã人ãªãã°、「ãã Pla」ã¨ããå¤ã®åèªãæãæµ®ãã¹ããããããªã。ãã®æ¦å¿µãæã¡åºãã®ã¯ãã¾ãã«ãå¤ãããã、çµå±è¨ãããã®ã¯、1 ã¤ã®ææ³ã§å ¨é¨ãããªãã¨ããèãæ¹ã 。ããããè¦ãã®ã«ãããããã©ã¦ã¶ã«åãæ¿ããã®ã¯ãã£ãããªãã¨ããä»ã¨ãªã£ã¦ã¯æ ç±ã«ä¼¼ãä½ããå½æã¯å¤ãã®äººãæã£ã¦ãã。
ããã、èªåèªèº«ã®æè¡åã伸ã³ã¦ããã¨、「ãã Pla」ã¯æè©®ä¸ã¤ã®ãã©ãã¤ã ã§ãããªãã£ãã¨ããèãã«è³ã。Emacs ã®ä¸ã§ãªãã§ããã、ãã Plagger ã§åºæ¥ãã、ãã gVim ã§ãªãã§ãåºæ¥ããã¨ããã®ã¯、ããä¸å®æéã«ããã¦ã¯èªåã®è½åã伸ã°ãã¦ããã®ã«å¿ è¦ãªæé·çã¿ãããªãã®ã§、ã³ã³ãã¥ã¼ã¿ã«è§¦ãã人ãéãéã§ãã、ãããæªãã¨ã¯è¨ããªã。ããã、ããã«ãã ããç¶ããã®ã¯ãã£ã±ãè¯ããªããªã¨æã£ã¦ãã。
é©æé©æã¨ããè¨èã®éã、ãã£ã¨å¹çã®è¯ãã¢ããªã±ã¼ã·ã§ã³ã§ããªãããã®ã¯ããªãã¦ããã°è¯ãã®ã 。ãã®å¹çã®è¯ãã¢ããªã±ã¼ã·ã§ã³ã¨ããã®ãçã®ããè¨ãæ¹ã§、「èªåã«ã¨ã£ã¦」ã¨ããæè©ãã¤ããã¨é端ã«、ãã®äººã«ã¨ã£ã¦ã®æé©è§£ãå¤ãã£ã¦ãã¾ã。å®éã®æ、ä»èªåãå®ç¾ãã¦ãã WezTerm+NeoVim ã¨ããçµã¿åããã、「ç¾å¨ã® ArcCosine æ°」ã«ã¨ã£ã¦ã®æé©è§£ã§ãã、æªæ¥ã®åã«ã¨ã£ã¦ã®æé©è§£ãã©ããã¯ä¸æã§ãã。
ããã«、ä¸ææ³ã«ãã ããç¶ããã«、ããå¿«é©ã«、ããé«éã«、ãã便å©ã«ä½¿ããæ¹æ³ãåºã¦ãããªãæªæ¥ã®åã¯ãã£ããã¨ä»ã®「èªå」ãææ¾ãã ãã。ããããèãæ¹ã«ãªã£ã
ãã©ã°ã¤ã³å¨ãã®å¤æ´
Vim å¨ãã¯ãã¯ããã©ã°ã¤ã³åé¡ãè²ã ã¨ãã£ã¦、æ§ã ãªè£å©è¨èªã使ã£ã¦ãã©ã°ã¤ã³ãå®è£ ããã®ã常ã¨ãªã£ã¦ãã。ãã¥ã¢ VimScript ã Lua、Python ããããæ¨ãé²ãã¦ããã、ç¾ç¶ã¯ Deno ã«ããå®è£ ãããªãå¢ãã¦ãããªã¨ããå°è±¡ã 。ãã¯ã、denops.vimã®åå¨ã¯å¤§ãã。TypeScript ã«ããéçºä½é¨ãéçºè ã«ã¨ã£ã¦å¿å°ãã、ãã®ä¸、ãã¡ã¤ã« 1 å追å ããã ãã§åãã¨ããã®ãã¨ã«ãã楽ã 。èªåã§ããç°¡åã«ãã©ã°ã¤ã³ãä½ããã¨ããä½é¨ã大ãã。æ¨ä»ã¯ Node.js ãã¼ã¹ã®æ§ã ãªéçºç°å¢ãé²ãã§ãã¦、Web 㨠Terminal ã®ä¸çãã·ã¼ã ã¬ã¹ã«ãªãã¤ã¤ãããªã¨æãã¦ãã。ããã¯、Web å´ãå¯ã£ã¦ããã¨ãããã㯠Terminal å´ããã£ã¨ Web å´ã«ããæããããã«ãªã£ã、ãããã¯ããæãããããã«ãªã£ã¦ãããããªã®ãããããªã。
ãããã«ãã、gVim ã«ãã ããçç±ãä¸ã¤æ¸ã£ãã¨ããã®ã¯äºå®ã§ãã。èªåã¯ã¨ã«ãã Python å¨ãã§è¦å´ããè¦ããããã®ã§、ããã軽æ¸ãããã®ã¯ç´ æ´ãããä½é¨ã§ãã£ã。
WSL2 㨠WezTerm
WSL2 ãå¿«é©ã«ä½¿ãä¸ã§åã«ã¨ã£ã¦ WezTerm ã¯æ¬ ãããªãåå¨ã§ãã。ãã¡ãã、æ®éã« WindowsTerminal ã使ã£ã¦ãè¯ãã、WezTerm ã®ãªãã¨ãªããããã³ã°ãã¦ããæã好ããªã®ã§ãã。ããªãå¹´é½¢ãéãã¦ããçã«æªã ã«å¨äºç æ£è ããã¨èããæ¹ãããããã ããã、ä»æ¹ããªã、ããã¯ä¸æ²»ã®ç ãªã®ã§ãã。
WSL2 ã¯å®è³ª Linux ãªã®ã§、Terminal ä¸çã¸ã®ã¢ã¯ã»ã¹ããã¡ããã¡ã楽ã§ãã。Windows ã§ãããªã«ç°¡åã« Linux ã«è§¦ãäºãåºæ¥ãããã«ãªã£ãã®ã¯é©å½ã§ãã、èªåã§ãµã¼ããç«ã¦ãã¨ã、ã©ããã®ã¬ã³ã¿ã«ãµã¼ããåããã¨ã VPS 使ãã¨ãããããã®ãä¸åååãããªãã¦è¯ããªã£ãã®ã¯、æ¬å½ã«ç´ æ´ããã。ãµãã£ã¢・ããã©ãããã¨ã。
ããã©ä½å¶ã«ãªã£ã¦ãã、Windows ã¯æãã£ãã Linux å´ã«å¯ããããã«ãªã£ã¦ãã¦、ãããéçºè ã«ã¨ã£ã¦ãã¸ã§é©å½çã§ãã£ã。èªåã¯、ãã¤ã¦ã® MicroSoft ã¯å«ãã ã£ãã、ä»ã® MicroSoft ã¯å¥½ãã§ãã。èªåãã¡ã®å¼·ã¿ãæ´»ããã¤ã¤、æè¡ã«ããã¦ãªã¹ãã¯ããã¹ãæã¯ãã¡ãã¨ãªã¹ãã¯ãããã¨ãã姿å¢ãä¼ãã£ã¦ããããã 。ãããã宣ä¼ãªã®ãããããªãã、å°ãªãã¨ã以åã¯ãããã姿å¢ã§ã¯ç¡ãã£ã。天çã«ãªã£ã¦ãã MicroSoft ã¯ããããªã。ããããå¤ããã°çµç¹ãå¤ããã®ã¯、ãããã話ã§ããã、ããã¾ã§é¡èã«å¤ããã¨ããä¾ããªããªãçããã¨æã。
WezTerm 㨠Vim ã®è¨å®
WezTerm 㧠WSL2 ãã·ã¼ã ã¬ã¹ã«ä½¿ãããã«、 ~/.config/wezterm/wezterm.luaã¯ãããªè¨å®ã«ãã¦ãã
local wezterm = require 'wezterm'
local act = wezterm.action
return {
default_prog = {
'C:/WINDOWS/system32/wsl.exe', '~', '-d', 'Ubuntu'
},
use_ime = true,
keys = {
{ key = 'v', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' },
},
mouse_bindings = {
{
event = { Down = { streak = 1, button = 'Middle' } },
mods = 'NONE',
action = act.PasteFrom 'Clipboard',
}
},
window_background_opacity = 1,
font = wezterm.font('HackGen Console NF',{ weight='Regular', italic=false}),
font_size = 21.0,
enable_scroll_bar = true
}
è¦ã¦ã®éã、ç¹ã«è¤éãªãã¨ã¯ãã¦ããªã。Windows ã®ã¯ãªãããã¼ãæ å ±ããè²¼ãä»ããæã«、Ctrl+Shit+V ãéãã¦ãããããã 。 vim å´ãç¹ã«å¤ãã£ããã¨ã¯ãã¦ããªãã、
set clipboard+=unnamed,unnamedplus
ãããäºã§、vim 㧠yank ããã³ã¼ããã¯ãªãããã¼ãã«å ¥ãã¦éç¨ãããããã®äºã¯ãã¦ãã。
gVim ãã¢ã³ã¤ã³ã¹ãã¼ã«ããæ¥
2024 å¹´ 2 æ 15 æ¥ã®å¤、ãã®è¨äºãã¨ã³ããªã¼ããæ¥ã«å㯠gVim ãã¢ã³ã¤ã³ã¹ãã¼ã«ãã。ã¤ãã§ã«、Windows çã® NeoVim ãã¢ã³ã¤ã³ã¹ãã¼ã«ãã。ãã GUI ãã¼ã¹ã® Vim ã¯ãããªã。ããèªä¿¡ãæã£ã¦è¨ããçæ´»ãåºæ¥ãããã«ãªã£ã。
èãã¦ã¿ãã¨、1 å¹´é WezTerm ä¸ã® NeoVim ã§ãã£ã¨éçºãããã、è¨äºãæ¸ããããã¦ãã。éçºãµã¼ãã®ç«ã¡ä¸ãã Shell ãããµã¯ãã¨èµ·åãã¦ãã®ã¾ã¾æèåæ¢ã§ã³ã¼ããæ¸ãã¦ããã。èªåã«ã¨ã£ã¦ã¯å¤§ããªå¤åã®å¹´ã ã£ãã¨è¨ãã。
ããããå 、ããã«è¯ãéçºç°å¢ãæ´ããªãã°ãã¡ãã«é£ã³è¾¼ãã§ããã¤ããã§ãã。æå¢ã®ã¤ããæ £ã親ããã ç°å¢ãæ¨ã¦ãã¨ããã®ã¯æãåããå¿ è¦ã ã、ãã価å¤ã¯ååã«ããã¨æã。
ããã°ã©ã 35 æ³éç説ã¯、åã§ãã、ã¾ãäºå®ã§ãããã¨æã。35 æ³ã§éçã«å°éãã人ã¯、èªåãç©ã¿ä¸ãã¦ãããã®ãèºèºãªãæ¨ã¦ãããªã人ã®äºã§ãã、ããã¯ããã§ã¾ãç¾å¾³ã§ãããã、åã¯æ¹å¤ããã¤ããã¯ä¸åãªã。ãããã人éã、ãã®ä¸çã«ã¯å¿ è¦ã 。ãã 、ããã°ã©ãã¨ããè·æ¥ãé¸ã³、ãããæåéã「ç涯ç¾å½¹」ã§ããè¦æãããæ¹ãªãã°、èªåãç©ã¿ä¸ãã¦ãããã®ããµã¯ãã¨æ¨ã¦ãããè½åãå¿ è¦ã ã¨æã。ãããåºæ¥ã人ãªãã°、éçã¯è¶ããããã ãã。ãããåºæ¥ããã©ãããé©æ£ãªãã ã¨èªåã¯æã£ã¦ãã。
gVim ããããã¨ã、ãã㦠Terminal çã® NeoVim ã、ããããããããã。é½¢ 40 ãè¶ãã¦å°、åãæé·ãæããããã®ã¯、ç´ æ´ãããéçºç°å¢ã®ãé°ã§ãã。ããããæè¬ã®æ°æã¡ãä»å¾ãå¿ããã«éçºãç¶ãããã¨æã。
ã³ã¡ã³ã
ã³ã¡ã³ããæ稿