Что означает <c-r >= в Vim
Я столкнулся с рядом синтаксических понятий, которые я не понимаю:
Первое находится в: help mapping:
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
Эта последовательность действительно вставляет значение strftime в буфер, хотя я не понимаю, как это сделать. Переход на что-то другое нарушает его.
Другой - на странице wiki где описывается, как всплывающее меню omnicompletion работает хорошо:
inoremap <silent> <Esc> <C-r>=pumvisible() ? "\<C-y>" : "\<Esc>"<CR>
То же самое здесь.
Может ли кто-нибудь объяснить, как это работает "<C-r>=
"?...
Ответы
Ответ 1
<C-r>=
, или Ctrl + R = используется для вставки результата выражения в курсор.
Я использую его при редактировании CSS для вставки значений:
width: <C-r>=147-33<CR>px;
width: 114px;
ИЗМЕНИТЬ
<C-r>
, без =
, позволяет вставлять содержимое любого регистра в курсор во время пребывания в режиме вставки: <C-r>+
, например, вставляет содержимое моего системного буфера обмена. см. :help i_ctrl_r
.
=
является "регистром выражений". См. :help "=
.
EndEdit
Ответ 2
<C-r>
похож на выполнение CTRL + R на клавиатуре. <CR>
похоже на нажатие кнопки ввода. Вы можете найти полный список, выполнив :help key-notation
.