tmux와 vim-rspec과 vim-dispatch로 편안한 RSpec 생활
이 두 가지를 함께 사용하면 vim에서 RSpec으로 작성한 example을 실행하는 것이 매우 쉽습니다.
우선 새로운 플러그인을 발견했을 때 제일 먼저 신경이 쓰이는 「NANI가 할 수 없어!??!?!?!」
라는 말이 아니라 실제로 보지 않으면 모르기 때문에 gif를 붙입니다.
같은 상황에서
해줍니다. 개인적으로는 가려운 곳에 손이 닿는 느낌이 들고 굉장합니다.
물론 커서에서 가장 가까운 example 1개만 실행도 가능합니다
무슨 일이 있었는지 흐름
vim-rspec을 넣어 실행할 수 있습니다.
:call RunCurrentSpecFile()
:call RunNearestSpec()
:call RunLastSpec()
:call RunAllSpecs()
명령 중 하나를 실행
↓
vim-rspec 측의 설정으로 vim-dispatch를 넣는 것으로 들어간다
Dispatch
명령에 rspec
↓
vim-dispatch는 tmux가 시작되면 자동으로 다른 패널을 열어 실행합니다.
↓
vim-dispatch가 실행 결과를 quickfix에 표시합니다.
같은 느낌이 듭니다.
설정 방법
설치
NeoBundle 'tpope/vim-dispatch'
NeoBundle 'thoughtbot/vim-rspec'
나처럼 지연로드하고 조금이라도 vim 기동을 빨리하고 싶은 사람은
NeoBundleLazy 'thoughtbot/vim-rspec', {
\ 'depends' : 'tpope/vim-dispatch',
\ 'autoload' : { 'filetypes' : ['ruby'] }
\ }
설정
let g:rspec_command = "Dispatch rspec {spec}"
그리고 vim-rspec이 입력하는 명령을 두드리면
rspec
명령을 Dispatch
명령에 전달하여 실행할 수 있습니다.NeoBundleLazy
let s:bundle = neobundle#get('vim-rspec')
function! s:bundle.hooks.on_source(bundle)
let g:rspec_command = 'Dispatch rspec {spec}'
endfunction
됩니다.
그건 그렇고, 나는 RSpec 1.X를 사용하는 프로젝트도 있기 때문에
let s:bundle = neobundle#get('vim-rspec')
function! s:bundle.hooks.on_source(bundle)
if executable('rspec')
let g:rspec_command = 'Dispatch rspec {spec}'
elseif executable('spec')
let g:rspec_command = 'Dispatch spec {spec}'
endif
endfunction
합니다.
덤
zeus도 사용하는 사람은
let g:rspec_command = "Dispatch zeus rspec {spec}"
그렇다면 zeus의 혜택도 물론받을 수 있습니다, 편리!
키 바인딩
나는 다음과 같이 설정한다.
nmap <silent><leader>c :call RunCurrentSpecFile()<CR>
nmap <silent><leader>n :call RunNearestSpec()<CR>
nmap <silent><leader>l :call RunLastSpec()<CR>
nmap <silent><leader>a :call RunAllSpecs()<CR>
요약
guard도 사용하고 있습니다만, guard에서는 개별의 example을 실행하는 좋은 방법을 찾을 수 없어, 이 방법에 도착했습니다.
vim-dispatch는 vim-rspec과 조합하여 사용하는 것 외에도 여러가지 편리한 사용법이 있으므로 한 번 README을 보면 좋을지도 모릅니다
Reference
이 문제에 관하여(tmux와 vim-rspec과 vim-dispatch로 편안한 RSpec 생활), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/take/items/7bb67276c785e223069a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)