Bash'in meta anahtarı aslında şu şekilde tanımlandı ( lib/readline/ChangeLog):
Mon Jul 13 11:34:07 1992 Brian Fox (bfox@cubit)
* readline.c: (rl_variable_bind) New variable "meta-flag" if "on"
means force the use of the 8th bit as Meta bit. Internal variable
is called meta_flag.
Ncurses ve xterm ile yorumlanma şekli budur . Bir kaç Bu özellik isteğe yapmak için sağlanan terminaller (yani boy yaygın değildi terminalleri çoğu, kullanımı kodlanmış davranışı (ve çok ilginç değil) karşılaşacak.. Terminfo'ya manuel sayfa belgelerde bu uç yetenekleri:
has_meta_key km km Has a meta key
(i.e., sets 8th-bit)
meta_off rmm mo turn off meta mode
meta_on smm mm turn on meta mode
(8th-bit on)
ve özelliği açıklar:
Terminalde, iletilen herhangi bir karakterin 8. bitini ayarlayan bir üst karakter tuşu görevi gören bir "meta anahtar" varsa, bu durum ile belirtilebilir km. Aksi takdirde, yazılım 8. bitin eşlik olduğunu varsayar ve genellikle silinir. Dizeleri bu "meta mod" ve kapatmak için varsa, bunlar da verilebilir smmve rmm.
AltBazı terminal öykünücülerine anahtara yanıt olarak bir kaçış karakterini önekleyen farklı bir özellik eklenmiştir. Bash (aslında readlinekütüphane) 2004'teki değişim günlüğünde kullanılan belgeleri :
lib/readline/callback.c
- use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to
simulate the recursion used to decode multicharacter key sequences
(even things like ESC- as meta-prefix
Meta, değiştirici anahtarın özel bir halidir . Gibi controlve shift, başka bir tuşla aynı anda basarsınız ve tuşa tek başına basmaktan farklı bir şey görmeyi beklersiniz. X, anahtarın X olayında iletilen değiştirici değerine bir bit atayarak değiştirici anahtarlar sağlar. Tuşa basma birden çok X olayı olabilir; X, değiştiricileri korurken bu olayları birleştirmek için işlevler sağlar.
X ayrıca klavyenizde görünebilecek tuşların her biri için semboller tanımlar. Olayları birleştiren işlevlerde özel işlemlerle diğer değerleri (Unicode gibi) sağlar.
Ancak "meta" özel bir durumdur.
X uygulamalarının metakural dışında bir anahtarı yoktur . X'in meta anahtar veya meta değiştirici için bir tanımı yoktur. Geleneksel olarak terminaller, Alt-key ve / veya xmodmapörn mod2. Daha sonraki xkb özelliği, Altanahtarı bulmak için başka bir bilgi katmanı sağlayarak işleri karmaşıklaştırır (ancak bu tartışmaya göre hiçbir iyileştirme sağlamaz) .
Konvansiyon, meta hakkında özellikle hiçbir şey bilmediği xmodmapveya xkbbilmediği göz önüne alındığında, sizi şimdiye kadar alabilir . Örneğin, xterm yapılandırılabilir ve tüm kullanıcılar metaları aynı şekilde yapılandırmak istemez . Örneğin , amaçlanan meta anahtar olmayabilir, örneğin kaynakta kullanılıyorsa . Başka bir anahtar meta anahtar olabilir, ancak kullanıcılar (özellikle bash'da kaçış dizileri kullananlar), basıldıklarında bir kaçış karakteri gönderilmesini isteyebilir . Ancak, değiştirici olarak yapılandırılmadığı sürece bunların hiçbirinin gerçekleşmeyeceğini unutmayın: xterm olayları tek başına birleştirmez.AlttranslationAlt
xterm çeşitli kaynak ayarlarına sahiptir ( manuel sayfada belgelenmiştir ):
altIsNotMetave altSendsEscape( 2007'de eklendi ).
eightBitInput2006'dan beri orijinal meta mod hissine karşılık gelir ve bunun için smmve rmm(meta modu ayarla / kaldır) terminal yeteneklerini sağlayan bir kaçış dizisi vardır .
eightBitInputmodifiye edilmiş 2003 yerine çiğ girdi bayt'tan 128 tarafından deşifre Unicode değerleri kaydırarak dikkate UTF-8 çekin.
metaSendsEscape1999 tarihleri
eightBitInputdaha yaşlı metaSendsEscape. Bu, meta mod (sekizinci bitin eklenmesi) veya escapeX11R4'ten (1989) beri bir tuşun ön eki arasında bir seçim gerçekleştirdi . Ancak özellik başlangıçta belirlendi: Başlatma sırasında girişin 8 bit veya sadece 7'ye izin verecek şekilde ayarlanıp ayarlanmadığı kontrol edildi. Bundan sonra değişmedi.
Bazı insanlar ikisini ( 8. bit ve kaçış öneki) eşitler, ikincisine meta mod olarak bahseder . Konuya ilişkin bakış açınıza bağlı olarak eightBitInput, xterm'in kaynak ayarı, uygulanabilir bir meta anahtar elde etmenin çözümünün bir parçasıdır.
Daha fazla okuma:
MENUanahtar bile X tarafından fark? Hangi pencere yöneticisini kullanıyorsunuz - bazıları anahtarlarınızı yeniden tanımlamanıza yardımcı olabilir.