golangでGo!
MacVimでGoを書こうとしたら、補完きかなかったり色々あれであれ〜?と思ってたら、そもそもfiletype設定されてないし、runtimepathにGoの諸々が入っていない。
これはおかしい。terminalから起動したら普通にうまくいくのに!
ちなみにgo用のvimの最低限の設定は、Vimを使ったGo言語開発手法とかVimでGoのコードを書くときにやっておきたいこととかをみればすぐできます。
で、この設定を完了しているので、端末上で起動したvimだと普通に補完が効いている
しかし、MacVimになるともうそもそもgoだけどgoじゃない。no ftになってる
なんでかな、と思って色々見ていると、$GOROOTと$GOPATHがどうやらMacvimでは設定されていない。
で、調べてみるとやはりありました。
https://github.com/b4winckler/macvim/wiki/Troubleshooting#for-zsh-users
The problem is caused by /etc/zshenv, which (somewhat erroneously) resets the PATH for every zsh instance, not just login shells. MacVim, running in a non-interactive shell, gets a PATH variable that has the OS X system paths but is missing user-defined paths.
zshenvがpathをzshのインスタンスごとにリセットしちゃうからMacVimはユーザー定義のpathを読み込まないでシステムパスしか読み込まないんみたい(多分)
解決
上のページの手順通りで解決した。
$ sudo mv /etc/zshenv /etc/zprofile # zshenvをzprofileに $ touch ~/.zprofile $ cat ~/.zshrc | grep "export" >> ~/.zprofile # ここはwikiだとgrep "export PATH"になってるけどPATH以外も欲しいので"export”にしてる $ echo "typeset -U name_of_the_variable" >> ~/.zshrc # .zshrcと.zprofileを2重に読み込まないため
これでMacVimでもGoGoできる!