İmleci vim içinde hareket ettirmeden belirli bir çizgiyi yanklamak nasıl?


39

Örneğin

alt metin

İmleci 4. Satıra taşımak zorunda kalmadan Satır 4'ü sadece Satır 12'ye nasıl iliştirip yapıştırabilirim ?

alt metin


Soru temelinize "beni asıl!" Diye cevapladım. 4. satırda, 2. ekranınızda, satır 5'de görünüyor.
Louis Salin

Cevabınız için @Louis teşekkürler. Ekran görüntüsünü güncelledim.
Lazer

Yanıtlar:


51

İmleç zaten satır 12’de ise, basit

: 4y
P

benim için yapar.


1
Güzel! İçin bir eşdeğeri var mı x? Denediğimde :4xanladım E140: Use ! to write partial buffer. Teşekkürler!
dotancohen

Bunun şaşırtıcı olduğunu söylemeliyim: D
nXqd

@dotancohen:4d
n.st

Bunu göreceli satır numarasıyla yapmanın iyi bir yolu var mı?
TrungDQ

Göreceli sayılarla sadece + ve - tuşlarını kullanın. Yani -4, imlecin üzerinde dört satır ve +4 ise onun altında dört satırdır.
rickythefox,

10

Bunun hakkında: İmleç 11. satırda, "vi" modundasınız.

:4co.<return>

Görünüşe göre bir desen ile de yapabilirsiniz:

:/^Yank/co.<return>

Yank ve koymak yerine satırı hareket ettirmek için "co" (kopyala) yerine "mo" (taşıma) kullanabilirsiniz.


1
Hatta daha kısa ( t : Bir kopya komutu olarak bir sol üzerinde ed dan):4t.
tarleb


8

Deneyin:

:4co11

Satıra 0yapıştırmak için bir argüman kullanabilirsiniz 1. Bu aynı zamanda aralıklarla çalışacaktır:

:m,n co k

çizgiler kopyalar msayesinde nhattına k+1. Ek olarak, tamponda nerede olduğunuzun önemi yoktur. moveKomut, mbenzer şekilde çalışır.


2

Bu yapmalı:

:4,12y
p
k

1
Hayır, bu numara 4 ila 12 arasındaki rakamları gösterir.
Lazer

Satır 4'ü kopyalayıp yapıştırmak istedim, satır 12'ye.
Lazer

Düzenlenen. istediğiniz bu muydu?
Umang

2

Diğerleri, bunu yapmanın en doğrudan yönteminden çoktan bahsetti, bu :4yda faydalı olabilir: Bununla ilgili iki not eklemek istiyorum:

Birincisi, eğer yazarsanız :help range, Ex stil komutlarına uygulamak için aralıkları kullanma hakkında her şeyi öğreneceksiniz. Birçok durumda ÇOK faydalıdır ve satır numaralarını kullanmaktan çok daha fazla yönlüdür. Örneğin, dokümanın başlamasından sonra "ilk" ile başlayan ilk satırı sıralamak istiyorsanız (ilk satırda olsa bile) kullanın :0/^yank/y. Aralıkların en güçlü kısmı, bunları birleştirme yeteneğidir; örneğin, :./^Chapter/+50?Pete?d"Bölüm kelimesiyle başlamak için bir sonraki satırı bul (geçerli satırdan ileriye arama yap), ardından 50 satır ileri atla ve Pete kelimesini geriye doğru ara; ve bulduğunuz ilk satırı silin. " İmleci hareket ettirmemesi dışında, sadece söylediklerini yapar.

(Bu tür aralık spesifikasyonunu, imlecin altındaki fonksiyon isminin aranmasını ve daha sonra "Açıklama" yazan ve belirli bir sicile ...

Diğer ipucu, zıplamayı bilmen gerektiği. Tip :help jump-motionstamamen bu konuda bilgi edinmek için, ancak burada ilgilidir yolu satırına 4 atlayabilir yani o ile DÖNÜŞ onu yank ve 4Gyy''kesin başlangıç pozisyonuna geri atlamak yerine kesme işareti arasında (veya kullanım ters tırnakların yerine sadece aynı HATTI daha sen başladın.)


2

En kısa:

:1t. akımın altındaki ilk satırı kopyalar.

Aralıklarla: :1,4t.akımın altındaki 1 ila 4 (dahil) satırını kopyalar.

Göreceli satır numaraları ile de mümkündür:

:-1t. akımın altındaki önceki satırı kopyalar.

Örnekte :4t-1istediği sınırının altında dördüncü satırı aynıdır olacaktır.

Not: komutun :teş anlamlısıdır :co[py].

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.