Execute testes de MacVim na sessão de iTerm

O seguinte me permite usar pressionamentos de tecla de dentro do MacVim para transmitir comandos para a sessão atual do iTerm

Cenário

O run_commandscript vive em /usr/local/bin/run_command. Ele executa a entrada como um comando no terminal e, em seguida, coloca o foco do aplicativo de volta no MacVim.

 #!/usr/bin/env osascript
on run argv

tell application
"iTerm"
tell the first terminal

tell the current session

write text argv
as string
end tell
end tell
end

tell application
"MacVim"
activate

end tell
end run

Em seguida, configure o arquivo .vimrc para chamar o script run_command

function! SendToTerminal(args)
execute
":silent !run_command '" . a:args . "'"
endfunction


function! ClearTerminal()
call
SendToTerminal("clear")
endfunction


function! RSpec()
call
ClearTerminal()
if exists("s:current_test")
call
SendToTerminal("rspec -fd " . s:current_test)
endif

endfunction


function! RunCurrentTest()
let s:current_test = expand('%:p')
call
RSpec()
endfunction


function! RunCurrentLineInTest()
let s:current_test = expand('%:p') . ":" . line('.')
call
RSpec()
endfunction


function! RunLastCommand()
call
RSpec()
endfunction


nmap
<Leader>t :call RunCurrentTest()<CR>
nmap
<Leader>l :call RunCurrentLineInTest()<CR>
nmap
<Leader>rr :call RunLastCommand()<CR>

Para obter mais informações e outras dicas do vim, verifique meus arquivos dot

https://github.com/harlow/dotfiles