İyi bir küçük Vim avukatı olarak, hjkl'yi imleç tuşlarınız olarak kullanmayı öğrenmenizi söylemek zorundayım. Sorunu keşfederek, gerçek ok tuşları yerine hjkl kullanarak test ettiğimi fark edene kadar, gizemli bir şekilde kendini düzelttiğini düşündüm.
Her neyse, şimdi gerçek bir cevap için.
Tüm ekranlarınızı kapatmak ve yeniden başlatmak yerine, ekranın terminaller arasında hareket etme özelliğinden yararlanabilirsiniz. Hit CTRL+A
CTRL+D
senin terminalden ayırmak ekrana, ardından koşmak screen -D -R
yerine yapıştırmaya. Bu, ok tuşlarının tekrar çalışmasını sağlamalıdır.
Ekranda değil, sadece Vim'de iseniz , aynı etki için CTRL+Z
yazabilir ve yazabilirsiniz fg
.
Vim'deki imleç tuşu sorununu da çözebilirsiniz, ancak sıfırlama diğer terminal seçeneklerini değiştirmiş olabilir, bu nedenle diğer rastgele ekran / klavye sorunlarını görmeniz için yukarıda açıklandığı gibi yapmak daha güvenlidir . Yine de remappings istiyorsanız, işte bunlar:
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
Pis ayrıntılar:
Hem Vim hem de ekran, terminali yönetmek için ncurses kütüphanesini kullanır. VT100 uyumlu bir terminalin kontrolünü ele geçirdiğinde ncurses'ın yaptığı şeylerden biri, ok tuşlarını yaydığı kodları değiştiren "uygulama moduna" geçirmektir. Yukarı ok anahtarı, örneğin, değişir Esc
[
A
için Esc
O
A
. Bunu yapmak için yaydığı VT100 kontrol kodudur Esc
[
?
1
h
. Command + R tarafından gönderilen terminal sıfırlama komutu, imleç tuşlarını varsayılana sıfırlar.
Ekranın sökülmesi ve yeniden takılması ncurses'ın terminalin kontrolünü tekrar ele geçirmesine neden olur, bu da sevdiği tüm ayarları yeniden uygular, bu nedenle işleri normale döndürmenin en taşınabilir ve güvenilir yolu budur.
VT100 kontrol kodları: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm