Vim birleştirme birden fazla satır (iki blok)
Vim çizgiler iki blok birleştirmek istiyorum, yani hatları n..m
satır a..b
ekledim. Eğer yalancı bir açıklama isterseniz: [a[i] b[i] for i in min(len(a), len(b))]
Örnek:
abc
def
...
123
45
...
haline gelmelidir
abc123
def45
Güzel bir şekilde el ile kopyala&yapıştır yapmadan bunu yapmak için var mı?
CEVAP
Kesinlikle tek bir kopyala/yapıştır (blok modu seçimi kullanarak) ile tüm bu yapabilirsiniz, ama istediğin bu değil sanırım.
Eğer bu sadece yapmak istiyorsanız Ex komutları
:5,8del | let l=split(@") | 1,4s/$/\=remove(l,0)/
dönüştürecek
work it
make it
do it
makes us
harder
better
faster
stronger
~
içine
work it harder
make it better
do it faster
makes us stronger
~
GÜNCELLEME:Bu çok upvotes ile bir cevap daha kapsamlı bir açıklamayı hak ediyor.
Vim, çok Eski komutlar zincirine çubuk karakteri (|
) kullanabilirsiniz, yukarıdaki eşdeğerdir
:5,8del
:let l=split(@")
:1,4s/$/\=remove(l,0)/
Birçok Eski komutları kabul aralığı hatları gibi bir önek değişkeni - yukarıdaki durumda 5,8
önce del
1,4
önce s///
belirten satır komutları ile çalışır.
del
verilen satırları siler. Kayıt bir argüman alabilir, ancak belirli bir zaman normal modda silme gibi isimsiz kaydetmek için hatları, @"
, döker. let l=split(@")
sonra bir liste haline silinmiş satırları böler, varsayılan sınırlayıcı kullanarak: boşluk. Düzgün silinmiş satırlarda boşluk vardı o giriş üzerinde çalışmak gibi
more than
hour
our
never
ever
after
work is
over
~
farklı bir ayırıcı belirtmek için, "iş" iki liste öğeleri bölünmüş olmaktan: 25**. engellemek lazım
Son olarak, değiştirme s/$/\=remove(l,0)/
her satırın ($
) ifadenin değeri ile sonu remove(l,0)
değiştirin. remove(l,0)
listeyi 30* *ve ilk unsuru, silme dönen değiştirir. Bu bize sırayla onları okuduk silinmiş satırları değiştirmenizi sağlar. remove(l,-1)
kullanarak tersten silinmiş satırları koyabiliriz yerine.
Yakalamak birden fazla satır istisnala...
Nasıl Varlık Çerçevesi (dosyalarda gru...
Nasıl böyle büyük mükafat içinde birde...
&Lt giriş birden fazla satır;ınput typ...
Swift - içinde birden fazla satır dize...