İTerm2 için genel çıkış fonksiyonu


4

Geçenlerde macOS Terminal uygulaması yerine iTerm2 kullanmaya başladım ve gerçekten çok mutluyum. Şu anda odağın exitbulunduğu örneği kapatmak için komut kullanmaya çok alışkınım . Örneğin, aşağıdakilerden birini kastediyorum: Sekme, Pencere veya Bölünmüş Panel.

Çalışmakta olan örneği kapatan bir işlev çıkışını nasıl yazabilirim? Aşağıdaki geçici çözüm, pencereler için çalışır, ancak sekmeler veya bölmeler panelleri için çalışmaz:

function exit {
    osascript -e 'tell application "iTerm2" to close first window'
}

Çözüm ya zshda ile çalışmalı bash.


2
exitbir kabuk yerleşiktir (komut). Aynı isimde bir işleve sahip olmak iyi bir fikir değildir.
fd0

1
Bu konu çok net değil. İTerm'in birden fazla örneğine sahip olduğumda, exit yazmak yalnızca bu örneği kapatır (yalnızca doğrulamak için test edilmiştir).
Allan

1
@Allan karışıklık için üzgünüm: Örnek olarak, aşağıdakilerden birini kastettim: Sekme, Pencere veya Bölünmüş Panel. Demek istediğim, demek istediğim: İki sekme içeren bir iTerm2 Pencerem varsa, odaklı olanı yazarak kapatmak istiyorum exit. Bu ilk sekme kapalıysa, exittüm pencereyi kapatır (bu kısım zaten çalışıyordur).
dtell

1
Tamam ... yani bunu okuduğum şekilde ,> 1 pencere / sekme / bölme olduğunda çıkış işlevinin farklı şekilde çalışmasını istiyorsunuz . Bunu mümkün görmüyorum.
Allan

2
Bir oturumdan çıkmakla pencereyi kapatmak arasında bir karışıklık olduğunu düşünüyorum. Terminalde, siz yazarken oturumuexit kapatır, ancak pencere / sekme / bölmeyi açık bırakır. Doğru?
Allan

Yanıtlar:


3

Terminal'de kapalı oturumları kullanmak için varsayılan ayar pencereyi açık bırakmaktır.

Tercihler> Profiller'de:

görüntü tanımını buraya girin

İTerm2'de varsayılan, pencereyi kapatmaktır.

görüntü tanımını buraya girin

İTerm2'deki bu seçeneği devre dışı bırakırsanız, size aradığınız davranışı sağlamalıdır.


0

.profile’nize ekleyebilirsiniz

alias killiTerm2 = 'killall iTerm2'

Terminalden sadece killiTerm2'yi arayacaktınız ve iTerm2'nin her çalışan örneğini öldürecektir.


Tüm uygulamayı kapatmak istemediğim için sorunumu hiçbir şekilde çözmüyor.
dtell

0

Bölüm komut dosyası içinde iTerm2 belgelerinde benim sorunu gidermeye yardımcı oldu.

İçinde .zshrcaşağıdaki işlevi tanımladım:

function exit {
    osascript ~/.zsh/.function_exit.as
}

ile ~/.zsh/.function_exit.asolduğu gibi

tell application "iTerm2"
    tell current window to close current session
end tell

Ek olarak iTerm2 ayarlarında aşağıdaki seçeneği belirledim:

görüntü tanımını buraya girin

görüntü tanımını buraya girin

Yukarıdakilerin tümünü birlikte kullanarak aşağıdaki davranışları elde ederim:

görüntü tanımını buraya girin

Bu, kullanılan Shell'e bağlı olmadığından her şey mükemmel bir şekilde çalışmalıdır bash(ve ilgili nokta dosyasını).


1
Bu, işlev adı hariç, iyi bir çözümdür. exitBir olan yerleşik komutu ve Ayrılmış bir ada olan bir işlev oluşturarak olumsuz sonuçlara neden olabilir.
Allan
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.