この記事はVim Advent Calendar 2016の20日目の記事です。
選択行の内容をコンソールに送信
インタラクティブコンソールが立ち上がるようなプログラミング言語を VIM で書いていて、カーソルの位置のコードをコンソールに送信したいなんて人に朗報です。
vim-slime
vim-slime は、そんな内容を実現してくれるプラグインです。
もともとは Emacs の slime の VIM 版だそう。
インストール
導入は NeoBundle とかで問題なくはいります。
対応コンソール
- screen
- tmux
- whimrepl
- ConEmu
ConEmu も対応しているので、Linux 環境だけでなくWindows にも対応できます。
標準の使い方
C-c, C-c --- the same as slime
Emacs の slime と同じく、C-c
の2度押しで送信できます。
:SlimeConfig or C-c, v
送信するコンソールを指定するコマンドです。
このあたりはGitHubレポジトリを見ていただいたほうがいいです。
Python 開発用の vimrc の設定
私の設定例を紹介します。
" s---- Slime Ipython Debugging let g:slime_target = "tmux" let g:slime_python_ipython = 1 let g:slime_default_config = {"socket_name": "default", "target_pane": "2"} let g:slime_dont_ask_default = 1 autocmd FileType python nmapSlimeLineSendj autocmd FileType python xmap SlimeRegionSend autocmd FileType python nmap :SlimeSend0 "%run '".expand('%:p')."'\n" " e---- Slime Ipython Debugging
slime_target
で、コンソールタイプを選択します。slime_python_ipython
は、IPython 用に送信する内容を成形してくれる設定です。slime_default_config
で、標準の送付先を設定します。今回は、2つ目のPaneに対して送信するようになっています。slime_dont_ask_default
は、初回送信時の確認プロンプトを非表示にします。
autocmd
以下は F2
で選択行の内容と、選択範囲の送信を行うようにし、F11
でファイルの実行を行うようにしています。また、コードを送信した後にカーソルを下に移動するようにし、F2
を押していけばコードの逐次実行が可能になります。
各プログラミング言語の設定例
ここにいくつかの言語の設定例が紹介されています。
PyDev のような環境が欲しかった。
私は Python プログラマで Vim だけを使いたいなぁと思いつつ、普段は Eclipse の PyDev で vrapper プラグインを使って開発していたのですが、vim-slime に出会ってからはほとんど VIM 上で開発ができるようになりました。PyDev を使っていた上で、とても重宝していたのが F2 による、選択行や選択範囲のインタラクティブコンソールでの逐次実行。これがあるとないで、開発効率がかなり左右されてしまうほどです。
VIMのIDE化を目指していらっしゃる方は、ぜひ一度お試しあれ。
コメント