Boş bir sayfadan başlayarak içeren bir belgeyi nasıl alabilirim
1
2
3
4
5
6
7
8
9
10
…
100
Açık olmak gerekirse, bu numaraların kenarda gösterilmesini istemiyorum; Belgenin kendisine eklenmesini istiyorum.
Boş bir sayfadan başlayarak içeren bir belgeyi nasıl alabilirim
1
2
3
4
5
6
7
8
9
10
…
100
Açık olmak gerekirse, bu numaraların kenarda gösterilmesini istemiyorum; Belgenin kendisine eklenmesini istiyorum.
Yanıtlar:
Kullanın :put
ve range()
:
:put =range(1,100)
(Üstte boş satır önlemek için romainl şeref ), kullanım :0put
:
:0put =range(1,100)
Undo'nun saf vim'ine ek olarak :put =range(1,100)
(sizi gerçekten boş bir sıra bırakır), işletim sisteminize bağlı olarak komutlarından birini kullanabilirsiniz. Örneğin, bir Unix / Linux kutusunda:
%!seq 1 100
Yukarıdakiler seq
girişini görmezden gelen ve sadece 1'den 100'e kadar olan sayıları çıkaran tüm (boş) tamponu pipo ederek çalışır. Vim daha sonra tüm tamponu seq
çıktısıyla değiştirir.
İstediğinizi elde etmek için komut satırı yöntemlerini zaten bildiğiniz zaman bu faydalıdır.
Kayıt için ve kesinlikle en kısa yol değil (bkz. @ Undo'nun mükemmel çözümü), ancak tuş vuruşlarının sırası da bunu yapacaktır:
i1EscqaYpCtrl+aq98@a
Bunu senin için yıkmama izin ver:
i1<Esc>
- 1 rakamını girin, ardından komut moduna geri dönünqa
- "a" siciline bir makro kaydetmeye başlayınY
- geçerli satırı kopyalap
- geçerli satırı yapıştırın (imleç yapıştırılan satıra da taşınır)<Ctrl>a
- satırdaki bir sonraki sayıyı artırmak, onu 2 yapmakq
- Makroyu kaydetmeyi durdur ("a" kaydı yapıldı)98@a
- "a" registerındaki makroyu 98 kez tekrar etİşte daha yeni bir Vim'e ihtiyaç duyan farklı bir yaklaşım. (7.4.800 gibi bir şey)
Bu boş bir arabellek varsayar ve a. İlk önce tampon belleğine 100 1 girin "a100P,.
Sonra görsel olarak 2'den 100'e kadar olan satırları seçin :2EnterVG.
Şimdi gCtrl+ tuşuna basın A.
Yardımı oku :h v_g_CTRL-A
:h g_CTRL-A
Bu sorunun gerçekten eski olduğunu biliyorum, ancak bunu yapmanın başka bir yolu var. Bunu dene:
99o<esc>:%s/^/\=line('.')<cr>
99o<esc>
sadece 100 boş satır açacak. Sonra bir substitute komutu çalıştırırız:
:% " On every line
s/ " substitute
^/ " the start of the line. (This will always match no matter what)
\= " Evaluate:
line('.') " The current line.
<C-r>=range(1,100)
.