この記事は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 nmap SlimeLineSendj
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化を目指していらっしゃる方は、ぜひ一度お試しあれ。



コメント