Vim Python VirtualEnv :仮想環境を管理するプラグイン


Vim大好き❤️ , 特にネオビム.私はなぜあなたもそれを愛する必要がありますページを書くことができます.
Pythonは、私の毎日のドライバであるvimの統合は、天国で作らマッチ❤️
私がvimとpythonで働いていたとき、私を悩ました1つのものがあります.The virtualenvs .
私のPython環境は、私たちの最後から感染したモンスターのいずれかのようにしたくないのでvenvs 私のプロジェクトのために.あなたもそれらを使用する必要があります!
しかし、Venv起動セッションから私のneovimを起動すると、NeovimはVenv固有のインポートを認識しませんでした.
一部の拡張モジュールも、ローカルとグローバルPythonの設定の間で衝突しました.
このように:

私は自動的に私のためにそれを処理する多くの拡張子を探してみましたが、それらのすべては手動でvenvs Vimセッションの中から.
もし私がすべて自分でやりたいなら、私はソフトウェア開発者にならなかったでしょう内部的に泣く
これはプラグインを自分で書くことにした時です.

プロセス


Vimに関連付けられているすべての学習曲線では、プラグインは常にtpopeキュレーション魔法パッケージのように感じた.
しかし驚くことに、プラグインを書くのはかなり簡単なプロセスです.
----Plugin-Folder/
  --plugins/
    --xyz.vim
  --README.md
Vimは、特定の定義済みのファイル/フォルダをプラグインを実行している間、それを見ます.を持っている必要がありますplugins フォルダとREADME ファイル.Vimは自動的に終了するすべてのファイルを実行します*.vimPlugin ディレクトリ.
それだ!

Vimパイソン


このプラグインの目的は、仮想環境がターミナルセッション用に有効になっている場合、VIVMセッションにVenvコンフィグを追加するのを見ることでした.
これは理論上は簡単です.
  • Venvがアクティブになっているかどうかを調べます.
  • VenVの設定をvim.rc またはinit.vim
  • Vimプラグインドキュメントを読んでいる間に、PythonでもVimプラグインを書くことができます.これはさらに良くしました.🤤
    以下はプラグイン全体のコードです.
    python3 << EOF
    import os
    import subprocess
    
    if "VIRTUAL_ENV" in os.environ:
        project_base_dir = os.environ["VIRTUAL_ENV"]
        script = os.path.join(project_base_dir, "bin/activate")
        pipe = subprocess.Popen(". %s; env" % script, stdout=subprocess.PIPE, shell=True)
        output = pipe.communicate()[0].decode('utf8').splitlines()
        env = dict((line.split("=", 1) for line in output))
        os.environ.update(env)
    
    EOF
    
    このコードはactivate シェルスクリプトはvenv/bin , それを実行し、セッションの設定を更新します.

    それだ!

  • VIMプラグインやその他のプラグインマネージャを使用して拡張モジュールをインストールできます.
  •     Plug 'sansyrox/vim-python-virtualenv'
    
  • このリンクを通してGithubのプラグインをチェックアウトできます.https://github.com/sansyrox/vim-python-virtualenv
  • それはすべての人々です!


    Any feedback is much appreciated! ✨


    さえずりで私とつながってください
    「生命が意味を捜しているなら、それはよりバイナリ検索である.」アーメンサンスカジェイ
    )