Как выполнить файл, который я редактирую в Vi (m) - PullRequest
92 голосов
/ 05 июня 2009

Как выполнить файл, который я редактирую, в Vi (m) и получить вывод в разделенном окне (как в SciTE)?

Конечно, я мог бы выполнить это так:

:!scriptname

Но возможно ли избежать написания имени сценария и как получить вывод в разделенном окне вместо нижней части экрана?

Ответы [ 11 ]

0 голосов
/ 05 марта 2014

На основании ответов @SethKriticos и @Cyril я теперь использую следующее:

function! Setup_ExecNDisplay()
  execute "w"
  execute "silent !chmod +x %:p"
  let n=expand('%:t')
  execute "silent !%:p 2>&1 | tee ~/.vim/output_".n
  " I prefer vsplit
  "execute "split ~/.vim/output_".n
  execute "vsplit ~/.vim/output_".n
  execute "redraw!"
  set autoread
endfunction

function! ExecNDisplay()
  execute "w"
  let n=expand('%:t')
  execute "silent !%:p 2>&1 | tee ~/.vim/output_".n
  " I use set autoread
  "execute "1 . 'wincmd e'"
endfunction

:nmap <F9> :call Setup_ExecNDisplay()<CR>
:nmap <F2> :call ExecNDisplay()<CR>

Используйте F9 для настройки нового окна и F2 для выполнения вашего скрипта и перехода к выходному файлу.

Я также добавил имя сценария к имени выходного файла, чтобы вы могли использовать его для нескольких сценариев одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...