Я считал много потоков о рабочих командах оболочки от энергии, много документации относительно команд энергии, .vimrc и всего этого, но я просто, может казаться, не понимаю "исключая" языком или отображениями энергии достаточно хорошо, чтобы сделать то, что я хочу, таким образом, здесь я задаю этот вопрос. Здесь идет:
У меня есть открытый буфер в энергии (использующий последнего стабильного MacVim на Snow Leopard, но не в gui режиме), чье содержание я позже подам в инструмент командной строки, который обработает его и даст мне некоторый вывод. То, что я хочу, должно смочь:
Так, таким образом: Я могу работать
$ cat ~/myinput.txt | myScript > output.txt
Но я хочу сделать что-то как эта внутренняя часть энергии, помещая вывод в новое окно с несколькими панелями, если это возможно.
ОБНОВЛЕНИЕ:
Конечно, сразу после регистрации, я нашел еще некоторую информацию о предмете. Я теперь знаю, что могу сделать эту внутреннюю энергию:
:%! myScript
И это поместит вывод myScript (с содержимым буфера, переданным по каналу к нему) в мой текущий буфер, заменяя независимо от того, что я имею в нем прямо сейчас.
Так существует ли способ поместить это содержание в новое, окно с несколькими панелями, буфер?Спасибо!
Я поместил бы что-то вроде этого в свой ~/.vimrc или файл с .vim расширением в ~/.vim/plugin/:
command! FW call FilterToNewWindow('myscript')
function! FilterToNewWindow(script)
let TempFile = tempname()
let SaveModified = &modified
exe 'w ' . TempFile
let &modified = SaveModified
exe 'split ' . TempFile
exe '%! ' . a:script
endfunction
Затем можно просто сделать":FW
".
Это могла бы быть хорошая идея изменить определение команды, чтобы потребовать, чтобы аргумент названия сценария фильтра передал функции вместо "трудного кодирования" его.