Vim+Screenプログラミング
僕の初のVim+Screenプログラミングはやはりコレ。emacsのC-x C-eが欲しい。
if !has('gui_running') function! ScreenSpiritOpen(cmd) call system("screen -X eval split focus 'screen " . a:cmd ."' focus") endfunction function! ScreenEval(str) let s = substitute(a:str, "[\n]*$", "\n\n", "") " 最後が改行 * 2で終わるようにする。 call writefile(split(s, "\n"), "/tmp/vim-screen", "b") call system("screen -X eval focus 'readreg p /tmp/vim-screen' 'paste p' focus") endfunction nmap ,e :call ScreenEval(getline('.'))<CR> vmap ,e "zy:call ScreenEval(@z)<CR> command! -nargs=1 Screen call ScreenSpiritOpen("<args>") endif
使ってみよう。
まず、vimを立ち上げて。
% vim hoge.rb
Screenコマンドでirbを立ち上げる。
:Screen irb
そしたら,rubyプログラミングをはじめよう。
5.times do puts "Hello, Vim + Sceen!!" end
おもむろにVでガガーっと選択して、「,e」
irb(main):001:0> 5.times do irb(main):002:1* puts "Hello, Vim + Sceen!!" irb(main):003:1> end Hello, Vim + Sceen!! Hello, Vim + Sceen!! Hello, Vim + Sceen!! Hello, Vim + Sceen!! Hello, Vim + Sceen!! => 5 irb(main):004:0>
おぉぉぉぉ。