Önek anahtarları olarak Cx veya Cc kullanma hakkında sözleşme


16

Kullanma kuralları nelerdir C-x, C-cya M-olduğu gibi önek anahtarlarını?

Örneğin: C-xtamponları kaydetmek veya ziyaret etmek için vs. C-cMetin düzenleme için vb. Var mı ?

Arka fon

Belki bu aptalca bir sorudur. İspanyolca klavye kullanıyorum ve bazen İngilizce (QWERTY) klavye için yaygın olan tuş bağlantılarını yeniden tanımlıyorum. Örneğin: Kabuk komutu vanilya Emacs ile sınırlıdır M-!. Ben bunu bağlamak M-¡çünkü yerine M-!ise M-shift-1kolayca basın edemez, hangi. Bu tür değişiklikler yaptığımda geçersiz kıldığım sözleşmeler olup olmadığını merak ediyorum


gibi M-x"genişletilmiş komut yürütmek için, Bu Emacs etkileşimli başarabileceğiniz bir çok sofistike şeyler için ağ geçididir; herhangi bir Elisp işlevini ismiyle çalıştırmanızı sağlar." yok C-cve C-xböyle bir açıklaması olmasa?
Pinokyo

Yanıtlar:


21

Kendi kullanımınız için bağlayıcı anahtarlardan bahsediyorsanız, kural budur: İstediğiniz anahtarları bağlayabilirsiniz.

Önceden bağlanmış olabilecek bir anahtarı bağlamadığınızdan emin olmak için, C-cardından bir harf kullanın . Bu tür tüm anahtarlar kullanıcılara ayrılmıştır (bir sonrakine bakın).


Başkaları tarafından kullanılmak üzere yazdığınız koddaki (örn. Bir kütüphane) bağlayıcı anahtarlar hakkında konuşuyorsanız, kurallar (kurallar) burada açıklanmaktadır: düğüm Elisp kılavuzunun Anahtar Bağlama Kuralları .

Sorduğunuz şeyle ilgili ana kurallar aşağıdakilerle ilgilidir C-c:

  • C-c LETTERLisp programlarında anahtar olarak tanımlamayın . Oluşan diziler C-cve bir harf (büyük veya küçük harf) kullanıcılar için ayrılmıştır; bunlar sadece bu yüzden onları engellemeyin, kullanıcılar için ayrılmış dizileri.

  • C-cArdından bir kontrol karakteri veya rakamdan oluşan diziler ana modlar için ayrılmıştır.

  • Aşağıdakilerden oluşan dizileri C-cardından {, }, <, >, : ya ;da büyük modları ayrılmıştır.

  • C-cArdından başka herhangi bir ASCII noktalama işareti veya simge karakterinden oluşan diziler küçük modlar için ayrılır. Bunları büyük bir modda kullanmak kesinlikle yasak değildir, ancak bunu yaparsanız, büyük mod bağlaması zaman zaman küçük modlar tarafından gölgelenebilir.

Bununla ilgili herhangi bir sözleşme olmadığını not edeceksiniz C-x. Bir yersiz kongre ya da sadece iyi bir tavsiye / uygulama ancak bu biridir: Eğer varsa yerine bazı mevcut standart Emacs bağlayıcı (yani tek herhangi bir 3. parti kütüphaneleri yüklemeden, dağıtık olarak Emacs aldığım o) o kudreti şaşırtmak veya kodunuzun bazı kullanıcılarını rahatsız eder.


Emacs içindeki bu dokümana şu şekilde ulaşabilirsiniz:

  1. C-h i, Doc tarayıcısını açın.
  2. m el TAB RET, m enu el isp ( TABtamamlamak için) veya Elispfarenizle bağlantıyı tıklayın .
  3. key bi TAB, ardından n TAB RETtamamlayın Key Binding Conventions.

Veya idizin girişlerini tamamlamak için Elisp kılavuzunda kullanabilirsiniz :

  1. C-h i m el TAB RET.
  2. i key bi TABkey bindingsize ulaşan ve size iki olasılık gösteren: key bindingve key binding, conventions for. Tür , TABardından, ikinci tamamlamak için RETbunu kabul etmek.

C-cKullanıcı komutlarına bağlanma ve mektup yazma kurallarını izlemek daha iyidir . Bu şekilde, gelecekte kurulmuş olan veya gelecekte bir gün kurulacak olan büyük bir moddaki diğer bazı bağlamaları geçersiz kılmadığından (neredeyse) emin olabilirsiniz.
Tobias

1
@Tobias: Ne dediğinden emin değilim. Ne daha iyi? Bir üçüncü taraf kütüphanesinde bağlayıcı + LETTER dahil olmak üzere, tüm anahtar bağlayıcı kurallara uyulmalıdır C-c.
Drew

Cevabınızın ilk cümlelerinde özel kullanım için katı kurallar olmadığını doğru bir şekilde söylediniz. Bununla birlikte, ilk yorumumda vermiş olduğum nedenlerle kullanıcı tuş bağlama kurallarına uyulması tavsiye edilir. Belki, ilk bölümdeki her şeyin kurallara uygun olduğuna dair bir not ekleyebilirsiniz . Söylemek istediğim tek şey bu, Drew. Saygılarımla,
Tobias

3
@Tobias: Söylediğini düşündüğümü ekledim; Teşekkürler. Ancak bir kullanıcının kilit bağlamalar konusunda izlemesi gereken hiçbir kural yoktur . "Kullanıcı kısayollar için sözleşmeler" Eğer söz kullanıcılar için konvansiyonlar değildir. Bunlar Lisp'i kodlamak için başkaları tarafından kullanılacak sözleşmelerdir. (Bunu bildiğini biliyorum. Sadece net olmak istiyorum, bunu okuyan herkes için.)
Drew

Kontrol karakteri nedir?
Didier A.

2

@ Drew'un cevabı çok daha incelikli ve detaylı.

Bu tamamen geçerli bir soru! Önek kullanıcı tanımlı tuş bağları için kullanılırken emacs'ın kendisinin saklandığı kuralı vardır .C-xC-c

Buna , özellikle "Ayrılmış anahtarlar" bölümüne bir göz atın . Bu bilgilerin emacs kılavuzunda da belirtildiğinden eminim, ancak şu anda bulamıyorum. Kurallar emacs lisp kılavuzunun bu bölümünde açıklanmaktadır .


1
C-cardından başka değiştiriciler içermeyen bir harf (küçük veya büyük harf) kullanıcılar için ayrılmıştır. İle başlayan diğer birçok tuş dizisi C-cbüyük modlar için ayrılmıştır - özellikle ikinci tuş vuruşunun da kontrol tuşu tarafından değiştirildiği modlar.
Tobias

Haklısın tabi ki. @ Çekti bu soruyu daha iyi yanıtladı.
Panagiotis Koutsourakis

gibi M-x"genişletilmiş komut yürütmek için, Bu Emacs etkileşimli başarabileceğiniz bir çok sofistike şeyler için ağ geçididir; herhangi bir Elisp işlevini ismiyle çalıştırmanızı sağlar." yok C-cve C-xböyle bir açıklaması olmasa?
Pinokyo
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.