O seguinte me permite usar pressionamentos de tecla de dentro do MacVim para transmitir comandos para a sessão atual do iTerm
O run_command
script 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