'O' yeni bir satır açmadan önce gecikme?


82

Bazen, Oyeni bir satır oluşturmak ve ekleme moduna geçmek için (büyük harf 'o') kullandığımda, herhangi bir şey olmadan önce kısa bir gecikme olduğunu fark ettim .

Bu yaygın mı? Değiştirmenin bir yolu var mı?

İkisi de :map Ove :imap O"Eşleme bulunamadı" ifadesini göster, bu yüzden bunun garip bir eşleme olduğunu düşünmüyorum.


Superuser.com hakkında anlaşın: Belki de bu, biçimlendirmeyi yeniden hesaplayan sözdiziminin vurgulanmasından kaynaklanmaktadır?
monojohnny

4
Lütfen "süper kullanıcıya aittir" gibi etiketleri kullanmayın. Etiketler, fikrinizi ifade etmeniz için bir araç olarak tasarlanmamıştır - bkz. Meta.stackexchange.com/questions/36819/… . SU'ya ait olduğunu düşünüyorsanız, oraya taşımak için oy verin.

Düzeltildim. Bu etiketleri artık kullanmayacağım. Hâlâ bu çok iyi sorunun SU'ya ait bir soru olduğunu düşünüyorum ve orada bulmayı umuyorum.
jjclarkson

Evet, üzgünüm - haklısın. Bu SU'da olmalı. Onu (ve yanıtları?)
Taşımak

Yanıtlar:


92

Bunun nedeni, 'esckeys'seçeneğin etkinleştirilmiş olmasıdır ( nocompatibleyeni keşfettiğim gibi). Tuşuna bastığınızda ^[O, bir ok / işlev tuşu kullanıp kullanmadığınızı veya sırayla bu iki tuşu kastettiğinizi anladığında küçük bir gecikme olur.

Çözümlerden biri, bu seçeneği devre dışı bırakmak ve ekleme modunda ok tuşlarından vazgeçmektir.
Bir diğeri ise 'timeoutlen'1000, belki 100'den daha düşük bir değere ayarlamaktır (ancak yavaş bağlantılarda dikkatli olun).
Bir diğeri, ekleme modundan çıkmak ^Cyerine kullanmaktır ^[.


Harika, teşekkürler! Ayrıca, bunu okuyan diğer herkes için: kapatmadan önce yardım sayfasını kontrol edin 'esckeys'- bu, örneğin ekleme modunda ok tuşlarını kullanmanıza izin veren şeydir. Ayar 'timeoutlen'benim için iyi çalıştı.
David Wolever

3
Ayrıca ttimeoutlensadece anahtar kodlar için zaman aşımı da ayarlayabilir. Vim en Bkz:help ttimeoutlen
K107

1
Yine de gecikmem var :set noesckeysya da :set timeout timeoutlen=1000 ttimeoutlen=100... Herhangi bir fikriniz var mı? (Cygwin, VIM kaynaktan derlendi)
Yichuan Wang

1
Benim için iyi çalıştı: set timeout timeoutlen = 3000 ttimeoutlen = 100 (vim yardımında önerildiği gibi). Zaman aşımını yalnızca küçük bir değere ayarlamak kötü bir fikirdi - bazı eşlemeler çalışmayı durdurdu.
jkff

Ben anlamadım Ne zaman 'esckeys'etkindir, neden dizisini yazamaz <esc>[Aimleci yukarı taşımak için ekleme modunda?
Qian

3

Escape tuşundan hemen sonra "O" tuşuna basarsanız olur, değil mi? Ben her zaman terminal sürücüsünün bir kaçış dizisini tamamlayıp tamamlamayacağınızı görmek için biraz beklediğini varsaydım.


0

Takas dosyasını diske yazmanız gerektiğinden şüpheleniyorum. Hızlı disk erişimi olan bir bilgisayarda vim çalıştırdığınızdan emin olun; paylaşılan bir dosya sistemi kullanmanız gerekiyorsa, takas dosyasını kullanarak taşımayı deneyebilirsiniz.

:set directory=/path/to/local/dir

İkincisi - işte ev dizinlerimiz NFS'ye bağlı ve bu tür gecikmeleri çok görüyorum.
Cascabel

... elbette, eğer sadece O içinse, o için değil, jleedev'in dediği gibi kesinlikle kaçış anahtarı dizisi olayı!
Cascabel

1
Pekala, bu yanıt doğrudan OP'ye değinmese de, hala geçerli olduğunu hissediyorum. Olumsuz oy kullanan kişiyle aynı fikirde olamaz.
Jeffrey Jose

OP'nin probleminin cevabı değil, iyi bir teori ve öğretici bir açıklamaydı. Teşekkürler!
süpervacuo
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.