Vim'de satır ortasına git


14

Biliyorum 0 satırın başına gider ve $ sonuna kadar gider, ama ortada bir şey var mı?

Yanıtlar:


11
:call cursor(0, len(getline('.'))/2)

4
Eğer eşlenmiş olsaydı bu oldukça yararlı olurdu, örneğin:: nnoremap gm: çağrı imleci (0, len (getline ('.')) / 2) <cr>
Heptite

3
virtcol ('$') / 2 yeterlidir.
Luc Hermitte

@Luc Hermitte: Güzel, ama sert sekmeler söz konusu olduğunda tam olarak en iyi davranış değil.
ephemient

Bu yüzden col yerine virtcol kullanıyorum. :). Ama gerçekten kullanmalıyız | ve imleç değil (). BTW, len () daha iyi sonuç vermeyecektir. Dahası, len çok baytlık karakterlerle diğer sıkıntıları da verecektir.
Luc Hermitte

8

Yazmak gmbunu yapardı, ancak ekran satırlarına göre hareket ediyor (bkz. :help gm). Metin satırlarıyla çalışmasını sağlamak için şu komutu yeniden eşleştirebilirsiniz:

map gm :call cursor(0, virtcol('$')/2)<CR>

gm imleci ekranın ortasına hareket ettiriyor gibi görünüyor, ancak metin satırım ekranın uzunluğundan daha kısaysa, beni ortasına götürmez. Açıklayamadığım için üzgünüm.
teggy

@teggy: Anlıyorum. Metin satırının ortasına gitmek için gm'yi yeniden eşleştirmek için çözümümü değiştirdim. Gördüğünüz gibi, ephemient ve Luc Hermitte'nin çözümlerini birleştiriyor.
JooMing

Geçici belirtildiği gibi, imleç () her biri bir karakter olarak saydığı için hala sert tarbs ile ilgili bir sorunu var. Ayrıca, çok baytlık karakterlerle de çalışmaz.
Luc Hermitte

7

İşte sabit levhalara ve çok baytlık karakterlere de saygı duyacak bir çözüm.

:exe 'normal '.(virtcol('$')/2).'|'

1

İşte bulduğum en iyi çözüm. Tam olarak çizginin ortasına atlamak çok pratik değil. Ortaya geçtikten sonra imleci hala birkaç konum hareket ettirmeniz gerekecektir. Belirli bir karaktere atlayabilirseniz ne olur? Birçok kişi sadece karakteri arar, daha sonra karaktere ulaşana kadar "ileri" tuşuna basar. Bu yavaş. Easy-motion eklentisi daha iyi bir çözüm sunar.

Benim favorim o <leader><leader>szaman atlamak istediğiniz karakter. Easy Motion, seçim yapabilmeniz için tüm eşleşmeleri farklı harflerle değiştirir. Eğiticiye bakın. Hayat değiştiren bir eklenti ...

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.