Kabuk komutunun çıktısını bölünmüş bölmede açma


23

Yorumlanan herhangi bir programlama dilini düşünün.

Şu anda açık olan komut dosyasını kullanarak çalıştırabilir ! interpreter %ve yürütme bittikten sonra vim'e dönmek için return tuşunu kullanabilirim.

Geçerli pencereyi yürütülen kabuk komutunun çıktısıyla değiştirmek değil, çıkışı yeni bir bölme bölmesinde açmak bir şekilde mümkün mü? Hala betiğimin yürütülmesi sırasında kaynak kodumu görmek istiyorum.

Denedim :split ! interpreter %ama işe yaramadı.

Bir yolu var mı? Vim 7.3 kullanıyorum.

Yanıtlar:


29

İle :!, harici komut bir kabukta yürütülür ve geçici çıkış Vim içinde yakalanmaz; sadece terminale nelerin yazdırılacağını görürsünüz, sonra harici komut bittikten sonra kontrol Vim'e döner.

Çıktıyı korumak için, Vim tamponuna okumalısınız . Bunun için :read!komut var. Yeni bir çizik tamponu açmak için bunu aşağıdakilerle birleştirin :new:

:new | 0read ! <command>

Geçerli arabellek dosya adını ( %) harici komuta iletmek istiyorsanız, geçerli arabellekte :executezaten değerlendirilmesi için kullanmanız gerekir:

:execute 'new | 0read ! interpreter' expand('%')

Ya da, yeni bir arabellekle bir öncekinin alternatif olan haline gelmesini ve #yerine şunu kullanmasını kullanırsınız %:

:new | 0read ! interpreter #

Çizik tampon ile kurtulun :bdelete!.

Çıktı yürütülürken eşzamansız olarak görmek istiyorsanız, @chaos yanıtında belirtildiği gibi harici bir çoklayıcıya veya eklentiye ihtiyacınız vardır.


Yukarıdaki ": execute ..." komutu benim için çalışıyor, ancak bu .vimrc girdisini kullanarak F9 tuş vuruşuna bağlamaya çalıştığımda [nnoremap <buffer> <F9>: 'new | 0read! / Usr / bin / env python3 'expand ('% ')], şu hatayı alıyorum: [/ bin / bash: -c: line 0: `` expand ('% '') eşleşirken beklenmeyen EOF )]. Birkaç kaçış dizisi denedim, ama sanırım doğru değil. = :). Herhangi bir fikir? Teşekkür ederim.
NYCeyes

2

Bildiğim kadarıyla bunu yapamazsın vim. Ancak bunun için bir terminal çoklayıcı kullanın screen. Bir vim açmadan önce çoklayıcıyı başlatın:

screen

Ardından yatay bir ekran için - ve dikey bir dökülen ekran için ctrl- tuşuna basın .a Sctrla |

Şimdi vimbölünmüş ekranlardan birinde bir dosya açın . Ve kullanan diğer ekrana atlamak ctrl- a tab. Dikkat edin, ikinci ekranda kullanabilmeniz için önce yeni bir ekran ( ctrl- a c) açmanız gerekir.

Vim ile ekranda dosyayı düzenleyebilir ve diğer ekranda dosyayı yürütebilir, mesajları ve kodu kalıcı olarak görebilirsiniz.

Bir Buraya hızlı başvuru için screen.


Alternatif olarak, bölmeler arasında bölünmeyi ve atlamayı otomatikleştirmek için tmuxçoklayıcı ve vim-dispatcheklenti kullanabilirsiniz .
TakeTwo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.