Bu soru burada cevaplanmıştır: OSX'te ekran çalıştırırken, command + r tüm ekranlarda vim'de yukarı ok tuşlarını karıştırır
Kopyalanan cevap:
İyi bir küçük Vim avukatı olarak, hjkl'yi imleç tuşlarınız olarak kullanmayı öğrenmenizi söylemek zorundayım. Sorunu keşfederken, 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. Ekranı terminalinizden ayırmak için CTRL + A CTRL + D tuşlarına basın, ardından yeniden takmak için -D -R ekranını çalıştırın. Bu, ok tuşlarının tekrar çalışmasını sağlamalıdır.
Ekranda değil, sadece Vim'de iseniz, CTRL + Z tuşlarına basabilir ve aynı efekt için fg yazabilirsiniz.
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. Örneğin yukarı ok tuşu Esc [A'dan Esc OA'ya değişir. Bunu yapmak için yaydığı VT100 kontrol kodu Esc [? 1 sa. 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