Bir kaydı / birden çok kaydı nasıl tamamen silebilirim?


16

Oldukça sık kullandığınız :registerstüm kayıtlar içeriğini göstermek için komutu (I rolü tam olarak ne, nerede koymak unutmak "*, "., "%vb vardır).

Özellikle "opsiyonda seçeneği ayarladığım viminfove dolayısıyla kayıtlarım vim seanslarım arasında (genellikle kısa vadede istiyorum) kalıcı olarak kaldığı için, zamanla :registersliste uzar ve uzar, dolayısıyla daha hantal ve doldurulur. gerçekten eski şeylerle.

Şimdiye kadar, bunu düzeltmek için bulduğum tek yol, elle ~/.viminfoyapmam gereken vim -u NONEve dolayısıyla biraz hantal olan bazı 'eski' kayıt içeriğini düzenlemek .

Tüm kayıtları silmenin veya belirli bir kaydı silmenin daha temiz bir yolu var mı, böylece artık :registerslistede görünmüyor mu?

Yanıtlar:


12

Kısacası, kayıtları kaybolmak için tamamen silmenin daha temiz bir yolu yoktur :reg.

Etrafta ~/.viminfouğraşmak yerine , onları gerçekten ve gerçekten bitirdiğimde, onları boş olarak ayarlayarak "yumuşak temizleme" eğilimindeyim. aÖrneğin, kaydı temizlemek için yazmayı boş bir dizeye qaqayarlamak için yazıyorum a. Eşdeğer, :let @a=''aynısını yapar.

Daha sonra, çıktılarına bakmak :reghala yararlıdır, çünkü boş kayıtlar ve içerilen kayıtlar arasında fark etmek çok kolaydır. Öte yandan, adlandırılmış tüm kayıtlarımın en üst satırda (makrolar) veya ana satırda (yararlı macun işleri) olduğunu gördüm ve o zaman bile sadece yaklaşık 15 adlandırılmış kayıt kullandım.

Bir yoktu iplik vim posta listesinde de kayıtlarını silmek için kolay bir yolu yoktur olduğu sonucuna vardı bir kaç yıl önce.


5

(Demek, kayıt adını kaldırmak isteyenler için agelen) :registerslistesinde, orada olduğunu şimdi bunu yapmak için bir yol. Komutu çalıştırın :call setreg('a', []).

Ben bu sorudan @LucHermitte gelen StackOverflow üzerinde öğrendim. Cevabı, çoklu kayıtların nasıl temizleneceğini detaylandırıyor. Bu görevin çok kolay olmasını istiyorsanız, kendinizle yaratıcı olun .vimrc:)


3

Bunu şuna ekle .vimrc:

command! WipeReg for i in range(34,122) | silent! call setreg(nr2char(i), []) | endfor

ve her kaydı temizle :WipeReg

Vim'i her başlattığınızda bunun olmasını istiyorsanız şunları da ekleyin:

autocmd VimEnter * WipeReg

1
Komut için teşekkürler ".,"%, "Gibi salt okunur kayıtlarla çalışmıyor olsa da: #
Ashok
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.