Chciałbym zdefiniować makro vim, które przerywa wprowadzanie danych przez użytkownika w określonych momentach, czy jest to możliwe?Czy potrafisz robić interaktywne makra lub nagrania w vimie?
EDIT: Okazuje się, że ment nagrań (q) nie makra
Możliwe jest użycie polecenia wejścia w nagraniu, ale to więcej kłopotów niż to warte.
raz pierwszy odwzorowane wejścia insert ucieczkę do kluczowego
:map <F2> a<C-R>=input('input: ')<CR>
Potem zrobiłem ten zapis w rejestrze q
name:
i wklejać go w nowej karcie
iname: ^[
I po ostatecznej ucieczce nacisnąłem <C-V><F2>
tworząc linię:
iname ^[^[OQ
To, że przyciągnąłem do bufora q, użyłem makra, pozwalając mi użyć funkcji wprowadzania. Działa, ale strasznie.
vim jest po prostu niesamowity! czy jest JAKIEKOLWIEK pytanie typu "czy mogę zrobić xxx w vimie" z brakiem odpowiedzi? :) – moritz
input() nie wydaje się być dostępny w makrach (nawet przez 'Ctrl-R = input ('prompt:')'), ale jeśli wszystko jest w porządku z normalnymi mapowaniami lub funkcjami, to ładnie wykona to zadanie . – mogelbrod
@VictorHallberg: Hmm. Po prostu (ponownie) wypróbowany. Działa dla mnie (Vim 7.3.547). Na wszelki wypadek, co masz na myśli przez _macro_? Nie rozumiesz, co ': help macro'? – fork0