OSX'te ekran çalıştırırken, command + r tüm ekranlarda vim'de yukarı ok tuşlarını karıştırır


15

Bunu nasıl çözersiniz? çünkü tarayıcınızı yeniden yüklemek için r komutuna her zaman basarsınız ve genellikle terminalde olursunuz.

Ok tuşlarını nasıl yeniden etkinleştireceğimi bilmediğim için, şu anda tüm ekranlarımı öldürüyorum ve ekranı yeniden başlatıyorum, bu bir acı.

Yanıtlar:


28

İ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+Dsenin terminalden ayırmak ekrana, ardından koşmak screen -D -Ryerine 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+Zyazabilir 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 [ Aiç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


Bir diğer konu, terminal tipi kafa karıştırıcı vim olabilir, bakınız iç tmux çalıştırırken vim berbat tuşları
kynan

bu çözüm için teşekkür ederim! Bu bir web geliştirici olarak bok beni rahatsız ediyor. tarayıcıda ekran yenilemek için cmd-r çok vurmak ve bazen yanlışlıkla vim cmd-r isabet gerekir. ok tuşları neden şimdiye kadar silinmişti. ve sizin için hjkl purists, hjkl kullanmamanın temel nedeni, ekleme modunda imleç hareketi için mevcut olmamalarıdır. benim için bu problemi çözersen tekrar düşüneceğim.
rev


1

İTerm kullanıyorsanız, vim oturumunuzu command+dve tuşlarına basarak geri alabilirsiniz.command+w

Neden?

command+d terminal bölmesini böler, geldiğiniz büyülü bir şekilde geri yükler.

command+w şimdi açtığınız bölünmüş bölmeyi kapatacak.


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.