İ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.