Klavye bağlama olmadan bir okuma satırı işlevi gerçekleştirilsin mi?


26

Ben sadece okuma sayfasını okuyordum ve bilmediğim bir sürü harika komut keşfettim. Ancak, bazılarının varsayılan anahtar bağlantıları yoktur. Bağlanmamış komutları kabuktan çalıştırmanın bir yolu var mı?

~ / .İnputrc içindeki komutu nasıl bağlayacağımı sormuyorum, bunun yerine kabuktan veya bash betiğinden nasıl "kapalı" olarak çalıştırılacağını sormuyorum.

Örneğin, "dökümü değişkenleri" komutu. Çalıştırılması için argüman olarak "dump-değişkenleri" besleyebileceğim bir komut var mı?


2
Readline kılavuzuna ve kaynağına hızlıca bir bakış attığını sanmıyorum.
Jim Paris

Yanıtlar:


10

Aradığın şeyin bindemrin kendisi olduğuna inanıyorum . man builtinBilgiye göre çalışan bind <readline-command>bir kereye mahsus koşmanıza izin veriyor, ancak el kitabının söylediği gibi çalışmasını sağlayamadım ... anahtarları benim için işe yaramaz hale getirdi; kilometreniz değişebilir. Sizin için yararlı olabilecek aşağıdaki komutları buldum.

bind -p # Equivalent to dump-functions [machine readable]
bind -P # Equivalent to dump-functions [human readable]

bind -s # Equivalent to dump-macros    [machine readable]
bind -S # Equivalent to dump-macros    [human readable]

bind -v # Equivalent to dump-variables [machine readable]
bind -V # Equivalent to dump-variables [human readable]

Düzenleme Notu El kitabının dediği gibi çalışmadığının ne kadar sinir bozucu olduğunu belirtmek isterim, çünkü yazıp bindotomatik tamamlama için sekme tuşuna basarsanız, tüm komutları gösterir.


3
Doğrudan okuma satırı işlevlerini tekrar çağırmak: Kılavuzun aslında bunu yapabileceğinizi iddia ettiğini sanmıyorum; sözdizimi formuna atıfta bulunuyorsanız bind readline-command: Doğrudan çağrılabilir bir okuma satırı işlevi değil, commandbir tanımlama (eşleme) çizgisi anlamına geldiğinden şüpheleniyorum . Otomatik tamamlama, bazı platformlarda (örneğin, Fedora 20) açıkça önceden yapılandırılmış bir hoşluktur , fakat diğerlerinde yoktur ; varlığı, readline işlevlerini doğrudan çağırabileceğiniz anlamına gelmez - oldukça "aptal" bir komut tamamlama özelliğidir: tamamlama, sağlanan herhangi bir argüman üzerinde çalışır . bind
mklement0

1
Yürütülen işlevleri / makroları / değişkenleri listeleme komutları için +1; kabuk komutları-X için eklemeye değer (ile tanımlanır ). -x
mklement0
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.