Bash vs Gnu ekranı: Ctrl-A'yı Ctrl-Shift-A ile değiştirin


44

Ben GNU Ekranı için yeni bir kullanıcıyım. Bash'i çok uzun zamandır kullanıyorum ve GNU Screen'e bir denemek istiyorum.

Bildiğiniz gibi, GNU Ekranı komut karakteri olarak 'Ca' (Control-A) kullanır. Sorun şu ki, Bash'deki (ve GNU Readline) Hat Düzenleme özelliğine müdahale ediyor çünkü Bash'deki Control-A satırın başına geçecek. "

Komut Karakterini "^ Q" veya "` `" (Backtick) gibi başka bir tuş sırasına ayarlayabileceğimi biliyorum , ancak halen kullanılmayan başka bir tuş sırasını bulmakta sorun yaşıyorum (^ Q terminal tarafından kullanılıyor , kabuk komut dosyaları yazarken backtick kullanılır). Komut Karakterinin yalnızca bir veya iki karakter uzunluğunda olabileceği anlaşılıyor. GNU Screen kontrol karakterini "Control-Shift-A" gibi bir şey olarak ayarlayabilir miyim?

(Henüz bir köprüyü birden fazla kullanamıyorum, bu yüzden Bash belgelerine bağlanamıyorum)


5
screenDiğer sistemlerde kullanırken kafa karıştırmama uğruna , varsayılan tuş bağlamalarına bağlı kalmak veya en azından önce bunları öğrenmek için en iyisi olabilirsiniz. ^A avarsayılan ^Aanahtar combo'yu varsayılan olarak gönderir . Bu combo çok kullanırsanız biraz sakıncalıdır; Bunun HOMEyerine genellikle anahtarı kullanırım. Ama o zaman bu da her zaman işe yaramaz.
sezgi

Ctrl-uzay için burada aşk yok. Harika çalışıyor.
Joker

Yanıtlar:


18

Sorun Control- Shift- AEn terminal emülasyon programları tarafından gönderilen birinden bunun için farklı bir kod göndermek kalmamasıdır Control- Ayani yolu yok olacağını ekran farkı söylemek.

Tty'deki stty -ixon“yazılım akış kontrolünü” devre dışı bırakmak için Cq kullanabilirsiniz . Bunu genellikle komut satırında arama yapmak için C'ler kullanarak yapabilirim.

C- ^ 'yı düşünebilirsiniz, çünkü genellikle bağlanmamış görünüyor. Bu Control- Shift- 6ABD klavye düzenlerinde, ancak diğer düzenlerde yazmak zor olabilir.

Çoğu kişi, SIGQUIT göndermek için hiçbir zaman t - Cty \ kontrol karakterini kullanmaz. Kullanmak için, tty işlevini devre dışı stty quit undefbırakın ve ön anahtarınız olarak bağlayın. Bu biraz risklidir, çünkü quit tuşunun stty ile devre dışı bırakılmadığı bir tty'de C- \ 'ye basarsanız, ekranı etkinleştirmek yerine ön plan işlemini öldürebilirsiniz .

Bir süre önce tmux'a geçtim . Onun varsayılan Cb olduğunu kapsamında oluşturduğu çünkü ekrana ve müdahale etmedi ekran 'ın varsayılan . Cb'nin benim için oldukça iyi çalıştığını öğrendim (genellikle kabuk komut satırında tek karakter hareketi için ok tuşlarını kullanırım - sözcükleri taşımak için Mb ve Mf kullanıyorum).

Bu arada, tmux'un yazarı birincil oturumlarında Ca'yı kullanır ve daima Ca'yı iki kez yazar ( tmux oturumunda olsun veya olmasın). Bu alışkanlığı benimsemek istekliyseniz, ikinci Ca'nın çoğu Emacs benzeri düzenleme bağlamında bir no-op olması gerektiğinden iyi bir uzlaşma gibi görünüyor. İkinci Ca'nın işlem yapamayacağı ekranlar dışında sık sık programlar / bağlamlar kullanırsanız işe yaramaz .

Varsayılan olarak, Ca Ca bağlı diğer içinde (en son etkin ekrana geçiş) komutuyla ekrana . Ca Ca'nın gerçek bir Ca göndermesini ve Ca o pencerelerini değiştirmesini sağlamak için aşağıdakileri içine yerleştirin .screenrc:

escape ^A^A
bind o other

2
Bu kulağa hoş geliyor, sonra GNU Ekranında iki kez Ca yazmanın daha önce görüntülenen pencereye geçeceğini fark ettim. Ben bunu nasıl gerçekten emin değilim rağmen Belki, başka bir şey "Ca Ca" haritalayabilirsiniz Bkz (benim belirttiğim 'xy kaçış' gerekir ya bunun için meta 'Görünüşe) gnu.org/software/screen/ manual / screen.html # Diğer Pencere
Stefan Lasiewski

1
@Stefan Lasiewski: Hata! Ca Ca'nın varsayılan olarak Ca göndermediğini unuttum. Ca Ca'yı Ca ve Cao'yu önceki pencereye göndermesini sağlayan bir yapılandırma biti için cevabın sonundaki eke bakınız.
Chris Johnsen

Harika çalışıyor! Ca Ca, alttaki kabuğa gerçek bir Ca gönderecek ve Ca o ',' diğer 'penceresine geçecektir. 'Ca'yı Bash'e göndermek için, iki kere' Ca'ya basın. Bu, ekran dışında işlem yapmamalı ve sorunlara neden olmamalıdır.
Stefan Lasiewski

41

Geçici çözüm için gerek yok.
Ekranı bash modunda kullanırken satırın başına gitmek için

Control- A(bırak ve sonra)A


Genelde, bir bash kısayoluyla çakışan bir ekran kontrolü karakteri varsa, bash kısayolunun ilk karakteriyle Controldeğiştirilir Control-A

Aynı şekilde diğer satır düzenleme kısayolları için.


teşekkürler, şimdi bu yapmadım, bu kadar kolay olmasına rağmen. Gerçekten hiçbir şeyi yeniden yapılandırmanıza gerek yok. cevabını en çok seviyorum.
31'te

+1 ty - bu, bugüne kadarki en iyi seçenek. İşin garibi, bunu denerken kazara Ca Ca'ya çarptım ve bir başka harika açılan buldum.
kfmfe04

3

Ekran için C- \ kullanıyorum ve yeterince tavsiye edemiyorum. Kaza ile ilgili olarak herhangi bir önemli tanımlamaya varabilirsiniz ancak genel olarak C- \. Bu yüzden hoşuma gidiyor.


3

Bunu kullanıyorum .screenrc

escape ^bb

Örnek: Yazmanızı ayırmak için ctrl-b d


0

Ekran / tmux ile ctrl-_ (ctrl + 7 ve genellikle ctrl + / ile de üretilebilir) kullanıyorum.


0

Çoğu zaman ctrl-z kullanıyorum, ancak bazıları için ctrl-x kullanıyorum. Ben 'stop' kesmesini bu kadar kullanmıyorum, ancak gerektiğinde ^ zz yazabilirim. Bu aynı zamanda, varsayılan ctrl-a kullanan uzak sunucularda ikincil ekran oturumları başlatmama izin veriyor. Üçüncü bir oturum başlattığımda (üçüncü bir sunucuda), o zaman ctrl-x kullanabilirim. Ctrl-x, birçok ortamda her zamanki gibi olmayan kilit ekranı işlevidir (ekran genellikle bir terminal emülatöründe çalıştığından).

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.