Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

MacでVim使うのダルい

More than 3 years have passed since last update.

はい。ということでmacOSでVimを使おうとしたらWindowsよりもLinuxよりもダルかったという話です。
あれもこれもMacがVimをSEGVさせるのと、Python2系を使わないといけないのが悪い。
お察しの通り、ただの愚痴です。結論だけ知りたい方は一番下の結論へ。

動作環境

  • macOS Sierra(10.12.4)
  • XCode8.3.1
  • Command Line Tools for XCode 8.3
  • (Homebrew導入済み)

過程

  • デフォルトで入ってるvimが普通にSEGVする。←この時点でおかしい。
  • にっちもさっちもいかないので別途Vimを導入しようとする。
  • Homebrewで入れたVim, MacVim、そしてdmgからインストールしたMacVim-KaoriYaで特定のプラグインを使用するとSEGVする。
  • ひとまずMacVim-KaoriYaが一番使いやすかったので使う。←SEGVするプラグインを避けることができた。
  • Python2を書く機会があって、Python3インターフェースを使うVimプラグインを使用した後にjedi-vimを使ったらオムニ補完が効かない。
  • Python2を書くときにVimではPythonインターフェースだけ使うようにプラグインも設定し直したら、最重要なプラグインで95% SEGVで落ちる。

    • 実は落ちないと思ってたプラグインもHOMEディレクトリとかで使うと普通にSEGV。
  • MacVimでPython/Python3を同時ロードするにはbrew installしたPython/Python3では駄目。

    • pyenvを使用してPython/Python3をビルドし、MacVimもビルドし直す必要がある。
    • しかも動作が安定が保証されているわけではない。変わらずSEGVする可能性がある。
  • 仮に安定したMacVimをビルドできたとして、以下の懸念点がある。

    • Updateのたびに壊れる可能性がある。
    • pyenvで入れたPython/Python3の入力補完をするのに、別途Vimのプラグインが必要。
    • 仮想環境を使うのに、デファクトスタンダードのvirtualenv/venvでなくpyenv-virtualenvを使うことになる。
    • それで更にVimのプラグインがうまく動かない可能性がある。
  • ここから別エディタの導入を考え始める。

    • neovim導入を考えるが、Vimとの差異を把握することや設定を新たにやり直すのがダルい。
    • VSCodeとかいいらしいけど結局プラグイン入れたり、設定色々やること考えたらダルい。
    • 最初からフルスペックな環境が欲しい。
  • PyCharmでいいんじゃね?←今ここ。

Vimにかぎらず、標準から外れた方法で導入したPython(pyenv, Anacondaで入れたPython)を導入することでPyCharmでも入力補完がうまく動かないという意見がチラホラ見られるので、以下のように役割を分けることにしました。

  • Python: PyCharm
  • それ以外: MacVim-KaoriYa

結論

  • Python書くならPyCharm使おう。PyCharmはいいぞ!
  • macOSでVim使うならMacVim-KaoriYa使おう。
  • Python2は捨ててPython3を使おう。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away