Zapisywanie makr Vima

Czy ktoś wie jak poprawnie zapisać / ponownie użyć makr nagranych wewnątrz edytora vim?

Author: jnadro52, 2010-01-08

4 answers

Użyj q, po którym następuje litera, aby nagrać makro. To po prostu przechodzi do jednego z rejestrów kopiuj / wklej, więc możesz wkleić to jak zwykle za pomocą "xp lub "xP poleceń w trybie normalnym.

Aby go zapisać, otwierasz .vimrc i wklej zawartość, a następnie rejestr będzie wokół następnego uruchomienia Vima.
Format jest podobny do:

let @q = 'macro contents'

Uważaj na cytaty. Trzeba by im odpowiednio uciec.

Więc aby zapisać makro można do:

  • z trybu normalnego: qq
  • wprowadź dowolne polecenia
  • z trybu normalnego: q
  • Otwórz .vimrc
  • "qp aby wstawić makro do linii let @q = '...'
 174
Author: Dan Olson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-13 12:02:01

Zapisz swoje makra w swoim~/.vimrc, aby zdefiniować makro uruchomione przez CTRL+O W przykładzie, dodaj następującą linię do~/.vimrc:

map <C-O> MACROTEXT

Podczas nagrywania makra przez wpisanie qa można pobrać tekst makra wpisując "ap

 18
Author: Raoul Supercopter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-07 23:39:49

Aby uzyskać bardziej solidne rozwiązanie, możesz zamówić Marvim.

Pozwala zapisać makro w określonej przestrzeni nazw (lub użyć typu pliku jako domyślnej przestrzeni nazw), a następnie można wyszukać zapisane makra i załadować je do rejestru gotowego do użycia.

Jeśli ponownie używasz wielu makr, jest to bardzo pomocne.

 17
Author: random,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-09 17:23:21

Polecenie :mkexrc (lub :mkvimrc) może być użyte do zapisania wszystkich bieżących ustawień :map i :set do pliku. Zobacz :help mkexrc Po szczegóły.

 9
Author: Matthew Slattery,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-07 23:43:41