Zapisz właśnie utworzone makro w vimrc

15

Czasami tworzę makra. Czasami tworzę to samo makro wiele razy.

Czasami mam dość tworzenia tego samego makra od nowa. Czy mogę przechowywać makra? Czy mogę załadować zestaw makr? Czy mogę zrobić makro i zapisać je na zawsze?

sensorario
źródło

Odpowiedzi:

17

Tak, możesz! Można to zrobić na kilka sposobów. Domyślnie wszystkie rejestry zostaną zapisane w twoim pliku viminfo i załadowane po uruchomieniu vim. To jest najłatwiejszy sposób. Nie jest to jednak niezawodne. Każdy rejestr zostanie utracony, jeśli przypadkowo go nagrywasz / szarpniesz.

Lepszym sposobem zapisania określonego makra jest umieszczenie go w swoim .vimrc. Załóżmy na przykład, że chcesz foozapisać się w makrze a. Można to osiągnąć za pomocą:

let @a='foo'

w twoim vimrc. Jeśli masz już utworzone makra, możesz wpisać

ilet @a='<C-r><C-r>a'<esc>

aby wkleić bieżącą zawartość makra, jeśli nie masz ochoty pisać wszystkiego od nowa.


Podziękowania dla Andrew Keetona za zwrócenie uwagi <C-r><C-r>

James
źródło
Prawdopodobnie będziesz chciał użyć <C-r><C-r>(dwóch zamiast jednego), aby wstawić tekst dosłownie
Andrew Keeton
1
@AndrewKeeton Ooh, świetna poprawa. Dzięki za poinformowanie mnie o tym
James
<c-r><c-r>nie będzie działać, jeśli makro zawiera specjalną sekwencję klawiszy takich jak <c-right>, "apnie mają tego problemu.
dedowsdi