Metindeki çok uzun satırlarla (500+ karakter) nasıl başa çıkarım?


19

Bazı metin biçimleri için satır sonları önemlidir.

Örneğin, Vim'i MediaWiki belgelerini yazmak için sık sık kullanıyorum, burada hiçbir yere satır sonu koyamazsınız (Markdown'un aksine). Bu yüzden çok fazla karakter içeren satırlar yazmaya zorlandım.

Bu, uzun (200+ karakter) veya hatta çok uzun (1000+ karakter) çizgilere yol açabilir . Bunu Vim'de kullanmak çok garip buluyorum. Bir örnek, 1000 karakter çizgisinin ortasında bir şey düzenlemek istersem, imlecimi 500 kez hareket ettirmem gerekiyor.

Bu wveya ile biraz daha hızlı yapılabilir /, ancak yine de gariptir.

Bununla başa çıkmanın daha iyi yolları var mı? Daha iyi hareket tuşları? Bir çeşit "sahte sarma" (metin sanki davranır tw=80, ama \ndosyada yok gibi) veya başka bir şey mi?


1
Ayrıca , ekranın sonunda boş @ satırlardan kaçınmak için display = son satırını da ayarlamak isteyebilirsiniz .
Random832

Yanıtlar:


21

gGörünür ekran alanının sınırlarına gitmek için bir dizi komut kullanabilirsiniz . Örneğin g$, ekranın sağ kenarına gider (bu satırın sonu olmayabilir). gjimleci ekranınızda göründüğü gibi bir satır aşağı taşır (bu mutlaka bir mantıksal satır aşağı değildir).

Belki ok tuşlarını yeniden hatırlatabilirsiniz:

nnoremap <Up> gk
nnoremap <Down> gj

Veya bazı insanlar da doğrudan rebind kve j:

nnoremap k gk
nnoremap j gj

Ekleme modu için şunları kullanabilirsiniz:

inoremap <C-k> <C-o>gk
inoremap <C-j> <C-o>gj

Veya:

inoremap <Up> <C-o>gk
inoremap <Down> <C-o>gj

Ayrıca, kullanırsanız :set wrap, Vim çizgileri sarar, böylece tüm çizgiyi görebilirsiniz. Ayrıca Vim'in kaydırma yaptığını belirtmek için set showsbreak=+a tuşunu da kullanabilirsiniz +.


Belirli sütun konumlarına atlamak için |komutu kullanabilirsiniz . Örneğin, 200|sütun 200 konumuna gider.


1
... ve g5jher zamanki gibi 5 aşağı atlamak.
yo '

1
@yo 'Sanırım demek istiyorsun5gj
Martin Tournoij

1
@Carpetsmoker Garip; komutların çoğunda, komutun kendisi son olduğu sürece önekleri ve sayıları hangi sırayla verdiğiniz önemli değildir. Burada değil: - /
yo '

@yo ', iyi, içinde g5j, g5ilk görülüyor ki, 5uygulamadan önce sadece bir sonrakine geçiyor j. Bu yüzden ne 5gjyaparsa yapamaz .
Shahbaz

3

Vim, sadece set wrapetkinleştirmek için yumuşak sarma desteğine sahiptir ve görünür ekranın ötesine geçen uzun çizgileri sarar. Bu tür sarılmış çizgiler üzerinde sırasıyla yukarı / aşağı hareket etmek için gj& gktuşunu kullanabilirsiniz .


2

Çok uzun hatlarla uğraşırken, en büyük ağrı noktası farklı hat uzunluklarıyla ilgilidir. Yani, çizgilerin uçlarına yakın yukarı veya aşağı hareket etmek pencereyi çok sola veya sağa kaydırır.

Bu virtualedit=all, imleci satır bittikten çok sonra boşluğa taşımanıza izin veren ayar ile önlenebilir .


1

Diğerlerinin söylediği gibi, ghareket etmek için + bir şey kullanabilirsiniz . Ancak, son derece uzun hatlarınız olduğunda, gjaşağı doğru hareket etmek için birkaç kez basmak ergonomik değildir. Bunu .vimrcçok daha kolay hale getirmek için aşağıdakiler var :

vmap <D-j> gj
vmap <D-k> gk
vmap <D-4> g$
vmap <D-6> g^
vmap <D-0> g^
nmap <D-j> gj
nmap <D-k> gk
nmap <D-4> g$
nmap <D-6> g^
nmap <D-0> g^

Bir Mac'te, komut satırını basılı tutarak ekran satırlarında j, k, $, 0 ve ^ kullanmamı sağlar. Diğer sistemlerde, yerine Dsize deneyebilirsiniz Mveya AAlt için ya CKontrolü.

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.