vim: Bir kopyasını yalnızca * y yapabilir miyim?


11

Vim sevmeyi öğreniyorum, ama henüz tam olarak benimsediğim bir şey kopyalama ve yapıştırma durumudur. Bir muggle metin editöründe Ctrl- Cbir metin parçası kopyalayıp daha sonra metni düzenleyip / silerek başka bir yere yapıştırırım. Ancak vim'de bunu yapamam çünkü metni kopyaladıktan sonra y, metni değiştirmek çoğunlukla orijinal metnimi içeren dve xbu metni yok eder.

Yapmak için herhangi bir yolu var mı dve xmetni kopyalama? Yoksa başka türlü bu vim özelliklerini nasıl kullanmalıyım?

Yanıtlar:


16

9 önceki yanks denilen kayıtlar kaydedilir 1yoluyla 9. Bir sonraki-son yank'ı "1p, bir öncekini "2pvb. İle hatırlayabilirsiniz . Komut :regyapıştırma için kullanılabilir kayıtları gösterir.

Bir yank'ın daha uzun süre dayanmasını istiyorsanız, bir mektup kaydı kullanın .

Daha belirsiz yank ile ilgili komutlar için, :help "kılavuzdaki okumaya başlayın .


2
Ayrıca 0 kaydı, en son atılan metni içerir (silinmenin aksine). Böylece orijinal soruya atıfta bulunarak, sorabilir, ydüzenlemeye devam edebilir dve xve metnin içine yapıştırabilirsiniz"0p
Nefrubyr

@Nefrubyr, yukarıdaki yorumunuz aslında en basit cevaptır, ancak mevcut üç cevabın hiçbirinde belirtilmemiştir. Belki eklemelisiniz? (
Wildcard

9

Bahsettiğiniz komutlarda "adsız" kayıt kullanılır. Sadece çok kısa süreli kullanım içindir. "Bunu buradan alacağım ve oraya koyacağım" tür şeyler.

Gittiğinizde ve başka bir şey yaparken birkaç saniyeden fazla bir şey tutmak istediğinizde, adlandırılmış kayıtlar kullanmanız gerekir.

Örneğin " a y y, imlecin üzerinde bulunduğu satırı akayıt defterine çeker. Kaydı içeren başka bir komut yazmazsanız, hiçbir şey yanlışlıkla onu engelleyemez a. Dakikalar, saatler, hatta günler sonra, imlecin üzerinde bulunduğu satırın altındaki " a pkayıttan satırın bu kopyalanmış kopyasını bırakmak için yazabilirsiniz a.

(Bunun gerçekten iyi çalışması set viminfo='50,\"1000için ~/.vimrc, Vim oturumlarında kayıt içeriği gibi şeyleri hatırlamasını söylemek için dosyanızda olduğu gibi bir satırınızın olması gerekir . Daha sonra yank ve put arasında tatile gidebilirsiniz!)

Adında 26 kayıt vardır (az). Bunları yukarıda gösterildiği gibi büyük harf olarak verirseniz, değiştirmek yerine geçerli kayıt içeriğine eklersiniz. Yani, gerçekten karmaşık bir şey inşa edebilirsiniz, örneğin, hher seferinde bir parça kaydedebilir , sonra hepsini bir kerede ploplayabilirsiniz " h p.

Kayıt adının isteğe bağlı olduğuna dikkat edin. Bu, adlandırılmış yazmaçları nerede kullanabileceğinizi bildiğiniz ve kullandığınız birçok komut olabileceğini gösterir. :help registersOlasılıklar hakkında fikir edinmek için Vim'de söyleyin .

Ayrıca, bir Vi kupası alın .


1

Yank kaydınızı değiştirmeden d ile metin silmeniz gerekiyorsa (örneğin, başka bir metni silmeden önce yapıştırmaya hazır olmadığınız metni zaten çekmişsinizdir), kara delik kaydını kullanabilirsiniz _ .

Bunu yaparsanız "_dd, örneğin geçerli satır hemen silinir ve unutulacak.

Aslında, bu kaydı çok sık kullanmıyorum. Genel amaçlı bir kayda (herhangi bir mektup kaydı) kaydetmekten daha az tuş vuruşu gerektirmez ve genel amaçlı bir kayda kaydederseniz, en azından sildiğiniz satırlar kaydın üzerine yazılana kadar kullanılabilir. ihtiyaç doğar.

Silmekte başka kayıt kullanmak için unutmak eğiliminde ise, bir sarıcı makro tanımlamak ddböyle mesela: :noremap dd "add.


0

(Şu anki) kabul edilen cevaba yapılan yorumlarda belirtildiği gibi, bunu yapmanın standart yolu sıfır ( "0) kaydını kullanmaktır . Sıfır her zaman son yank içerir Kayıt ve tarafından yazılır almazsınız dve xbu nedenle, "0pher zaman ne olursa olsun bu arada düzenlendi nelerin çekti ne koyar.

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.