Emacs C-. terminalde çalışmıyor


11

Genellikle emacs -nwterminal sürümünü başlatan (pencereli GUI sürümünün aksine) GNU Emacs kullanıyorum .

Okul kağıtları yazıyorum, LaTeXbu yüzden flyspell-modeemacs içinde yazım denetimi için kullanıyorum . Bu GUI sürümünde iyi çalışıyor, ancak bir terminalde, tuş vuruşu C-.( Ctrl- .) ile ilgili sorunlarla karşılaşıyorum . Bir tty, bu hiçbir şey yapmaz ve terminatorya da gnome-terminal, bu sadece bir "."

Pencereli sürümde ne yaptığını yapmak için ne yapabilirim (yanlış yazılmış bir kelime için yazım önerilerini göster)?

EDIT: Bu durumda, ben Emacs 23.3.1 ile Ubuntu 12.04 kullanıyorum (ki 12.04 repo varsayılan olduğuna inanıyorum).


1
Burada aynı. Denediniz mi Esc- x flyspell-mode? Bu benim için çalışıyor.
Masroor

İyi evet. Hep başlamak flyspell-modeile M-x, ama ESC xbir fark yaratmak için görünmüyor.
cg505

1
Burada aynı. Ancak, her iki sürüm için de çalışan bir varsayılan tuş bağlama buldum ESC-TAB.
McNisse

Evet, ESC TABya da M-TABikisi de benim için çalışıyor. @McNisse bahşiş için teşekkürler.
cg505

Yanıtlar:


4

Bu sorunun önemli kısmı yorumlarda zaten cevaplanmış gibi görünüyor, ancak merak ediyorsanız temel nedeni ele almak için bence ctrl-. terminal emülatörlerinin bazı sınırlamaları nedeniyle terminalde çalışmaz. Standart bir terminalde, eksi 64'e bastığınız tuşun ASCII kodunu göndermek için ctrl tanımlanır (bu yüzden ctrl-J (74) yeni satır (10) ve ctrl-I (73) sekme (9) gönderir, ). Dönemin ASCII kodu 46 olduğundan, 64 çıkarıldığında -18 verilir, bu geçersizdir, çünkü negatiftir ve negatif ASCII kodları yoktur ve bu nedenle emac'ların alması ve anlaması için hiçbir şey yoktur.

Emac'leri pencereli modda çalıştırdığınızda, terminal öykünücü mekanizması atlanır ve bunun yerine daha belirsiz tuş vuruşlarını işleyebilen X11'in daha sağlam klavye kullanımı kullanılır (her tuş vuruşunu bir ASCII karakterine indirmek yerine, program orijinal anahtarı alır artı tüm uygulanabilir değiştiriciler, ayrı ayrı). Bu nedenle, tty tabanlı emacların ctrl- işlemesini yapmak imkansızdır. terminal öykünücünüzde (ve muhtemelen emac'larda) özel değişiklikler yapmadığınız sürece.


1
Bu cevap gerçekten ilginç. Daha derine girdim ve DEC VT100'ün benzer ama farklı şekilde, kesinlikle konuştuğunu öğrendim. Kontrol tuşuna ve diğer tuşlara birlikte basıldığında yapılanlar şunlardır: 1) klavye tarama kodu ile ASCII tablosuna bak 2) ASCII 3 ile geçerli kontrol kodları tablosuna bak 3) geçerliyse, ASCII 4'ün bit5 ve bit6'sını maskeleyin ) göndermek. Böylece ctrl-J, ctrl-j ve ctrl- * LF gönderebilir, ancak geçerlilik kontrolü kombinasyonları sınırlandırdı. Bkz. DEC VT100 teknik kılavuz bölümü 4-43 (PDF sayfa 93).
Kenji Noguchi

Ben 'C-.'xterm emacs ile iyi yakalayabilir ama urxvt veya st ile yakalayamaz. Neden böyle olabileceğine dair bir fikrin var mı?
stewSquared

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.