2012-06-02 17 views
37

natknąłem się na liczbie tej składni zwyczajów, które nie rozumiem:Co <c-r> = oznacza w vim

Pierwszy znajduje się w: pomocy mapowania:

:map <F2> a<C-R>=strftime("%c")<CR><Esc> 

Sekwencja ta naprawdę robi insert wartość strftime w buforze, chociaż nie rozumiem w jaki sposób. Zmiana na coś innego powoduje to.

Kolejnym jest na wiki page który opisuje jak zrobić menu omnicompletion okienko działa dobrze:

inoremap <silent> <Esc> <C-r>=pumvisible() ? "\<C-y>" : "\<Esc>"<CR> 

samo tutaj.

Czy ktoś może wyjaśnić, jak działa ten "<C-r>=" rzeczy? ...

Odpowiedz

47

<C-r>= lub Ctrl + R= jest używany do wprowadzania w wyniku ekspresji w kursora.

używam go dużo podczas edycji CSS, aby wstawić wartości:

width: <C-r>=147-33<CR>px; 
width: 114px; 

EDIT

<C-r> bez =, pozwala wstawić treść jakiegokolwiek rejestru na chwilę kursora pozostając w trybie wstaw tryb: <C-r>+, na przykład wstawia zawartość mojego schowka systemowego. patrz :help i_ctrl_r.

= to "rejestr ekspresji". Zobacz :help "=.

ENDEDIT

+0

Dziękuję, Romainl, moje pierwotne zamieszanie dotyczyło C-r, co oznacza "redo" w normalnym trybie i teraz rozumiem to! – izhak

+1

Aby uzyskać pomoc dotyczącą c-r, potrzebujesz ': help c_ctrl-r' (tzn. Drugi podkreślnik powinien być łącznikiem) – ErichBSchulz

30

<C-r> jest jak robi Ctrl + R na klawiaturze. <CR> jest jak naciśnięcie klawisza Enter. Pełną listę można znaleźć, wykonując :help key-notation.

+2

Wiem, że to bardzo początkujący pytanie, ale kiedy to zrobić: pomoc kluczy notacji potrzebny do dokumentacji. Następnie, jeśli naciśniesz Q, przejdę do trybu Ex. Jeśli naciśniesz wizualizację, powróci mnie do trybu normalnego, ale zajmie mi to ponowne zapoznanie się z dokumentacją. Chcę tylko wrócić do kodowania mojego oryginalnego pliku python, jak mam do niego wrócić? Dziękuję bardzo za ur oryginalny post! : D – Pinocchio

+1

Zgaduję, że moje pytanie brzmi: jak wrócić do oryginalnego pliku i wydostać się z dokumentacji? – Pinocchio

+2

Och, odkryłem, jak to zrobić przez przypadek! Aby wyjść z dokumentacji, po prostu naciśnij:, a następnie q. tj. ponieważ jest to normalny tryb: q zakończy dokumentację, a nie rzeczywisty plik. :) – Pinocchio