Pythonコードで動作するようにVimを構成する

現在、Vim Python IDEの作成方法に関するトピックに関する多くの投稿とビデオがあります。 このエディターを長い間使用しているので、この記事を書くことにしました。この記事で説明するセットアップの経験が損なわれないことを願っています。 膨大な数のプラグインを詰め込んでVimから「ハーベスター」を作成するつもりはありませんが、Python開発者がより快適に感じるのに役立つエディター自体のツールといくつかの拡張機能で対処しようとします。 始めましょう。



LiveReload


最近のほとんどのWeb開発者は、この驚くべき拡張なしに自分の人生を想像することはほとんどできません。 WebStorm、Sublime Textなどのエディターにあり、LiveReloadをサポートしないエディター用の個別のアプリケーションとして存在します。 残念ながら、Vimはそれらのエディターの1つです。 拡張機能はありますが、古くなっており、最新のLiveReload 2プロトコルをサポートしていません。



幸いなことに、python-livereloadと呼ばれる優れたコンソールユーティリティがあります。 このユーティリティの大きな利点のうち、Google Chrome、Firefoxなどのプラグインをインストールする必要はありませんが、ユーティリティは無料です。 ソースはgithub.com/lepture/python-livereloadから入手できます。pipまたはeasy_installでインストールできます。



pip install livereload
      
      







編集を開始する前に、通常のPythonスクリプトであるGuardfileを作成する必要があります。



 #!/usr/bin/env python from livereload.task import Task Task.add('css/*.css') Task.add('*.html')
      
      







次に、現在のディレクトリで次のコマンドを使用してLiveReloadサーバーを起動できます。



 livereload -p 8000
      
      







Python-livereloadは、less、coffee、uglifyjs、slimmerもサポートしています。 livereload.compilerモジュールから対応する関数をインポートするだけで十分です。次に例を示します。



 #!/usr/bin/env python from livereload.task import Task from livereload.compiler import lessc, coffee Task.add('css/*.css') Task.add('*.html') Task.add('css/style.less', lessc('style.less', 'style.css') Task.add('js/main.coffee', coffee('main.coffee', 'main.js')
      
      







基本的なvimエディター設定


次に、将来コードを快適に操作するのに役立つ基本設定について説明します。 まず、リーダーキーを設定しましょう。



mapleader = "、"を設定します



リーダーキーを使用すると、エディターに既に存在する標準の組み合わせを損なうことなく、独自の組み合わせを作成できます。 リーダーキーとして、「、」の組み合わせを設定します。他の設定も可能です。



エディターから余分なものをすべて削除しようとしました(GUIのタブを除く)。 これを行うには、次の設定を使用します



 if has('gui_running') "    GUI Vim set guioptions-=m "   " set guioptions-=e "   GUI      set guioptions-=T "   set guioptions-=r "     set guioptions-=L "     set background=light "      set guioptions-=R set guioptions-=l endif
      
      







コメントアウトされた行セットguioptions- = eに注意してください。 有効にすると、タブはコンソールウィンドウに表示されます。







エディタウィンドウを区切るダッシュ間のインデントは削除できるため、



 set fillchars=stl:\ ,stlnc:\ ,vert:│
      
      











次に、表示できない文字を設定します。これらには、空白文字、改行、タブが含まれます。 次の設定を使用します



 if has('multi_byte') if version >= 700 " set listchars=tab:»\ ,trail:·,eol:¶,extends:→,precedes:←,nbsp:× set listchars=tab:▸\ ,eol:¬ # TextMate else set listchars=tab:»\ ,trail:·,eol:¶,extends:>,precedes:<,nbsp:_ endif endif nmap <leader>l :set list!<CR>
      
      







リーダー+ lの組み合わせを結び付けて、非表示文字を常にオンおよびオフにします。これらは常に必要なわけではなく、編集を妨げることさえあります。



ヒント:エディターにテキストを挿入するときに、フォーマットが保存されず、エディターにゴミが表示されることがあります。 これを回避するには、 set paste行をvimrcに追加するか、コマンドを入力します。テキストを挿入する前にset paste



バンドル


Vundleは、拡張機能のインストールと更新を簡単にします。 記事の後半で、このプラグインを使用して拡張機能をインストールします。 のインストールには時間がかかりますので、すぐにインストールしましょう。



 git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
      
      







ここで、次の行を.vimrcに追加する必要があります。



 set nocompatible filetype off set rtp+=~/.vim/bundle/vundle/ call vundle#rc() "      filetype plugin indent on "      vim
      
      







拡張機能をインストールするには、次の形式を使用します



 Bundle 'tpope/vim-fugitive' "   Github Bundle 'FuzzyFinder' "    vim-scripts Bundle 'git://git.wincent.com/command-t.git' "   Git
      
      







電力線


vimのステータス行は鈍くandいように見えます。 幸いなことに、より有益で美しいプラグインがあります。 ステータスバーの表示例







インストール:バンドル「Lokaltog / vim-powerline」



現在のgitリポジトリのブランチを表示するには、現在のディレクトリにバンドル「tpope / vim-fugitive」を追加してインストールします。 Powerlineが正しく機能するためには、修正されたフォントをここからダウンロードし、インストールして、エディターに登録する必要があります。 例:



 set guifont=Menlo\ Regular\ for\ Powerline:h12
      
      







Command-t


Command-Tは、ファイルを名前ですばやく開き、バッファまたはタグを切り替えることができる優れた拡張機能です。



インストール:バンドル「wincent / Command-T」

次に、command-t拡張ディレクトリに移動して、rake makeを実行します。



 cd .vim/bundle/command-t rake make
      
      







キーボードショートカットは次のように構成できます。



 map <leader>f :CommandT<CR> map <leader>b :CommandTBuffer<CR>
      
      







リーダー+ fでCommand-Tが開き、リーダー+ bで開いているバッファーのリストが開きます。







パイトンモード


Pythonモードでは、エディターからほぼ完全なIDEを作成できます。 python-modeでできること:



1. pyflakes、pep8、pylint、mccable、pep257による強調表示エラー



2. Ropeの完全サポート(RopeCompletion、RopeGotoDefinition、RopeRename、RopeAutoImportなど)



3. virtualenvをサポート







Pythonモード設定の例



 "   Rope let g:pymode_rope = 1 "  linting let g:pymode_lint = 1 "    let g:pymode_lint_checker = "pyflakes,pep8" "   ,     let g:pymode_lint_cwindow = 0 "   virtualenv let g:pymode_virtualenv = 1 "     let g:pymode_syntax = 1 let g:pymode_syntax_all = 1 let g:pymode_syntax_indent_errors = g:pymode_syntax_all let g:pymode_syntax_space_errors = g:pymode_syntax_all "   let g:pymode_folding = 0 "      let g:pymode_breakpoint = 1 "  leader + e    let g:pymode_breakpoint_key = '<leader>e'
      
      







キーボードショートカット:

組み合わせ 説明
Ccg 定義に移動
Cスペース ロープのオートコンプリート
Ccd ロープショーのドキュメント
Ccf ロープ検索オカレンス




ロープのオートコンプリートでは、リーダーとcの組み合わせを構成しました。 そのように点灯します



 imap <leader>c <CR>=RopeCodeAssistInsertMode()<CR>
      
      







github.com/aliev/vimに詳細なコメントが記載されたVim設定ファイルを見ることができます。



その他の便利なvim拡張機能


マッチタグ

バンドル「gregsexton / MatchTag」

ペアのhtml、xmlタグの強調表示



終わりに

バンドル「tpope / vim-endwise」

Rubyのブロックを自動的に閉じることを可能にする、rubistsの優れた拡張機能



エメット

バンドル「mattn / emmet-vim」

私は非常に長い間、この延長を待っていました。 Emmetサポート(Zen Codingに改名)



Tコメント

バンドル「tomtom / tcomment_vim」

自動言語検出によるコードブロックのコメント化



All Articles