Bir Vim Penceresinin içinde bir Kabuğu nasıl açabilirim?


113

Vim'de: shell komutunu kullanarak bir kabuk açabilirim, ancak bir dosyayı düzenleyemiyorum ve aynı zamanda kabuğu kullanamıyorum.

Vim'i birçok Windows'ta (veya sekmede) bölmenin ve bunlardan birinde bir kabuk açmanın herhangi bir yolu var mı?


1
Eskiden vim için bir kabuk yaması vardı ama artık afaik derlemiyor. Gerçek bir kabuğa en yakın olanı screen veya tmux kullanmaktır. Bu, vim'de özlediğim en büyük şey.
Randy Morris

Yanıtlar:


86

Neovim ve Vim 8.2bunu :ter[minal]komut aracılığıyla yerel olarak destekler .

Ayrıntılar terminal-windowiçin dokümanlara bakın.


5
Bu, vim> = 8.0 için kabul edilen çözüm olmalıdır.
amath

3
Terminal dikey olarak nasıl bölünür?
Kiran Kumar Kotari

2
@KiranKumarKotari Neovim vsplit term://bashkullanıyorsanız deneyin.
prater

4
vim 8.0 veya sonraki sürümlerde, terminalkomut pencereyi böler ve pencere durum çubuğunda özel renkte bir komut kabuğu verir. Kaygan.
NoelProf

@KiranKumarKotari vert [ical] ter [minal]
MPA95

46

Bu, işletim sisteminize bağlıdır - aslında bunu MS Windows üzerinde test etmedim - ancak Conque piyasadaki en iyi eklentilerden biridir.

Aslında daha iyi olabilir ama işe yarıyor.


4
Eklentileri yönetmek için Vundle kullanıyorsanız, .vimrc dosyanıza Bundle 'jewes / Conque-Shell' ekleyebilir ve yüklemek için BundleInstall komutunu çalıştırabilirsiniz.
Mingjiang Shi

Dikkat edilmesi gereken bir şey var: vi için + python veya + python3 gereksinimi, bazı çalışma ortamlarında katil olabilir.
cfi

Bu güncellenmiş URL'dir (ekran görüntüleriyle birlikte): github.com/wkentaro/conque.vim
Walty Yeung

18

:vspveya :sp- vim'i iki örneğe böler, ancak kullanamazsınız: bunlardan yalnızca birinde kabuk.

Neden başka bir vim sekmesi değil, terminalin başka bir sekmesi görüntülenmiyor? Bu fikri beğendiyseniz deneyebilirsiniz: Ctrl-shift-t.ve arasında Ctrl - pageupve ileCtrl - pagedown

Yalnızca birkaç kabuk komutu istiyorsanız, vim'de herhangi bir kabuk komutunu kullanarak yapabilirsiniz. !

Örneğin :!./a.out.


1
Ve şu anda açık olan bir yürütülebilir dosyayı çalıştırmak için vimyol sihrini şu şekilde kullanabilirsiniz ::!./%
cprn

Neden terminalin başka bir sekmesi görüntülenmiyor - herkes vim'i bir GUI üzerindeki bir terminal öykünücüsünde kullanmıyor… Kimden - Ctrlsanırım cevabınız gnome-terminal veya benzer bir emülatör varsayıyor.
törzsmókus

8

Sen kullanabilirsiniz tmuxya screenda terminalini bölmek için (ikinci bir yama olmadan sadece yatay böler yapabilir). Ama her iki bölmede de bir Vim örneğine sahip olmanın yolunu bilmiyorum.


4
ekranı git'ten oluşturursanız dikey bölmeler yapabilir.
Randy Morris


6

Sanırım bu oldukça eski bir soru ama şimdi 2017'de. Terminal desteği ekleyen bir vim çatalı olan neovim var.

Böylece çağırmak :termbir terminal penceresi açacaktır. Bu çözümün tmux (bir terminal çoklayıcı) kullanmanın aksine güzelliği, vimkurulumunuzla aynı pencere bağlamalarına sahip olmanızdır . neovim, vim ile uyumludur, bu nedenle temelde kopyalayıp yapıştırabilirsiniz .vimrcve çalışacaktır.

Daha fazla avantaj, açılan terminalde normal moda geçebilmeniz ve temel kopyalama ve düzenleme yapabilmenizdir. Ayrıca git commits için de oldukça kullanışlıdır, çünkü arabelleğinizdeki her şeyi otomatik tamamlamada kullanabilirsiniz.

Bu yanıtı güncelleyeceğim çünkü vim ayrıca muhtemelen vim 8.1'de terminal desteğini de yayınlamayı planlıyor. İlerlemeyi buradan takip edebilirsiniz: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

Yayınlandıktan sonra, bunun tmux kullanmaktan daha üstün bir kurulum olduğuna inanıyorum.


6
Vim 8.0'da yayınlandı sanırım
LangeHaare

3

Shougo en VimShell neocomplcache ile kullanıldığında kutu otomatik tamamlama dosya adları,


1

Tam olarak istediğiniz şey değil, ancak kullanıcının bir arka plan sürecini canlı tutmasına ve mevcut belgenin bir bölümünü değerlendirmesine (ve çıktıyı belgeye yazmasına) olanak tanıyan eklenti vim-defterim ilginizi çekebilir . Değerlendirilecek kod parçalarını içeren not defteri tarzı belgelerde kullanılması amaçlanmıştır.


0

Bir "ekran" programını açmak, ekranı bölmek, birinde kabuk açmak ve diğerinde vim yapmak isteyebilirsiniz. Benim için çalışıyor.


Açıklama olmadığı için -1 iptal edildi. Ayrıca vim screen eklenti çözümünü de test ettim ve mrcybul çözümünden çok da farklı değil. @mrcybul: yardım etmeye çalışan tanklar. Olumsuz oy verilmesini önlemek için, diğer cevapları dikkatlice okuyun ve kendi cevaplarınızı ancak yeni bir şey getireceğini düşünüyorsanız ekleyin. Ayrıca, belirli durumlarda çözümünüzün neden daha iyi olabileceğini de ekleyin.
Titou

0

Şu anda tmux kullanıyorum.

Kurulum: sudo apt-get install tmux Çalıştırın: tmux

Ctrl + b ve ardından Ctr +%: terminal pencerenizi iki dikey yarıya böler.

Ctrl + "sol ok | sağ ok": terminaller arasında hareket eder.

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.