Zsh'de tanımlanan işlevlerin listesini almanın herhangi bir yolu (takma adlar için takma ad komutu gibi)


19

Yazabilirim

alias

ve zsh içinde tanımlı takma adların bir listesini alın

Zsh'de tanımlanan işlev adlarının listesini nasıl edinebilirim?

"İşlevler" yazdığımda, çok sayıda işlev görüntülendikten sonra kabuk pencerem kilitleniyor ve her zaman bitiyor

__rvm_checksum_none () {
    [[ -z "${_checksum_md5:-}" && -z "${_checksum_sha512:-}" ]]
}
__rvm_checksum_read () {

Süper can sıkıcı olan, bunun ctrl-c (item2 AND terminalini kullanarak) ile çıkmamasıdır.

iterm2: resim açıklamasını buraya girin

Aynı sorunu yaşayan terminalin resmi: resim açıklamasını buraya girin


Genellikle listeleme olduğu ile yapılır functionsyerleşiğini. Önce problemli (?) Fonksiyonunu tanımlamazsanız çıktı alır mısınız unfunction __rvm_checksum_read?
mpy

İşlevler listesini almak istiyorsam (tam bildirimler değil) ne olur? Ben bu yöntemi işlevsiz, başka bir __rvm_curl de sorunları var.
justingordon

Cevabımı gör. Ancak tanımladığınız davranış kulağa garip geliyor ... bu yüzden ilginizi çekmiyor: Listenin tamamı başka bir terminal öykünücüsü ile çalışıyor mu? Sorunlu fonksiyonları başarılı bir şekilde kullanabilir misiniz?
mpy

uçbirim madde 2 ile aynı sorunu yaşıyor. Aşağıdaki cevap KORKUNÇ. Terminalin neden sadece 'fonksiyonlar' komutunu kullanarak kilitlendiğini bilmek istesem de (daha az borsada bile olsa) önemli mi? Bunun sorunlara yol açmasının herhangi bir nedeni var mı?
justingordon

Bu fonksiyonlarda terminali bozan bazı garip karakter dizileri olduğunu sanıyordum. Bunu daraltmak için çıktıyı bir dosyaya yönlendirebilirsiniz functions > /tmp/foo. Eğer bir zsh problemi varsa, bunun da sorunu olmalı. Bu bir terminal sorunu olduğunda olmamalıdır. Sorununuz günlük kullanımla etkileşime girebilirse - söyleyemem, üzgünüm.
mpy

Yanıtlar:


19

_functionsTamamlama işlevine bakarak hile yaparak , sorunuza cevap verebiliyorum:

İşlevler ilişkilendirilebilir bir dizide saklanır functions, bu nedenle yalnızca işlev adlarını ( anahtarlark için bayrak ) alfabetik sırayla ( sipariş için bayrak) almak için kullanabilirsinizo

print -l ${(ok)functions}
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.