Windows で ghq look した時のシェルを CMD じゃなくて Bash にしたい
概要
Windows上でghqを使っている時に、ghq look
すると新しく cmd が立ち上がって来ます。
普段から cmd で使ってれば違和感はないですが、
Git Bash や Msys2 など Bash を使ってるのにこれをされると辛いですね。
そこで何とか ghq look
で bash を起動してやれないか試してみました。
ghq look
の動き
リポジトリの該当箇所を確認すると runtime.GOOS
の結果、Windowsだったら
環境変数 COMSPEC
からターミナルのパスを取得して実行するような処理になっていました。
ref: https://github.com/motemen/ghq/blob/bdfcba594aba1d514ff8336ef3bd07422d0fc444/commands.go#L305-L314
if runtime.GOOS == "windows" {
cmd := exec.Command(os.Getenv("COMSPEC"))
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Dir = reposFound[0].FullPath
err := cmd.Start()
if err == nil {
cmd.Wait()
os.Exit(0)
試しに見てみましょう。
$ echo $COMSPEC
C:\WINDOWS\system32\cmd.exe
$ echo $SHELL
/usr/bin/bash
なるほど、確かにCMDへのパスが入ってますね。
ちなみにこの値、システムのプロパティ から 環境変数 の 設定画面からも確認できます。
というわけで ghq に限って この値を指定した上で実行すれば良さそうです。
解決方法
.bashrc
を編集し、 ghq に 下記のエイリアスを張り、環境変数をゴニョって標準ターミナルを
CMD から $SHELL
に格納されているものに変更した上で実行するようにします。
alias ghq='COMSPEC="$SHELL" ghq'
Msys2 など $SHELL
がデフォルトで入ってこない環境は事前に変数をセットしてください。
Author And Source
この問題について(Windows で ghq look した時のシェルを CMD じゃなくて Bash にしたい), 我々は、より多くの情報をここで見つけました https://qiita.com/dojineko/items/3dd4090dee0a02aa1fb4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .