Mutt'taki "açık istemi" yeniden bağlama


9

Varsayılan olarak, komut istemine bilgi girerken , kılavuzda açıklandığı gibi muttistemi silebilirsiniz :Ctrlg

^ G yok

Ben bu işlevi bağlamaya çalışıyorum Escape. Ne yazık ki, el kitabında veya kaynaktaabort mevcut işlevlerde listelenmemiştir .

Bu benim kullanarak kullanmayı denedim .muttrc:

bağlama editörü <esc> iptal

ama bir hata veriyor:

/Home/jason/.mutt/muttrc, satır 143'te hata: iptal: haritada böyle bir işlev yok

( generic) Gibi farklı bir harita kullanmayı denedim ve clearboşuna gibi diğer hayali fonksiyonları denedim .

Bilgi Escapeistemi satırını temizlemek için nasıl bağlanırım ?


1
Kaçış bağlama (kaçış tuşuna basıldığında gönderilen) de oklar, del, F1 gibi tüm işlev tuşları tarafından gönderilen kaçış dizileri için önek olduğu gibi iyi bir fikir değildir
Stéphane Chazelas

Bu düşünmediğim iyi bir nokta. Bunu test etmek için, bir gösterici göndermek için Escape'in iki kez gönderilmesi gerekiyor, ^[bu yüzden bir showtopper olmayabilir (Yine de ona güvenen herhangi bir bağlantı kullanmıyorum).
jasonwryan

Esc, Esciki ESC karakteri gönderir. Ayrıca bir Esckez basıp yaklaşık bir saniye bekleyebilirsiniz (bir kaçış dizisinin geri kalanını bekleyen varsayılan zaman aşımı).
Stéphane Chazelas

Evet. Önce nasıl bağlamak için çalışmak zorunda :)
jasonwryan

Yanıtlar:


5

Anahtar bağlantılarla mümkün değildir. Ctrl-Gmutt'ta makro veya tuş bağlama işleminden daha düşük bir seviyede sabit kodlanmıştır (mutt mutt_getch()içindeki bir hata döndüren tüm kullanıcı girişlerinin çekirdeğinde mutt kaynak koduna bakın ^G).

macro editor \e '^G'

işe yaramaz.

Yapabileceğiniz şey, terminalinizi ^Gbasıldığında gönderilecek şekilde yapılandırmaktırEscape

Xterm ile:

xterm -xrm 'XTerm.VT100.translations: #override <KeyPress> Escape: string(0x7)'

Kullanıyorsanız screen, şunları da yapabilirsiniz

screen -X bindkey $'\e' stuff $'\a'

Mutt'u çağırmadan ve daha sonra geri yüklemeden önce (ne yazık ki, ekranda ekran penceresi tuş bağlamalarına sahip olabileceğiniz görünmüyor). Ayrıca, e-posta mesajları düzenleyiciniz vi ise bir sorun olacaktır.


Oy verildi: çünkü soruyu cevaplıyor (yani, mümkün değil). Lütfen daha düşük bir seviyede "sabit kodlanmış ..." konusunu açıklayabilir misiniz? Geçici çözüm dahiyane olsa da, Escape'i diğer birçok terminal programında kullandığım için gerçekten pratik değil - bu yüzden buraya bağlama arzusu.
jasonwryan

Cevabımı daha fazla ayrıntıyla düzenledim. Genellikle yukarıdaki yorumlarda belirtilen nedenden dolayı bildiğim uygulamalarda olmadığı için Esc'in diğer programlara bağlı olduğunuza şaşırdım.
Stéphane Chazelas

2

Kaçmayı ControlGda bağlamak benim için gerçekten kötü bir fikir gibi görünüyor . Buraya mutt bir çözüm aramaya geldim, ama öyle görünmüyor ki, bununla karşılaşmak için olan herkese ne yaptığımdan bir cevap vereceğim. Optimal değil, ancak diğer programları etkilemez:

macro editor \e "<enter><shell-escape>xdotool key control+g<enter>"

veya

macro editor \e "<enter><shell-escape>xsendkey Control+g<enter>"

Sahte kontrol + g için xdotool veya xsendkey gibi bir şey kullanmak işe yarar ve başka her yerde kaçmayı bozmaz. Satır düzenleyiciden çıkması için görsel bir gecikme var, ancak dizin bağlamaları hemen çalışacak ve bir dizin bağlaması kullandığınız anda görsel gecikme gidecek. İlk giriş gereklidir, böylece mutt sadece "...." yazmaz ve bunu bir başlık veya arama terimi veya benzeri bir şey haline getirmez.


0

Bu çözüm o kadar kötü ki yazar ^ 'nin kurtulmak için Mutt'un kaynak kodunu düzenlemeyi tercih etti

Uyarı: Bu çözüm OSX, Emacs ve Ctrl+ kullanan diğer uygulamalarla uyumsuz görünüyorG

Mutt'taki ilk günümden sonra, neredeyse yanlışlıkla Vim'de ^ G kullanıyordum ... Sonra burada, i3 pencere yöneticisi ve xfce terminalinde işe yarayan bir şey denedim .

Bu satırı şuraya ekledi ~/.i3/config:

bindsym --release Escape exec --no-startup-id xvkbd -xsendevent -text "\[Escape]\[Control]\[g]"

Kullanım zorunda kaldı "\[Escape]\[Control]\[g]"çünkü "\[Control]\[g]"o Vim durmasına yaptı.

Eğer i3 kullanmıyorsanız, ben kullanabilirsiniz düşünüyorum xbindkeys çalıştırmak için xvkbd -xsendevent -text "\[Escape]\[Control]\[g]"zaman Escbasılır.

Güzel bir çözüm değil ... EscAnahtarınızı bazı programlarda kullanılamaz hale getirebilir, ancak en azından burada iyi görünüyor.

DÜZENLE:

Şimdi görüyorum ki Ctrl+ Gkısmı Vim'in dosyadaki konumunu gösteriyor. Şimdilik çok dramatik bir şey yok.

Bu bağlantının daha iyi bir çözümü var gibi görünüyor, ancak urxvt için : http://www.unixli.com/q/answers-urxvt-map-esc-key-to-key-sequence-83211.html

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.