Vim'deki bütün bir çizgiyi benzer şekilde nasıl kopyalarım? Ctrl+D IntelliJ IDEA/Resharper’da veya Ctrl+Alt+↑/↓ Eclipse
yy veya Y satırı kopyalamak
veya
dd çizgiyi silmek (kesmek)
sonra
p kopyalanan veya silinen metni yapıştırmak için sonra geçerli satırı
veya
P kopyalanan veya silinen metni yapıştırmak için önce geçerli satırı
Normal mod: diğer cevaplara bakın.
Ör yol:
:t.
, satırı çoğaltacaktır,:t 7
, 7. satırdan sonra kopyalayacaktır,:,+t0
geçerli ve sonraki satırı dosyanın başında kopyalar (,+
, .,.+1
aralığı için eşanlamlıdır),:1,t$
, satırları baştan sona imleç konumuna kadar kopyalar (1,
, 1,.
aralığı için eşanlamlıdır).Kopyalama yerine hareket etmeniz gerekiyorsa, :m
yerine :t
kullanın.
:g
veya :v
ile birleştirirseniz, bu gerçekten güçlü olabilir:
:v/foo/m$
, “foo” deseniyle eşleşmeyen tüm satırları dosyanın sonuna taşır.:+,$g/^\s*class\s\+\i\+/t.
, imlecin hemen ardından class xxx
formunun sonraki tüm satırlarını kopyalar.Referans: :help range
, :help :t
, :help :g
, :help :m
ve :help :v
YP
veya Yp
veya yyp
.
Bundan daha kolay olamaz! Normal moddan:
yy
sonra yapıştırmak istediğiniz satıra gidin ve
p
yy
geçerli satırı silmeden açacak
dd
geçerli satırı silecek
p
put
, önceki yöntemlerden herhangi biri tarafından yakalanan bir satır olacak
Bunu yap:
İlk, yy Geçerli satırı kopyalamak için p yapıştırmak.
Başka bir yol istiyorsan :-)
"ayy
bu, satırı a
arabelleğinde saklar.
"ap
, imleçe tampon a
içeriğini koyacaktır.
Bu konuda birçok varyasyon var.
"a5yy
bu 5 satırı tamponda saklar. a
bkz. http://www.vim.org/htmldoc/help.html Daha fazla eğlence için
yyp - "yippee" ile hatırla!
Aralarında sayı olan birden çok satır:
y7yp
yyp - sonra yapıştır
yyP - önce yapıştır
Ekleme modundan son satırı tekrarlayan ve size tüm satırları içeren bir tamamlama penceresi getiren <C-x> <C-l> 'i de deneyebilirsiniz. Neredeyse <C-p> gibi çalışır
Başka bir seçenek ile gitmek olacaktır:
nmap <C-d> mzyyp`z
imleç pozisyonunu koruma avantajını sağlar.
Severim: Shift+v (hemen tüm çizgiyi seçmek ve isterseniz diğer çizgileri seçmenize izin vermek için), y, p
Vi'yi tanımayan biri için, yukarıdan gelen bazı cevaplar, onu "önce ... sonra/sonra yapıştır" gibi ifadelerle yanlış yönlendirebilir. mevcut çizgi".
Aslında "yapıştırmak ... önce/sonra kürsör".
yy veya Y satırı kopyalamak
veya
dd çizgiyi silmek için
sonra
p Kopyalanan veya silinen metni yapıştırmak için sonra kürsör
veya
P Kopyalanan veya silinen metni önce yapıştırmak için kürsör
Daha fazla anahtar ciltlemesi için bu siteyi ziyaret edebilirsiniz: vi Tam Anahtar Bağlama Listesi
1 gotcha: Satırı koymak için "p" yi kullandığınızda, onu koyar, sonra, imlecinizin üzerinde bulunduğu satırı koyar, yani satırın arkasına satır eklemek istiyorsanız, yapma yeni satırı koymadan önce imleci bir satır aşağı hareket ettirin.
Varsayılan yyp, ama ben bu yeniden bağlamayı bir yıldan beri kullanıyorum ve seviyorum:
" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv
Vi öğrenmeye başlayanlar için, tipik Windows GUI Editor imleç hareketi ve kısayol tuşlarına yan yana vi komutları listeleyerek vi'ye iyi bir giriş. Dahil olmak üzere tüm temel komutları listeler yy (kopya satırı) ve p (sonra yapıştır) veya P(önce yapıştır).
Partiye geç kaldığımı biliyorum, ama her neyse; Bu benim .vimrc içinde var:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
:copy
komutu sadece seçili satırı veya aralığı (her zaman tam satır) argümanı olarak verilen satır numarasının altına kopyalar.
Normal modda bunun yaptığı şey copy .
bu satırı bu satırın hemen altına kopyala .
Ve görsel modda, seçimin başından seçimin sonuna kadar seçimin sonuna kadar '<,'> copy '>
kopyalamaya dönüşür .
Bir satırı çoğaltmak ve hemen Sublime'daki gibi, geçerli olanın altına yapıştırmak istiyorsanız, Ctrl+Shift+D, o zaman bunu .vimrc
dosyanıza ekleyebilirsiniz.
imap <S-C-d> <Esc>Yp
Bu eşlemeyi kullanmayı seviyorum:
:nnoremap yp Yp
çünkü native YP
komutuyla birlikte kullanılmasını sağlar.