2009-10-09 13 views
20

GNU ekranında, varsayılan Ca yerine Alt-s (tweaking. Screenrc ile) öntanımlı komutu değiştirmek istiyorum, sebebi, emacs kullanmasıdır, dolayısıyla GNU ekranı Ca anahtarını bağlar ve "Ca" ye gönderir. emacs can sıkıcı olur (@Nils'in dediği gibi "Ca", "Ca a" yazmalıyım), aynı zamanda "Ca" bash kabuğunda, ve kaçışı C - 'ye değiştirebilirim ama bazıları zaten haritalanmış emacs ve diğer kombinasyonlar ALT-s kadar kolay değildir. Birisi zaten bir ALT anahtar eşlemesi yaptıysa, lütfen bana bildirin.gnu screen - varsayılan çıkış komut tuşu ALT-X olarak mı değiştiriliyor?

cevap

1

Sorunuzu yanıtlamıyor, ancak C-a a pencereye C-a gönderir, değil mi? man screen benim okuma itibaren

+1

Bu, emacs kullanıcıları için daha az uygundur. – rampion

+0

C-a bunu yapar. Ancak sorun, ekranda çalışan emacs C-a bağlama kullanamıyorum. Umarım aldın – Siva

+1

@rampion: Anladım, ama soru "C-a'yı emacs içinde kullanamıyorum", yanlış olduğunu inanıyorum. @Siva: Hm. Aslında, hayır. "C-a a" düğmesine basmak, C-a'yı emaclara gönderir. Bu inconvinient, evet - ama mümkün. – Nils

9

o screen bağlama komut için kullanabileceği tek bir meta karakter gibi görünüyor CTRL geçerli:

escape xy 

    Set the command character to x and the character generating a literal 
    command character (by triggering the "meta" command) to y (similar to 
    the -e option). Each argument is either a single character, a two-character 
    sequence of the form "^x" (meaning "C-x"), a backslash followed by an octal 
    number (specifying the ASCII code of the character), or a backslash followed 
    by a second character, such as "\^" or "\\". The default is "^Aa". 

Eğer emacs'taki kullanmayan bazı haritalama varsa, bile C-| gibi rahatsızlık verici, daha sonra ALT-X'u yeniden terminal terminali yöneticinizle kullanabilir ve bunun yerine ALT bağlayıcısını kullanabilirsiniz. Bu olsa biraz hackish olurdu.

+0

teşekkürler. Bu bir tür zor, belki de bunu yapmak için doğrudan bir yol olabilir – Siva

+3

Kontrol ile çıkış tuşunu açmak zorunda değilsiniz. Ben backtick (Kontrol olmadan) için ayarlar "escape' ~ "kullanın. Yine de Alt-şeyleri kullanabileceğini sanmıyorum. – silentbicycle

+0

@silentbicyle teşekkürler. evet biliyorum Kontrol ile önsözlemek zorunda değilim, "kaçış" ~ benim için çalışmıyor. Aslında, kabukta çalışan programlardan herhangi birinde, aslında CTL/ALT eşlemesini tercih etmemin nedeni budur. – Siva

6

Ekranda alt bindings için herhangi bir kısa sözlü sözdizimi yoktur, ancak doğrudan sekiz kodunu verebilirsiniz. Benim makinede Örneğin, Alt-x yani benim Screenrc içinde

alt alt-X için

Test ve eserlerini kaçış kodu değişti

kaçış 370x \ koyarak hex kodunu F8 veya 370 sekizlik vardır Linux'ta ekran 4.00.03 ile.

Bunun vb dil ve codeset, gibi şeylere bağlı olabilir düşünüyorum beri, kaçış değiştirmek gerekebilir: Ben nasıl bulduğunu Ya benim kaçış kod oldu

$ echo -n ^QM-x | perl -ne 'printf "%lo\n", ord($_)' 

^Q yazmanız oldu readline için tırnaklı-insert komutu (bunu yorumlamaya çalışmadan doğrudan yazdığınız şeyi ekler) ve Mx bir literal Alt-X idi.

+0

Bu numarayı denedim ve bu benim için işe yaramıyor. Bunu hata ayıklamanın bir yolu var mı? – Siva

+0

Merhaba Siva - En olası farkın, meta anahtarların terminal kodlamasından kaynaklandığını düşünüyorum. Xterm termist/terminfo ayarı ile xterm kullanıyorum; kterm veya gnome terminali veya farklı TERM ayarları gibi diğer terminaller de farklı bir kodlama kullanır. Ekon hilem makinenizde ne üretir? –

5

Ben bir Emacs ve ekran kullanıcısıyım. Her ne kadar nadiren Emacs'i bir terminalde kullanıyorum - ve bir ekran oturumunda olduğu gibi - kabuk için C-a'yı bırakmak istemedim (Emacs anahtar bağlamaları kullanır). Benim çözümüm, C-j'yi ekran için önek anahtarı olarak kullanmaktı; Emacs programlama modlarında, RET'e de bağlı olduğum (newline-and-indent) 'e bağlı olduğu için, bunu gerçekten kaçırmıyorum. Bu arada: Bunun bir cevaptan ziyade bir tavsiye olduğunu biliyorum, ancak bunun yine de yayınlayabilecek kadar değerli olacağını hissettim.

0

Kullanıcı burada emacs kullanıcısı.

Bulduğum en iyi çözüm, ~ /.Screenrc aşağıdaki dosyasını:

# C-a :source .screenrc 

escape ^gg 

Canlı burada güncelleme: Ayrıca https://gist.github.com/1058111

bakınız: kayıtlarını ve kullanılarak komut sınırlamaları kaçış: http://ubuntuforums.org/showthread.php?t=498675

+0

btw, bu benim için gerçekten iyi çalışıyor çünkü^G emacs "iptal" dizisidir. Yani eğer kas belleğiniz "spazmları" ise, emaclarda hiçbir şeyi karıştırmazsınız. – audiodude

+3

Bunun hayranı değilim. C-g Emacs'ten vazgeçmek isteyeceğim son anahtarlardan biri. – Psyllo

+0

Backquote'u kullanmak için "^ ^" ile "değiştirin. C- \ 'varsayılan olarak Emacs'deki hiçbir şeye bağlı değildir. – Psyllo

6

Alt + X varsayılan komutlar için önek ve ücretsiz Ca yapmak için Bkz

# reset escape key to the default 
escape ^Aa 

# auxiliary register 
register S ^A 

# Alt + x produces ^A and acts as an escape key 
bindkey "^[x" process S 

## Alt + space produces ^A and acts as an escape key 
# bindkey "^[ " process S 

: Sadece .screenrc bu koymak

escape ^|| 
bindkey "^[x" command 

Yan etki olarak C- | Komut öneki de olacak. Ücretsiz olmak için bu tuşlara ihtiyacınız varsa, "escape^||" düzeltin. buna göre.

+0

'^ [x'' Alt-x' ye nasıl aktarılır, burada '^' 'Ctrl' anlamına gelir (emin değilim)? '' '' '' 'Anlamına mı geliyor? Teşekkürler. – Chad

İlgili konular