Vim'deyken terminale erişim


40

Vim kullanırken terminale erişmenin bir yolu var mı ?

Başka bir terminal açmayı veya mevcut terminalden kaydedip çıkmayı sevmiyorum.


Yeni bir sekme açılsın mı? (Ctrl + Shift + T)
Wilf

2
Bunu kaç kere :)
Yapmayı sevmiyorum

1
Tmux gibi bir terminal penceresi yöneticisi kullanmayı denediniz mi?
jrg

Yanıtlar:


67

SIGTSTP sinyalini vim olarak gönderebilirsiniz. Bunu ctrl+ tuşuna basarak yaparsınız z. Vim arka planda askıya alınacak ve terminali kullanabilirsiniz. Tip fgvim devam etmek terminali içinde.

Bonus ipucu: Bu hemen hemen tüm terminal uygulamalarında çalışır. bgUygulamanın arka planda çalışmaya devam etmesini sağlamak için kullanın .


21
Ya da sadece %yerine fg. Veya %1, %2vb. Birçok arka plan işiniz varsa. jobskomut onları listeler. ( bashKabuk olarak kabul edilir.)
Ruslan

4
^ Z (ve daha sonra fg) yöntemine oy veririm, çünkü bu neredeyse tüm kabuk işlemlerinde kullanılabilir - bu bir vim şey değil, diğer bağlamlarda inanılmaz derecede yararlı olan bir nasıl kullanılacağı-hiledir.
dman,

35

Vim'de, sadece şunu yazın:

:!sh

:!harici bir işlem başlattı - bu durumda shbaşka bir kabuk. Kabuktan çıktıktan sonra kontrol vim'e döner. Kabuğu vim ile aynı anda kullanmak istiyorsanız &, sh komutunun sonuna ekleyin :

:!sh&

9
Ya da sadece kullanın :shell.
wchargin

2
Bu, çoğu amaç için en iyi cevaptır.
Frank Conry,

Bu hoş ama komutun bir sunucuyu çalıştırması gibi, ne gibi http-serverve görüntülemek istediğim günlükleri basıyor? Dosyalarıma geçmeyi, düzenlemeleri yapmayı ve günlüklerime geri dönmeyi istiyorum.
Costa

21

Sen kullanabilirsiniz :shellkomutu (veya kısa formu :sh). Kimden :help :shell:

Bu komut bir kabuk başlatır. Kabuk çıktığında ("exit" komutundan sonra) Vim'e dönersiniz. Kabuk komutunun adı 'kabuk' seçeneğinden gelir.

Varsayılan olarak, Ubuntu'da bu size bash verecektir. exitİşiniz bittiğinde vim'e dönmek için yazın .


8

Son vim beri şimdi yapabilirsiniz:

:terminal

Bu başlangıçta Vim 8.0.693'e eklenmiş , ancak çok fazla hata olmuştur. Bakınız :help terminal:

WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE

The terminal feature is optional, use this to check if your Vim has it: 
        echo has('terminal')
If the result is "1" you have it.   

[...]

The terminal feature requires the +multi_byte, +job and +channel features.

==============================================================================
1. Basic use                                            terminal-use

This feature is for running a terminal emulator in a Vim window.  A job can be
started connected to the terminal emulator. For example, to run a shell: 
     :term bash

Or to run a debugger: 
     :term gdb vim

The job runs asynchronously from Vim, the window will be updated to show
output from the job, also  while editing in any other window.

7

Tüm cevaplara ek olarak.

ConqueTerm eklentisini yükleyebilirsin

Bu eklenti vim tamponları içinde etkileşimli programlar çalıştırma yeteneği sağlar.

Yüklemeden sonra, bu 2 satırı aşağıdakilere ekleyebilirsiniz .vimrc:

:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>

Ve çalıştırmak mümkün olacak bashbasarak Shift+ Tbasarak ve yakın akım Conque sekme Shift+W

Hızlı açma / kapama işlemine ihtiyacınız varsa, sapıktır bash.

İşte nasıl göründüğünü gösteren gif


Lütfen yayınları güncellemeyi düşünebilir misiniz? Bahsettiğiniz linkler modası geçmiş gibi görünüyor
ggulgulia 25:18

4

Ekran veya byobu ile başka bir seçenek bu programlar içinde bir sekme açmaktır. Bu programlar terminal oturum cq kabuğunu açık tutmayı ve klavyeyle bu ekranlar arasında geçiş yapmayı oldukça kolaylaştırır.


1

Vim 8.1'in yeni sürümü ile yapmanız gereken tek şey adil :terminalve işte! (bu yerleşiktir)

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.