Несколько месяцев назад я переключился от Textmate до Vim. В целом я действительно люблю Vim, но одна из вещей, которые я пропускаю от Textmate, использует команду ⌘R для выполнения кода Ruby и имеет результаты, аккуратно открываются в новом, окне с возможностью прокрутки. Очевидно, Vim способен к выполнению кода Ruby и отображению вывода с :w !ruby
. Единственный недостаток к этому - то, что, если получающийся вывод является слишком длинным, я не могу просмотреть его путем прокрутки.
Для борьбы с этой проблемой, я пытался изменить a :redir
функция от Подсказок по Vim. Это похоже на это:
function! TabMessage(cmd)
redir => message
silent execute a:cmd
redir END
tabnew
silent put=message
set nomodified
endfunction
command! -nargs=+ -complete=command TabMessage call TabMessage(<q-args>)
Теперь вывод от Ruby помещается в новую вкладку. Однако я не могу заставить это открываться в новом, отдельном окне. Изменение tabnew
кому: new
просто отправляет вывод в разделение в том же окне.
Другая проблема состоит в том что видимое ^M
добавляется в конец каждой строки, таким образом, вывод заканчивает тем, что был похож на это, которое является довольно надоедливым:
Hello World!^M
Так, есть ли любой способ получить вывод в отдельное окно без ^M
добавленный в конец? Есть ли какие-либо плагины, которые я должен использовать для достижения этого подобного Textmate эффекта для вывода кода?
Это кажется на использование MacVim так попробуйте это:
:w !ruby | mvim -c "set nomodified" -
Принятие Вас имеет mvim
напишите сценарий где-нибудь в Вашем пути, который выполнит содержание текущего буфера, затем передать вывод по каналу в экземпляр MacVim, работающего в новом окне OS X (по сравнению с новым окном Vim). Новый буфер отмечен неизмененный для предотвращения предупреждений, когда Вы пытаетесь закрыть его без сохранения.
Подробнее:
:help macvim
:help mvim
Несколько предложений:
:!ruby foo.rb
не работая на Вас? Принятие Вашей энергии работает в окне с возможностью прокрутки? Или как насчет :!ruby foo.rb > foo.out
, сопровождаемый :e foo.out
После этого у Вас будет 2 буфера открытыми, исходный файл, Вы работали в и результаты рабочего рубина. Можно сделать все виды вещей с буферами (откройте буферы в окне с несколькими панелями, и т.д.). Выезд :help :buffer
для большего количества опций в этой области.:ruby {cmd}
. Выезд :help :ruby
для большего количества информации об этом.