Vim makrolarını kaydetme


166

Herkes bir vim editörü içine kaydedilen makroları düzgün bir şekilde kaydetmek / yeniden kullanmak biliyor mu?

Yanıtlar:


217

qMakro kaydetmek için kullanın ve ardından bir harf yazın. Bu sadece kopyala / yapıştır kayıtlarından birine gider, böylece normal modda "xpveya "xPkomutlarıyla normal şekilde yapıştırabilirsiniz .

Kaydetmek için .vimrc dosyasını açın ve içeriği yapıştırın, daha sonra vim'yi bir sonraki başlatışınızda kayıt yaklaşık olacaktır.
Biçim şuna benzer:

let @q = 'macro contents'

Yine de alıntılara dikkat edin. Düzgün kaçmaları gerekecekti.

Böylece bir makroyu kaydetmek için şunları yapabilirsiniz:

  • Normal moddan: qq
  • komutları girin
  • Normal moddan: q
  • açık .vimrc
  • "qpmakroyu let @q = '...'satırınıza eklemek için

3
Ayrıca, özel karakterler eklemeniz gerekiyorsa (benim durumumda kaçış gibi) CTRL-V <ESC>, doğru karakteri eklemek için ekleme modunda kullanın. Bir literal <ESC>çalışmıyor
adam_0

5
"Ancak, yukarıdaki yöntemi kullanarak: <CR> veya <NL> karakteri (satır başı veya satırsonu) ile biten makrolar için izin verildiği gibi çalışmayacağını unutmayın." vim.wikia.com/wiki/Macros#Saving_a_macro
Paolo

2
Tırnak işaretleri (makro içeriğinin etrafında) gerekli mi?
user2472071

15
Ctrl+r Ctrl+r registerNamegirdiler içeriği yorumlamadan kaydeder - daha iyi "qp. Yine de in-vim yöntemi için +1.
LAFK, Reinstate Monica'yı

@ adam_0 Bu konuyu biraz açıklayabilir misiniz? Belki bir örnek ekleyin? Özel karakterlerin, yani esc'nin nasıl yerleştirileceğini anlayamıyorum. Boşuna kaçmak için her kombinasyonu denedim. "Anahtar kodu" makroyu bozar ve dizinin tamamı yazdırılır.
GH05T

21

Daha sağlam bir çözüm için Marvim'i kontrol edebilirsiniz .

Bir makroyu belirli bir ad alanına kaydetmenize (veya dosya türünü varsayılan ad alanı olarak kullanmanıza) izin verir ve daha sonra kaydedilen makrolarınızı arayabilir ve kullanıma hazır bir kayıt defterine yükleyebilirsiniz.

Çok fazla makro kullanırsanız, bu oldukça yararlıdır.


6
Bunu ikinci olarak yapmak ve tek bir dosyayı / plugin dizininize kopyalamak için ne kadar kolay olduğunu söylemek, daha sonra bir makro kaydetmek için F3'ü ve çalıştırmak için F2'yi kullanın.
Raine Revere

18

CTRL + O tarafından başlatılan bir makro tanımlamak için makrolarınızı ~ / .vimrc dosyanızın içine yazın, ~ / .vimrc dosyanıza aşağıdaki satırı ekleyin:

map <C-O> MACROTEXT

yazarak bir makro kaydettiğinizde, yazarak qamakro metninizi alabilirsiniz"ap


"Ap veya dengi kullanmak işe yaramadı, ancak aynı bilgiye şu şekilde ulaşabilirsiniz: reg
DShook

"ap akayıtta kaydedilen bir makro anlamına gelir
Tyler Fowle

11

:mkexrc(Veya :mkvimrc) komut akımı tüm kurtarmak için kullanılabilir :mapve :setbir dosyaya ayarları. Ayrıntılar :help mkexrciçin bakınız.


4

Bunu böyle yapabilirsin ~/.vimrc

:let @a="iHello World!\<CR>bye\<Esc>"

NOT: gibi özel tuşları kullanabilmek için çift tırnak işareti kullanmanız gerekir \<this silly example>.

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.