2010-05-27 26 views
5

ben Emacs hep yapıyor iki operasyonları vardır:Basit Emacs tuş atamaları

  1. yeni tampon oluşturmak ve panoya yapıştırın. C-S-n
  2. Geçerli arabelleği kapatın. C-S-w
  3. Son görüntülenen arabelleğe geçin. C-TAB ilk iki işlemleri yaparken bir klavye akrobat gibi hissediyorum

. Bazı özel anahtar bağlamaları ve makroları denemeye değer olacağını düşünüyorum.

bu özelleştirmesiyle ilgili birkaç soru:

  1. nasıl # 1 için bir makro yapacak?
  2. Bu iyi anahtar bağlantıları mı? (Bu durumun biraz sübjektif olduğunu biliyorum, ama onlar ben kullanmamanız popüler bir şey tarafından kullanılabilir.)
  3. kimse Alt + Sekme gibi hareket edecek bir C-TAB makro bulundu Has Linux/Windows? Özellikle, son görüntülenen zaman damgasına göre (en sonda en üstte) bir tampon yığını olmasını istiyorum. Ctrl anahtarını bırakana kadar yığın boyunca devam etmek istiyorum. Ctrl anahtarının çıkması durumunda, geçerli arabelleğin yığınta güncelleştirilmiş bir konum almasını istiyorum. başlangıç ​​kbd-makro çağırarak

cevap

1
  1. başlangıç, sonu kbd-makro ile bitirmek. Daha sonra yeni makroyu çağrı-son-kbd-makrosu ile hemen test edebilirsiniz. Sonuçtan memnunsanız, save the macro'u isteyebilirsiniz.
  2. Emacs genellikle C-S tuşlamalarını kullanmaz ve kullanımı kolaydır, bu yüzden onları iyi arardım. Emacs'in terminal sürümünü kullanıyorsanız sorunlara neden olabilirler, ama sanırım senin için böyle değil.

gömmek-tampon temelde akım tampon yapar (kbd "< sekme C >") 'gömmek-tamponu (küresel-set-anahtarı)

:

  • Ben bu basit pasajını kullanmak Tampon listesinde sonuncusu, böylece arabellekleri öngörülebilir bir düzende dönüştürebileceksiniz.

    1
    1. Bunun için bir makro yapmam ama bu sayfada yayınlanan başka bir kişi gibi bir işlev yazmam. (cua-paste nil) yerine (yank)'u da kullanabilirsiniz. Hangisinin daha iyi olduğundan emin değilim.
    2. Onlardan çok hoşlanmıyorum. Sık kullandığım şeyler için, olabildiğince küçük parmak akrobasi yapmak istiyorum. Bu, modifier1 + modifier2 + tuşu yerine değiştirici + anahtarı anlamına gelir .. veya ev sahibine bağlı hissetmiyorsanız bir işlev tuşu kullanın .
    4

    bunun için dikey veya yatay bölünmüş pencereleri kullanarak denediniz no comment (via C-x 3 veya C-x 2)? Size daha az adım verecek gibi görünüyor - sözünü ettiğiniz gibi uygulasanız bile.

    Bölünmüş pencereleri kopyalama ve yapıştırma işlemlerini gerçekten hızlandırıyorum. Pencereler arasında geçiş yapmak için num padimde ok tuşlarını kullanıyorum (windmove-left/-right/-up/-down), bu nedenle basmak için yalnızca bir tuş ve istediğiniz pencereye gidersiniz.

    Sanırım bu sizin için sorduğunuzdan biraz farklı, ama bazı şeyleri hızlandırmak yardımcı olabilir gibi geliyor. , Sadece tuşunu basılı tutamazlar

    C-x tamponları sayesinde ve C-x sağa döngüsünü bıraktım, ama bunu birden çok kez vurmak zorunda.


    # 1 için bir makro oluşturmak için, sadece, bir makro başlangıç ​​genellikle, yeni bir tampon oluşturmak için ne tuşları vurmak ve makro durdurun. ,

    Cx Eğer yapıştırma işlemi tamamladığımızda Daha sonra bir dosyaya NEW kaydedebilirsiniz

    (Cx bNEWRETCx):

    Yani şöyle bir şey olurdu böylece yeni bir tampon oluşturmak için makroyu tekrar kullanabilirsiniz. Makroyu denemek için C-x e. Çalışırsa, init.el dosyanıza kaydedebilirsiniz. Bu yapılır:

    M-xname-last-kbd-macro

    Sonra bir istemi seçtiğiniz adını girmek için alırsınız. Bu sadece mevcut oturum için iyidir. Ardından, adlandırılmış makroyu başlatma dosyanızın içine kaydedersiniz. İlk önce, .emacs veya init.el dosyanızı açın. Eğer makro tanımı gitmek istediğiniz yere Sonra o zaman yazın noktasını yerleştirin:

    M-xinsert-kbd-macro

    Şimdi çalıştırabilirsiniz Makronuzu M-x<macroname> aracılığıyla adını kullanarak.(Lütfen .emacs veya init.el dosyada) çok tuşlarına makro bağlayabilir:

    (global-set-key (kbd "C-c a") '<macroname>) 
    

    Örneğin bu init.el bir ilişkili değildir NEW adlı yeni tampon açan bir makro oluşturduktan sonra nasıl görüneceğini olduğunu dosya ve Cc n bu makro bağlayıcı: Ayrıca, macun atmak yakın tampon ve anahtarlama işlemleri tampon olabilir

    ;; Creates a new unassociated buffer called NEW 
    (fset 'new-buffer "\C-xbNEW\C-m"); 
    ;; Shortcut for new-buffer 
    (global-set-key (kbd "C-c n") 'new-buffer) 
    

    . Arabelleği el ile bir dosyaya kaydetmelisiniz.

    Bazı kaynaklar yaklaşık macros EmacsWiki

    üzerinde
  • Muhtemelen yararlı