ãããããŒãæŒããŠæ°ããã¿ããéããŠã£ã³ããŠã®çŸåšã®ãã£ã¬ã¯ããªã§ãæ°ããã¿ãŒããã«ã¿ããéããªãã·ã§ã³ïŒãŸãã¯ããã©ã«ãïŒãçšæããŸãã ããã¯ãã»ãšãã©ã®Linuxã¿ãŒããã«ãæ©èœããæšæºçãªæ¹æ³ã§ãããæã䟿å©ã§ãã ç§ã¯ãè€æ°ã®åå¥ã®ããã»ã¹ãèµ·åããå¿ èŠããããã£ã¬ã¯ããªã§äœæ¥ããããšããããããŸãããã®ãã³ã«ãCDããã£ã¬ã¯ããªã«æ»ãã®ã¯é¢åã§ãã
æ°ããã¿ãã®ãããããŒãæŒããšãæ°ãã端æ«ã¯åã®ãã©ã«ããšåããã©ã«ãã«ããã¯ãã§ãã
çŸåšã®ãã£ã¬ã¯ããªã«é¢ããã¿ãŒããã«ãšãã¥ã¬ãŒã¿ã®ä¿¡å¿µãèšå®ããããã®ãæšæºããšã¹ã±ãŒãã·ãŒã±ã³ã¹ïŒOSC 7; URI STïŒããããŸãã ããã¯macOSTerminal.appã«ç±æ¥ããåŸã«GNOMEã¿ãŒããã«ãå«ãä»ã®ããã€ãã®ç«¯æ«ã«æ¡çšãããŸãããç§ãç¥ãéããKonsoleãæ¡çšãããŸããã
ãã1ã€ã®å¯èœãªã¢ãããŒãã¯ãOSåºæã®ãããã³ã°ãå®è¡ããŠãåããã»ã¹ã®å éšç¶æ ïŒãŸãã¯ããã«åå«ãŸã§ïŒã調ã¹ãããšã§ãã
ããã«å¥ã®å¯èœæ§ã¯ã2ã€ãæ··åããããšã§ããããšãã°ãOSC 7ãä»ããŠèšå®ããããã£ã¬ã¯ããªã«ç§»åããŸãããã以å€ã®å Žåã¯ãããã»ã¹ãæãäžããŸãã
OSC 7ã¢ãããŒãã®å©ç¹ã¯ãåããã»ã¹ã«åŸãã¿ã€ãã³ã°ãšåŸããªãã¿ã€ãã³ã°ã«é¢ããŠè³¢ãããšã§ãã ããšãã°ãå¥ã®ãã¹ãããããµãã·ã§ã«ãéå§ãããšããã®ãµãã·ã§ã«ããã®ã·ãŒã±ã³ã¹ãçºè¡ãããããèæ ®ãããã®ã¯ãã®ãµãã·ã§ã«ã®ãµããã£ã¬ã¯ããªã«ãªããŸãã ãã ãããã£ã¬ã¯ããªãå éšçã«å€æŽããã¢ããªïŒmakeãªã©ïŒãèµ·åãããšã幞ããªããšã«ã䜿çšãããmakeã®å éšãµããã£ã¬ã¯ããªã«ã¯ãªããŸããã
OSC 7ã®æ¬ ç¹ã¯ãã·ã§ã«ããã®ä»ã®éèŠãªã¢ããªããã®ååãå¿ èŠã«ãªãããšã§ãã
ãã®ãããžã§ã¯ãããªãŒãã³ãœãŒã¹ã§ããéããç§ã¯ãã®æ©èœã®ãªã¯ãšã¹ããæåŠããŠããŸããããOSC7ã«ã€ããŠã¯ç¥ããŸããã§ãããããã¯_éåžžã«ãšããµã€ãã£ã³ã°ã§ãã_
ããã»ã¹ããªãŒãã¯ããŒã«ããŠæããªãŒãããã»ã¹ã®CWDãæãäžããã®ã¯äžæºã§ãããOSC7ããµããŒãã§ããããšã¯éåžžã«å¬ããã§ãã
åèãŸã§ã«ãAlacrittyã®OSC 7ã®åŠçã«ã€ããŠè³ªåããŸããããã®çµæããã®åé¡ã¯gitlabã®ãã¿ãŒããã«WGãã§äœæãããŸããïŒ https ïŒ//gitlab.freedesktop.org/terminal-wg/specifications/issues/20
ãã®ãã±ããã«ã¯ããŸãåãã¯ãããŸããããããªãã¯ããã«åŸãããšã«èå³ããããããããŸããã ç¹ã«ãOSC7ã®ãæ£åŒãªãä»æ§ãã©ã®ããã«èŠãããã«ã€ããŠæèŠãããå Žåã¯ãªãããã§ãã
ãããã£ãŠãèšé²ãšããŠã httpsïŒ//github.com/jwilm/alacritty/pull/2937ã®ã¹ã¬ããã«ã¯ããªãçŽ æŽãããè°è«ããããŸãã
æ£çŽãªãšããããã§ã«å°å
¥ãããŠããããã¡ã¯ãã¹ã¿ã³ããŒãã§ããOSC 7 ; <URI> ST
ã¡ã«ããºã ã䜿çšããŠã倧äžå€«ã§ãã ãã以äžã«æ£åŒãªãã®ãå¿
èŠãã©ããã¯ããããŸããã
ããããç§ã¯ã²ã©ãèããæã£ãŠããŸããã bash
ããããçºè¡ããããã«æ§æãããŠããã誰ããWSLã§bash
ããŠãããšããŸãã 誰ããäœæ¥ãã£ã¬ã¯ããªã/home/zadjii
ã«èšå®ããããšããå Žåãã©ãããã°ããã§ããïŒ ç§éã¯ã©ããã£ãŠïŒ
ãããã¯WSLãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ãããWindows exeã§ã¯ãããŸããããšããããããã£ãè¿œå ããå¿ èŠããããŸããïŒ ãããèšå®ããŠããªããŠãŒã¶ãŒã¯ã©ããªããŸããïŒéè€ã¿ãæ©èœã¯ïŒäºå®äžãµã€ã¬ã³ãã«ïŒæ©èœããŸãããïŒ
ãã®åŸã次ã®éšåã¯é£ãããªããŸãã ãã®ã³ãã³ããSSHçµç±ã§åºåããããšã©ããªããŸããïŒ ã¿ãŒããã«ã¯ããã¹ããã®ãã·ã³äžã«ãªãããšãèªèã§ããŸããããïŒ Terminal.appã¯ãããã©ã®ããã«åŠçããŸããïŒ
å€åããã¯ããå€ãã®ä»æ§ãå¿ èŠã§ãðš
ïŒãªãïŒDHowettãšDHewittã®2人ãæ··åãããŸã§ã©ã®ãããããããŸããïŒ:)ïŒ
ããã¯éèŠãªæ¬ èœããŠããæ©èœã§ãã
ããã¯ãããŸããŸãªã³ãã³ãã®æ§æãªãã·ã§ã³ã§ããå¿
èŠããããŸãã ããšãã°ã duplicateTab
ãšsplitPane
ã¯ãããå¿
èŠã§ããã newTab
ã¯å¿
èŠãããŸããã
ãšã¹ã±ãŒãã·ãŒã±ã³ã¹ã¯ããã®ã³ã¡ã³ãalacritty / alacrittyïŒ2937ïŒcommentïŒã«ç€ºãããŠããããã«ãmac
macOSã§ã¯ããšã¹ã±ãŒãã·ãŒã±ã³ã¹ã¯å®éã«ã¯Terminal.app> Preferences ...> Profiles> Tabã§æå®ãããŸãã
èšé²ãšããŠã httpsïŒ//gitlab.freedesktop.org/terminal-wg/specifications/merge_requests/7ã§ããŸãã«ãã®æ©èœã®ä»æ§ã«ã€ããŠ
å察ã®ããšãããããšããå§ãããŸã:)
ããªãã®æ°ã®ç«¯æ«ãOSC7ã®å®è£ ã«æåããçžäºã«ã³ããŒããŠããŠãŒã¶ãŒãæºè¶³ãããŠããŸãã
ãããŠãçŸåšãããã§ã¯äžååã ãšèããŠãã人ãããŸãã圌ã¯ãæ£åŒãªä»æ§ãå¿ èŠã ãšèããŠããŸãã åé¡ã«æºã¡ããã©ãããæãã€ããç§ããŸã£ããç解ã§ããªãããšã¯ã2人ã®å åŒã®ãã¡ã®1人ã ããææžåããããšãããšããªãã ïŒæ³šïŒæ°æ¥åã«ãã®ã¹ã¬ããã®ãã©ããŒãåæ¢ããŸãããïŒ
Terminal-WGã¯æ£åŒãªæ©é¢ã§ã¯ãªãããã®ææžã¯ãå ¬åŒãã§ã¯ãªãããããªãæå³ã§ããæšæºãã§ã¯ãããŸããã é©åãªæç¶ãã責任ã®ãã人ãè°æ±ºæš©ãªã©ãããããŸããã ãã®ã¹ããŒã¿ã¹ãäœãæå³ããã«ãããããã§ããã¥ã¡ã³ãããæ¿èªãããããã«äœãå¿ èŠãã¯èª°ã«ãããããŸããã ããã¯ãäœãæçšãªãã®ãèãåºãããšããŠãããçµç¹åãããŠããªãã©ã³ãã ãªäººã ã®éãŸãã«ãããŸããã ãããã®éå ¬åŒã®ä¿çäžã®è°è«ããé·ãé蚌æãããæ©èœã®å®è£ ã劚ããªãããã«ããŠãã ããã
èšé²ã®ããã«ã httpsïŒ//gitlab.freedesktop.org/terminal-wg/specifications/merge_requests/7ã§çœç±ããè°è«ããã
ãã®prã§ãåç §ãããŠããåé¡ã«ã€ããŠã³ã¡ã³ãããŸããð
BashïŒGit for WindowsããïŒã䜿çšããŠãã人ã«ãšã£ãŠãç§ãæã£ãŠããäžæçãªåé¿çã¯ãdirãå€æŽãããã³ã«ïŒ cd
ã³ãã³ãããšã€ãªã¢ã¹ããŠïŒæ°ãããã¹ãä¿åããæ°ããã·ã§ã«ã®ãšãã«ããã«cdããããšã§ãéå§ãããŸãã ããã¯ç§ã®_.bashrcïŒ_ã«ãããŸã
if [ "${PWD,,}" = "/c/windows/system32" ]; then
if [ -f /tmp/pwd ]; then
cd "$(< /tmp/pwd)"
else
cd ~
fi
fi
cd() {
command cd "$@"
pwd > /tmp/pwd
}
System32ïŒã¿ãŒããã«ã®ããã©ã«ãã®éå§å ŽæïŒã§éå§ãããã©ãããå®éã«ãã¹ãããŠããã®ã§ããšã¯ã¹ãããŒã©ãŒã®ã¢ãã¬ã¹ããŒã«wt
ããŠå¥ã®å Žæã§éå§ã§ããŸããããã®ãããã¯ãªãã·ã§ã³ã§ããã次ã®å Žåã¯ã«ã¹ã¿ãã€ãºããå¿
èŠããããŸããã·ã§ã«ã¯å¥ã®ãã©ã«ãããå§ãŸããŸãã
PowerShellããã®ä»ã®ã·ã§ã«ã«ã€ããŠã¯ååã«å ªèœã§ã¯ãããŸããããåæ§ã®ããšãã§ãããšæããŸãã
Ctrl + Tã¯ãåãã·ã§ã«ãšåããã£ã¬ã¯ããªã§æ°ããã¿ããéãå¿ èŠããããŸãã
誰ãããã®äž»åŒµã«åæããããã§ã¯ãããŸããã
誰ãããã®äž»åŒµã«åæããããã§ã¯ãããŸããã
å€åå€ãã®äººãåæããŸãã ããããã»ãšãã©ã®Linuxãã¹ã¯ãããã§ã¿ãŒããã«ã¢ããªãæ©èœããæ¹æ³ã§ãã
å°ãªããšããªãã·ã§ã³ãšããŠäœæã§ããŸãã
ããã«ã¡ã¯ããã®ã¹ã¬ããã§ã¯ãããã䟿å©ãªæ©èœã§ããããšã«å€ãã®äººãåæããŠããããšã¯ãã§ã«æããã ãšæããŸãããŸããWindowsã¿ãŒããã«ããŒã ããããèªèããŠããŸãã ãŸããããã§ã®åé¡ã¯ããããæ§æå¯èœã«ããããªããšããããšã§ã¯ãªãããšãæããã§ãããæåã«ãæ©èœã䜿çšã§ããªãããã«ããããã€ãã®æè¡çãªèŠçŽ ãç解ããå¿ èŠããããŸãã
ç§ã¯ãã®ã¹ã¬ããããã©ããŒããŠããã®æ©èœãšé¢é£ãããã£ã¹ã«ãã·ã§ã³ãææ°ã®ç¶æ ã«ä¿ã¡ãŸããããã®ãããªã¡ãã»ãŒãžã¯ã€ã³ã¿ãŒãã§ã€ã¹ãä¹±éã«ããã ãã§ã圹ã«ç«ã¡ãŸããã ãã§ã«ããã£ãŠããç¹ãç¹°ãè¿ã以å€ã«äœãããªãã¡ãã»ãŒãžãæçš¿ããªãããã«ãé¡ãããããšæããŸãã
å°ãªããšããªãã·ã§ã³ãšããŠäœãããšãã§ããŸã
ããã¯ç§ãé åºãã«ã€ããŠåŸãŠããªãããšã§ãã ã»ãšãã©ã®ç«¯æ«ã®åäœã«éããããå Žåã¯ããã£ãããã§ãã ãããããªãã·ã§ã³ãäžããŠããŸãããïŒ ãã®è«çã¯ã©ãã«ãããŸããïŒ ã¿ãã®è€è£œãè¡šãCtrl + Shit + Dã§ãããããã©ã«ãã®ãã£ã¬ã¯ããªã«ãšã©ãŸããããå®éã«ã¯è€è£œãããŸããã è€è£œããããªãè€è£œæ©èœãããããã«ã
ãã®æ©èœãå®çŸã§ããªãããã«ãããæè¡çãªãã®ããšã¯äœã§ããïŒ ã³ãŒãã¯ãã§ã«ååšããŸãã Ctrl + Shift + Dã«ã¯ãã§ã«éè€ããã¿ãããããŸãã çŸåšã®äœæ¥ãã£ã¬ã¯ããªã«ãã£ãŒãããã ãã§ãã»ãšãã©ã®äººãæ £ã芪ããã§ããåäœãããããšãã§ããŸãã ã ããç§ã¯ãããã©ã®ããã«ããããããã¯ããŠãããæè¡çãªãã®ããæã£ãŠããã®ãæ··ä¹±ããŠããŸãã
é åºããé¢ä¿ããŠããããšã¯æããã§ããããã®çš®ã®è°è«ãå¿ èŠã§ããããšãæå³ããã®ã§ããã®çš®ã®è°è«ã«æè¬ããŸãã
ãããããã§ããå ã®ãã£ã¹ã«ãã·ã§ã³ã¯ãã®ã¹ã¬ããã«ãªã³ã¯ãããŠããªãã£ãããã倱ãããŸãã åèãŸã§ã«ãå¥ã®æçš¿ïŒhttps://github.com/microsoft/terminal/issues/2427#issuecomment-521307534ïŒã®ã³ã³ãã³ããããã«ã³ããŒããŠããŸãã
ãã ãã£ã€ã ã鳎ãããŸãã
_ïŒãããã¡ã€ã«ãäœæ¥ãã£ã¬ã¯ããªãç°å¢å€æ°ãªã©ïŒã_
ããäžæ¹ã®ç«¯ã®_å®éã®ããã»ã¹_ã«ã€ããŠã¯ãäžè¬çã«ãè€è£œããããšã¯äžå¯èœã§ãã æ¥ç¶ãããããã»ã¹ã¯
ssh.exe
ã§ããå¯èœæ§ãããããã®ç°å¢å€æ°ãšäœæ¥ãã£ã¬ã¯ããªã¯ã端æ«åŽããã®æ€åºå¯èœãªç°å¢ãšäœæ¥ãã£ã¬ã¯ããªãšã¯é¢ä¿ãããŸããã åãããšãå®éã«ã¯ãå¥åŠãªããšã«ãWSLã«ãåœãŠã¯ãŸããŸãã ãäœæ¥ãã£ã¬ã¯ããªãã䜿çšãããç°å¢å€æ°ãé¢å¿ã®ããWindowsããã»ã¹ã«å ¬éããŸãããPowershellã¯çŸåšã®äœæ¥ãã£ã¬ã¯ããªã_èšå®_ããããªãããããã®ãã£ã¬ã¯ããªãæ€åºã§ããŸããïŒïŒïŒã
ããã¯ãäžè¬çãªã±ãŒã¹ã§ã¯äžå¯èœã§ããã_æè¡çã«ã¯å¯èœ_ãªããšã®1ã€ã§ãã ããã«ã¯ã次ã®ãããªè€éãªç¹ããããããããŸãã
powershell cd d:\users
ãããšãPowerShellã¯ç§ãã¡ãç«ã¡äžããæåã®ããã»ã¹ã§ã¯ãããŸããã ãã¹
d:\users
ã¯ç¡èŠããŸã(in powershell) cd d:\users
powershellã¯_çŸåšã®äœæ¥ãã£ã¬ã¯ããªãå®éã«èšå®ããªã_ããã
d:\users
ã¯ç¡èŠããŸãïŒ!!ïŒãã·ã§ã«ãã
ssh [email protected]
ïŒã·ã§ã«ããã¿ãŒããã«ããŠãŒã¶ãŒã«ä»£ãã£ãŠçæããæåã®ããã»ã¹ããšå³å¯ã«å®çŸ©ããŠããå ŽåïŒã®å Žåããã®äœæ¥ãã£ã¬ã¯ããªã¯ãäœã«é¢ä¿ãªãåžžã«C:\windows\system32
ãªããŸãããªã¢ãŒãäœæ¥ãã£ã¬ã¯ããªã¯ã§ããããã¥ã¡ã³ãããŒãžãåãå°œããã»ã©å€ãã®èŠåãæ©èœã«æäŸããããããæ©èœãæäŸããããããŸããã â¹ïžããããªããã
ããããããã¯äžè¬çãªæå³ã§è¡ãããšã¯ã»ãŒäžå¯èœã§ããå¯èœæ§ãé«ãããã§ãã ããšãã°ãvimã®ã€ã³ã¹ã¿ã³ã¹ãã©ã®ããã«è€è£œããŸããïŒ ãã©ã¢ã°ã©ãŠã³ãããã»ã¹ãæä»çã¢ã¯ã»ã¹ã®ããã«ããçš®ã®ãã¡ã€ã«ãéããå Žåã¯ã©ããªããŸããïŒãã®ããã»ã¹ãã©ã®ããã«è€è£œã§ããŸããïŒ
ãããå®å šã«è¡ãæ¹æ³ãããã°ãäžè¬çã«ç§ã¯ææ¡ãããæè¡ç解決çã«è³ãåŸããŸããããããå¯èœã§ãããšã¯æããªãã®ã§ã調æ»ããã€ããã¯ãããŸããã
Powershellãäœæ¥ãã£ã¬ã¯ããªã_did_èšå®ãããšããŠããWindowsã§å¥ã®ããã»ã¹ã®CWDãååŸããããšã_æè¡çã«_å¯èœã§ãããšã¯ãŸã 確信ãæãŠãŸããã ãããããããæ©èœããã®ã劚ããŠãããæè¡çãªããã®ã§ãã ãããèšå®ãšããŠè¿œå ããããšæããŸãã ããããçããå¿ èŠã®ããæè¡çãªè³ªåã¯ãŸã 確ãã«ãããŸãã
ãã®ã¹ã¬ããã§èª¬æãããŠãã解決çã«ã¯ãã¿ãŒããã«ã«å¥ã®VTã·ãŒã±ã³ã¹ã®ãµããŒããè¿œå ããããšãå«ãŸããŸããããã«ããã_shell_ã¯ãã¿ãŒããã«ãã©ã®ãã¹ã«ãããã瀺ãããã«æŸåºã§ããŸãããã®VTã·ãŒã±ã³ã¹ã¯ãããŸãæ確ã«å®çŸ©ãããŠãããã次ã®ããã«ãªã£ãŠããŸãããŸã 解決ãå¿ èŠãªãšããžã±ãŒã¹ã ããªãã¡ïŒ
/home/foo
ã§ãïŒããšèšããšã©ããªããŸããïŒã¿ãŒããã«ããã¹ãWSLãã¹ã§ããããšããŸãã¯ãã¹ãã©ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«å±ããŠããããç¥ãæ¹æ³ããªãããããã®ã¿ããè€è£œãããšã C:\home\foo
ïŒååšããå ŽåïŒå®è¡äžã®ããã»ã¹ãè€è£œããããšããŠããŸããïŒ ããšãã°ãLinuxãèŠãŠã¿ãŸãããã ã¿ãŒããã«ã§SSHãå®è¡ããŠããŠãæ°ããã¿ããéããå Žåãæ°ããã¿ãã¯SSHæ¥ç¶ãéãããSSHæ¥ç¶ã®çŸåšã®å Žæãåç §ããŸãã ããã¯ããªããããªãã®ãã·ã³äžã«ããæ°ããã¿ããéããŸãã ããã»ã¹ãããŒã«ã«ã§SSHã§ã¯ãªãå Žåã§ããããã»ã¹ã¯å®è¡ãããŸããã è€è£œãããŠããã®ã¯ã¿ãã ãã§ãããå®è¡äžã®ããã»ã¹ã§ã¯ãããŸããã
ããã¯éåžžã«è€éã«ãªã£ãŠããããã§ãã VIMãSSHããŸãã¯å®è¡äžã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ãè€è£œããŠããŸããã ããªãã¯ã¿ãŒããã«ãè€è£œããŠããŠãããã¯ãšããžã±ãŒã¹ã«çããŸãïŒ
ããã»ã¹ãè€è£œããŠãåé¡ã¯ãããŸããã ãã£ãšæ°ã«å ¥ã人ãããã§ãããã ããã¯ãã¿ããè€è£œãããªãã·ã§ã³ã«å ããŠãå¥ã®ãªãã·ã§ã³ã«ãªãã ãã§ãã ããã¯é害ã«ãªãã¹ãã§ã¯ãããŸããã ããã¯äœåã§ãªãã·ã§ã³ã§ãã
@PandaClone _äžéšã®äººã ã¯ãã·ã§ã«ããå®è¡ããã«ããããã¡ã€ã«ãæåã«èµ·åãããã®ãšããŠssh.exeãèšå®ããŠããããšãç¥ã£ãŠé©ããããããŸãã_ã
ããã§ã¯ãªãããã«ãã¿ãŒããã«ãLinuxããã»ã¹ãšéä¿¡ããã©ãããŒã¢ããªã±ãŒã·ã§ã³ã§ããwsl.exe
ã«åãåãããŠãçŸåšã®äœæ¥ãã£ã¬ã¯ããªããã®ããã»ã¹ã®æåã®ããã»ã¹ã®ãã®ã§ãããã©ããã確èªããæ¹æ³ã¯å®éã«ã¯ãããŸãããæšã
WDãããã»ã¹ç°å¢ãããã¯ã«æ ŒçŽããWindowsäœæ¥ãã£ã¬ã¯ããªã€ã³ãã©ã¹ãã©ã¯ãã£ã䜿çšããªããããéå±ãªå€ãWindows APIã䜿çšããã ãã§ã¯ãäœæ¥ãã£ã¬ã¯ããªãäœã§ããããå€æããã®ã«ååã§ã¯ãããŸããã
ãããã¯ç§ãã¡ã解決ããªããã°ãªããªãæè¡çãªåé¡ã§ãã ãã以å€ã®å Žåã¯ã25ïŒ ã®äººã«ããæ©èœããªãæ©èœãäœæããŸãã
ãããç°¡åã§ããããšãå€æããå ŽåïŒç§ãã¡ã¯åžžã«ã³ãã¥ããã£ã®è²¢ç®ãåãã§åãå ¥ããŸãã
- WSLã®å ŽåãããŒã«ã«ãé²èŠ§ããŠããŸããã æ»ãå€ã/ home / fooã®å Žåããããå Žæã§ãã å ŽæãCïŒ\ home \ fooã®å Žåã/ mnt / c / home / fooãè¿ãããŸãã
ãããã§ãããã®æ©èœãä»æ§ã©ããã«æ©èœããæ¹æ³ãèŠãŠãã ãããã¿ãŒããã«ã¯ããçŸåšã®äœæ¥ãã£ã¬ã¯ããªã¯/home/foo
ããšèª°ãäœãèšã£ãããç¥ããŸããã ããã¯cmd.exe
å¯èœæ§ããããŸã-ããã§ãããŠãŒã¶ãŒã¯C:\home\foo
æãã§ããŸãã ããã¯ãUbuntuãã£ã¹ããªãã¥ãŒã·ã§ã³ãŸãã¯Fedoraãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ããå¯èœæ§ããããŸãããããã¯ãcentosãŸãã¯ãã®ä»ã®å¯èœæ§ã«sshæ¥ç¶ãããŠããå¯èœæ§ããããŸãã 端æ«ãååŸããã®ã¯ããããã¯çŸåšäœæ¥ãã£ã¬ã¯ããªã§ãããšããæååã ãã§ãã
- ãŠãŒã¶ãŒãäœãã«ã¹ã¿ãã€ãºããå¿ èŠããããããããŸããããã«ã¹ã¿ãã€ãºãåé¡ã«ãªãã®ã¯ãã€ããã§ããïŒ
ãŠãŒã¶ãŒãå®è¡ããã»ãšãã©ãã¹ãŠã®ã·ã§ã«ã¯ããã®ã·ãŒã±ã³ã¹ã®éä¿¡ãæå¹ã«ããããã«æåã§æ§æããå¿
èŠããããŸãã cmd
ãŠãŒã¶ãŒã®å Žåãã·ãŒã±ã³ã¹$e]7;$P$e
ãå«ããããã«ïŒ
PROMPTïŒ
ãæåã§æ§æããå¿
èŠããããŸãã bash
ãŠãŒã¶ãŒã¯ã PS1
ã§èšå®ããå¿
èŠããããŸãã PowerShellã«ã¯ç¢ºãã«å¥ã®æ¹æ³ããããŸãã ãã ããããã§ã®åºæ¬çãªåé¡ã¯ãã·ã§ã«ãããã©ã«ãã§ãã®ã·ãŒã±ã³ã¹ãæŸåºããªãããšã§ãã
SSHã¯ã·ã§ã«ã§ã¯ãããŸããã ãããã¡ã€ã«ãæåã«å®è¡ããããã«èšå®ã§ããŸãããããã§ãã·ã§ã«ããå®è¡ãããŸãã ãããã¡ã€ã«ãã¢ããªã±ãŒã·ã§ã³ãããã«å®è¡ããããã«æ瀺ãããŠããã ãã§ãã ãã®ã¢ããªã±ãŒã·ã§ã³ã¯äœã§ãããŸããŸããã SSHã§æ¥ç¶ããå¿ èŠã¯ãããŸããã å¿ èŠã«å¿ããŠããããã¡ã€ã«ã«å¥ã®ã·ã§ã«ãå®è¡ããããã«æ瀺ã§ããŸãã
ãããŠã端æ«ããªãå Žåã§ããã©ãããŠåé¡ã«ãªãã®ã§ããããã åžžã«äŸå€ããããŸãã 移åãããã£ã¬ã¯ããªããªãå Žåãããã©ã«ãã§ããŒã ãã£ã¬ã¯ããªã«èšå®ããã®ã¯åé¡ãããŸããã ããã¯ããªãããã ããããããã¯ã§ããªãããšããå Žåã«ã¯åé¡ã§ã¯ãããŸããã
ãŸããããã¯ã¿ãä»ãã®å€§å€æ°ã®ç«¯æ«ã«æšæºè£ åãããŠããæ©èœã§ãã ç¬èªã®ã¿ãŒããã«ãã¬ãŒããŒãæã€Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãå®è¡ãããšããã¹ãŠãæ°ããã¿ããéããšãããã®åäœã瀺ããŸãã ããã¯ãWindowsTerminalã®ç»æçãªéæ³ãšãªãæ©èœã§ã¯ãããŸããã ããã¯æšæºæ©èœã§ãã
ã¿ãŒããã«ã¯ã·ã§ã«ãã¹ããŒã³ããã ãã§ã¯ãããŸããã ããã¯ããããã¡ã€ã«æ§æã§æå®ãããã®CreateProcess
æåéã
ã»ããç§ãã¡ã¯ãã®æ©èœãã©ãã»ã©å¯èœãã«ã€ããŠè°è«ããŠããŸãã _ç§ãã¡ã¯ãããæãã§ããã誰ãããããæãã§ããŸãããŠãŒã¶ãŒãæ°ã«ãããŠãããŠãŒã¹ã±ãŒã¹ã®å€§éšåã§æ©èœããåççãªæ¹æ³ãããã°ãç§ãã¡ã¯ãã§ã«ãããè¡ã£ãŠããã ãããšããããšã«åæã§ããŸããïŒ äºåã®äŒç»ã»èšèšäœæ¥ã§ãã§ããªãããšèšããããåŸãªãåæ°ãæžãããããšæã£ãŠããŸãã
ããã¯ç»æçãªéæ³ã§ã¯ãªããWindowsãšWSLã®ããã»ã¹ã¢ãã«ã«ãã£ãŠè€éã«ãªã£ãŠããã ãã§ãç¶æ³ã«ãã£ãŠã¯å€±æãããšæããŸãã ãã以äžã®ããšã¯èª°ãèšã£ãŠããŸããã
- WSLã®å ŽåãããŒã«ã«ãé²èŠ§ããŠããŸããã æ»ãå€ã/ home / fooã®å Žåããããå Žæã§ãã å ŽæãCïŒ\ home \ fooã®å Žåã/ mnt / c / home / fooãè¿ãããŸãã
ãããã§ãããã®æ©èœãä»æ§ã©ããã«æ©èœããæ¹æ³ãèŠãŠãã ãããã¿ãŒããã«ã¯ããçŸåšã®äœæ¥ãã£ã¬ã¯ããªã¯
/home/foo
ããšèª°ãäœãèšã£ãããç¥ããŸããã ããã¯cmd.exe
å¯èœæ§ããããŸã-ããã§ãããŠãŒã¶ãŒã¯C:\home\foo
æãã§ããŸãã ããã¯ãUbuntuãã£ã¹ããªãã¥ãŒã·ã§ã³ãŸãã¯Fedoraãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ããå¯èœæ§ããããŸãããããã¯ãcentosãŸãã¯ãã®ä»ã®å¯èœæ§ã«sshæ¥ç¶ãããŠããå¯èœæ§ããããŸãã 端æ«ãååŸããã®ã¯ããããã¯çŸåšäœæ¥ãã£ã¬ã¯ããªã§ãããšããæååã ãã§ãã
çŸåšã®äœæ¥ãã£ã¬ã¯ããªã誰ã§ããããäœã§ããããã©ããã£ãŠç¥ãããšãã§ããŸãããïŒ ããªãã¯ãããæ±ããŠãã人ã§ãã ã³ãã³ãããã³ãããªã®ããWSLãªã®ããPowerShellãªã®ããããããŸãã ããªãã¯ãããã©ãããæ¥ãŠããã®ããç¥ã£ãŠããã®ã§ãå Žæããã©ãŒãããããæ¹æ³ãç¥ã£ãŠããŸãã
- ãŠãŒã¶ãŒãäœãã«ã¹ã¿ãã€ãºããå¿ èŠããããããããŸããããã«ã¹ã¿ãã€ãºãåé¡ã«ãªãã®ã¯ãã€ããã§ããïŒ
ãŠãŒã¶ãŒãå®è¡ããã»ãšãã©ãã¹ãŠã®ã·ã§ã«ã¯ããã®ã·ãŒã±ã³ã¹ã®éä¿¡ãæå¹ã«ããããã«æåã§æ§æããå¿ èŠããããŸãã
cmd
ãŠãŒã¶ãŒã®å Žåãã·ãŒã±ã³ã¹$e]7;$P$e
ãå«ããããã«ïŒ PROMPTïŒ ãæåã§æ§æããå¿ èŠããããŸããbash
ãŠãŒã¶ãŒã¯ãPS1
ã§èšå®ããå¿ èŠããããŸãã PowerShellã«ã¯ç¢ºãã«å¥ã®æ¹æ³ããããŸãã ãã ããããã§ã®åºæ¬çãªåé¡ã¯ãã·ã§ã«ãããã©ã«ãã§ãã®ã·ãŒã±ã³ã¹ãæŸåºããªãããšã§ãã
ããã¯ã©ã®ããã«åé¡ã§ããïŒ ããã¯ãæ§æãå¿ èŠãšããæåã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãªããæåŸã®ã¢ããªã±ãŒã·ã§ã³ã§ããããŸããã ãã¹ãŠããã©ã°ã¢ã³ããã¬ã€ã§ããããã§ã¯ãªããããã¯ç解ã§ããŸãã ãããæ©èœãããå¯äžã®æ¹æ³ããŠãŒã¶ãŒãæ§æãèŠæ±ããããšã§ããå Žåããã®åæ¢ç¹ã¯ã©ã®ããã«ãªã£ãŠããŸããïŒ
WSLã·ã§ã«ããç§ã®CWDã¯/ home / fooã§ããïŒãã¹ãWSLãã¹ã§ããããšããŸãã¯ãã¹ãã©ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«å±ããŠããããã¿ãŒããã«ãç¥ãæ¹æ³ããªãããããã®ã¿ããè€è£œãããšCã«ãªããŸãã \ home \ fooïŒååšããå ŽåïŒ
ç§ã¯æ¬åœã«èªåèªèº«ã§ãã話ãããšãã§ããŸãããããããããã¡ã€ã«ã䜿çšããŠã¿ããéããç¹å®ã®å Žæã«ç§»åããŠãããå¥ã®ãããã¡ã€ã«ã§æ°ããã¿ããéããå Žåãäœæ¥ãã£ã¬ã¯ããªããªããã°ãå°ãã§ãé©ããã倱æãããããããšã¯ãããŸããããã£ãªãŒãªãŒããŒãã代ããã«ããã©ã«ãã䜿çšãããŸããã
ãã®æ©èœãæ±ããã»ãšãã©ã®äººã¯ãGNOMEãmacOSã«å«ãŸããŠãã端æ«ãªã©ã®ç«¯æ«ã§ã®åäœãèŠéããŠããããšãç解ããŠãããšæããŸãã ãããã®ç«¯æ«ã¯ããããšåãè€éãã«å¯ŸåŠããå¿ èŠã¯ãããŸããããåæã«ããœãããŠã§ã¢ã«ååšããªããšããžã±ãŒã¹ãã¹ããŒãã«åŠçããããšãæåŸ ããŠãã人ã¯ããªããšæããŸããåºæºç¹ãšããŠäœ¿çšããŸãã
ã¹ã³ãŒããå°ãå°ããããŠããããªãåä»ãªäœæ¥ã®ããã«èãããŸãã æéã®ç¯çŽã«ãªãã®ã§ããã®æ©èœã®ããã€ãã®ããŒãžã§ã³ãå«ããæ¹æ³ãèŠã€ããããšãé¡ã£ãŠããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã¯ãçæçã«ã¯ïŒ4472ã§åŠçã§ããŸããïŒ ç§ã¯å人çã«ãæè¿ãã©ãŒã«ã¹ããããŠã£ã³ããŠïŒã»ãŒç¢ºå®ã«ã³ãã³ããå
¥åãããŠã£ã³ããŠïŒã§æ°ããã¿ããéãcmd.exe /c "wt.exe" new-tab -p "Ubuntu-20.04" -d $(pwd)
ããªã¢ã³ãïŒããããBashãã¯ãã«ãã€ã³ããããŠããïŒã«æºè¶³ããŠããŸãã ïŒã
ã«ãŒãããã»ã¹ã®çŸåšã®ãã£ã¬ã¯ããªã®æ€åºãå®è£ ããæ¹ããã³ãã³ãã©ã€ã³ãªã¢ãŒãåŠçãšIPCãå®è£ ããŠãWTã«åããŠã£ã³ããŠã§ã¿ããéããããããç°¡åã ãšèšããŸãïŒsmileïŒ
ãããŒãç§ã¯ã¡ããã©ããã«æ¥ãŠããããé·ãæ ãå¿ èŠãšããŠããããã ãšæ°ã¥ããŸãã:)
Windowsã¿ãŒããã«ã§ã¯ãã·ã§ãŒãã«ããAlt + Shift + DãæŒãããšã§ã·ã§ã«ãŠã£ã³ããŠãåå²ã§ããããšãããããŸããããåããã£ã¬ã¯ããªã«èšå®ãããŠããŸãã
åé¿çããããŸããéå§ãã£ã¬ã¯ããªãå€æŽããŸãã
ãã®é¢æ°ã$PROFILE
ïŒå¿
ã$path
ã調æŽããŠãã ããïŒ
function sd {
$path = 'C:\Users\Admin\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json'
((Get-Content -path $path) -replace '"startingDirectory":.*', ("`"startingDirectory`": `"$pwd`"") -replace "\\", "\\") | Set-Content -Path $path
}
..ãããŠãã»ãšãã©æéããããã«åããã£ã¬ã¯ããªã§æ°ããã¿ããéãããšãã§ããŸããæ°ããã¿ããéãåã«ãå¿
ãsd
ãã ããã
ãã¡ãããæ¬ ç¹ã¯ãé¢æ°ãåŒã³åºããããã³ã«startingDirectory
ãå€æŽãããããšã§ãã
ãã®ã¢ãããŒããããŒãªããããŒã§äœ¿çšããã®ãæåã§ããããã«ããã Ctrl+T
ãæŒããããšé¢æ°ãèªåçã«åŒã³åºããã Ctrl+F4
ãæŒããããšstartingDirectory
ãå
ã«æ»ãããŸããå
ã®å€ã«æ»ããŸãã
ãµã³ãã«profile.shãŸãã¯.zshrcã䜿çšããŠãããããã¡ã€ã«å ã«ã$ HOMEãã£ã¬ã¯ããªå ã«ã/ paths.shãã¡ã€ã«ãäœæããŸãã setCWDãåŒã³åºããã³ã«ããã¹ãæŽæ°ãããŸã
ãã®ãœãªã¥ãŒã·ã§ã³ã¯ã startingDirectoryãå®å šã«ãªãŒããŒã©ã€ãããŸãã æ°ããã¿ãŒããã«ãã¹ããŒã³ãããšãã¯ãã€ã§ããã¿ãŒããã«ãã¹ããŒã³ããåã«setCWDãåŒã³åºããŸããããã¯ãæåŸã«ãšãã«çŽæ¥éå§ãããŸãã
.zshrc
以å
ã«ãããè¡ã£ãããšã«æ³šæããŠãã ãã
ã³ãŒãïŒ
source ~/paths.sh
if [[ $SAVED_PWD != $PWD ]]
then
cd $SAVED_PWD
fi
function setCWD(){
echo export SAVED_PWD=$(pwd) > ~/paths.sh
}
åæãã¡ã€ã«ãäœæããå¿ èŠããããããããªãã®ã§ã setCWDãåŒã³åºã
ãšããã§ãautohotkeyã䜿çšããŠããå Žåã¯ããããããŸãæ©èœããããã®çŽ æŽããããŠç°¡åãªã¹ã¯ãªããã§ã
windows-terminal.ahk
ãšãããã¡ã€ã«ãäœæãããã®ã³ãŒããäžã«è²Œãä»ããŸãã ãã¡ã€ã«ãå®è¡ãããšããã¹ãŠèšå®ãããŸãã ïŒãã®ãã¡ã€ã«ãã¹ã¿ãŒãã¢ããã»ã¯ã·ã§ã³ã«ç§»åããŠãåèµ·åãããšãã«ãã®æ©èœãåé©çšãããããã«ããããšããå§ãããŸãã
#IfWinActive, ahk_exe WindowsTerminal.exe
^t::
Send, setCWD {enter}
Send, ^t
çãããããã¯çç£æ§ã«ãšã£ãŠéåžžã«éèŠã§ããä»ã®äœãããéèŠã§ãã ãããä¿®æ£ããŠãã ãããç§ãšç§ã®å人ã¯ãä»ã®ãã¹ãŠã®å£ã£ãã¿ãŒããã«ãšãã¥ã¬ãŒã¿ãåãã§æŸæ£ããŸãã
terminal-wgã§OSC7ããæšæºåãããè©Šã¿ãåæ»ããŠããããã§ãã
Terminal.appã«ããOSC7ãåºæ¬çã«å®è£ ããããšã«ãŸã é¢å¿ããããŸããïŒ
ãããèãããšãç¹å®ã®ç«¯æ«ã«ãçŸåšã®ãã¹ããšCWDããããããããã»ã¹ãããã³ã°ãã®è°è«ãéé£ããã ãã§ãã 次ã«ããã®æ å ±ãå©çšããããã®ãŠãŒã¶ãŒã®è¡åã決å®/å®è£ ã§ããŸããäŸïŒ
ãã®è°è«ã¯æåã®éšåïŒçŸåšã®CWDãååŸããïŒã«éåžžã«çŠç¹ãåœãŠãŠããŸãããããããŸã§ã®æ¢åã®ã³ã¡ã³ãã«åºã¥ããŠã2çªç®ã®éšåã¯ããã«æ€èšãå¿ èŠãªéšåã ãšæããŸãã ãã®ã¢ã€ãã¢ã®ãªã¹ãã§ãã£ãŠãããããã®_ãã¹ãŠ_ã«å¯ŸããŠåççãªç°è°ãååšãããšç¢ºä¿¡ããŠããŸãã
ãŸã ãã®ãããã¯ã«èå³ããã人ã®ããã«ãç§ã¯ïŒ7668ã§åæã®PRãè¡ããŸããã ããã¯ãã¬ã³ããªãŒãªpingã§ãã ã¿ããªããèããŠã¿ããã§ãã
è€æ°ã®ã¿ããç¹ã«çŸåšã®ãã£ã¬ã¯ããªãç¶æ¿ããªãå Žåã®é«éè€è£œã®ãã€ã³ãã¯äœã§ããïŒ ããã¯ãšãŠãéèŠãªæ©èœã§ãã ä»ã®ãšãããããããŒããªåé¿çãè¿œå ããŠã¿ãŸãããïŒ Windowsèªäœã«20幎以äžã«ããã£ãŠãã®ãããªãœãªã¥ãŒã·ã§ã³ãè€æ°å«ãŸããŠããããšãèãããšããã¹ãŠã®ãŠãŒã¶ãŒã®çç£æ§ãåäžããå ŽåãWindowsã®ããã»ã¹ããCWDãæœåºããããšã«åé¡ã¯ãããŸããã
ãã®æ©èœãããã©ã«ãã§ã¯ãªãçç±ãããããŸããã ãã®æ©èœãæå¹ã«ããæ¹æ³ããååšããªãçç±ã«ã€ããŠãç§ã¯æ¬åœã«å°æããŠããŸãã ããã¯ãã¿ãŒããã«ã§ã®æ倧ã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®äœäžèŠå ã§ããå©äŸ¿æ§ã®èŠ³ç¹ãããã¿ãŒããã«ãalt+shift+d
æŒããããéããé©åãªå Žæã«cd
ããå¿
èŠããããŸãã
ã¿ãŒããã«ã¯ãWindowséçºè ã«å€ãã®ç掻ã®è³ªãè¿œå ããŸãã ãã®æ©èœã¯ç§ã«ãšã£ãŠå€§ããªåé²ã«ãªãã§ãããïŒãããŠç§ã¯ä»ã®äººãçã£ãŠããŸãïŒã ãã®æ©èœãæåªå äºé ãšããŠæå±ããããšã«ç§ã®å£°ãå ããŸãã
ãã®æ©èœãããã©ã«ãã§ã¯ãªãçç±ãããããŸããã
ãã®ã¹ã¬ãããïŒ7668ãïŒ8214ãïŒ8166ãããã³ä»ã®ãªã³ã¯ãããã¹ã¬ããã§è¡ããããã¹ãŠã®èª¿æ»ãèªãã§ããããå®éã«é£ããåé¡ã§ããçç±ãç解ããããã«äººã ãããããèªãããšãã§ããªãçç±ãç解ã§ããŸãã解決ããã ã¯ã©ã€ã¢ã³ãã¢ããªã«ãã¹ãåºåãããããšã¯ã§ããŸãããã¿ãŒããã«ã¯ããããWindowsãWSLãcygwinã®ãããã®ãã¹ã§ãããã_å¿ ç¶çã«_èªèããªãããã§ãã
ä»ã®ã¢ããªãšã®äžäœäºææ§ãæãªãããšãªãããã®æ©èœã®ãµããŒããå®è£ ããæ£ããæ¹æ³ãèŠã€ããããã«äžçæžåœåããŠããæèœã®ããè²¢ç®è ãããããããã®ã¯è¯ãããšã§ãã ç§ãã¡ã¯_ä»é±_ãæºè¶³ã®ãã解決çãèãåºããŸããããããå®è£ ããããŸã§ã«ããé·ãã¯ããããªãã¯ãã§ãã
ããããšã@ zadjii-msftïŒ
ç§ã®ã³ã¡ã³ããèªã¿çŽããšããããéåžžã«éé£ãããŠããããšã«æ°ã¥ããŸãããããã¯ç§ã®æå³ã§ã¯ãããŸããã§ããã ç§ã¯ãããèšãããã«ããã«æ¥ãŸããïŒ
ã¿ãŒããã«ã¯ãWindowséçºè ã«å€ãã®ç掻ã®è³ªãè¿œå ããŸãã ãã®æ©èœã¯ç§ã«ãšã£ãŠå€§ããªåé²ã«ãªãã§ãããïŒãããŠç§ã¯ä»ã®äººãçã£ãŠããŸãïŒã ãã®æ©èœãæåªå äºé ãšããŠæå±ããããšã«ç§ã®å£°ãå ããŸãã
ãããŠããããŸã§ã®ç§ã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã¯æ¬¡ã®ãšããã§ãã
ãã®æ©èœãããã©ã«ãã§ã¯ãªãçç±ãããããŸããã ãã®æ©èœãæå¹ã«ããæ¹æ³ããååšããªãçç±ã«ã€ããŠãç§ã¯æ¬åœã«å°æããŠããŸãã ããã¯æ倧ã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã§ã...ãªã©
ç§ã¯ãããããæåã®æ®µèœã®æåã«ããŠãŒã¶ãŒãšããŠãã眮ãã¹ãã§ããã
ãè¿·æããããããŸããããšããè©«ã³ç³ãäžããŸãã
æãåèã«ãªãã³ã¡ã³ã
ããã¯éèŠãªæ¬ èœããŠããæ©èœã§ãã