Вам может понравиться что-то вроде этих сопоставлений (то есть сохраненное в вашем .vimrc
или вставленное в приглашение :
):
cmap <C-R>' <C-R>=shellescape(getline('.'))<CR>
cmap <C-R><C-R>' <C-R><C-R>=shellescape(getline('.'))<CR>
После установки вы используете их следующим образом:
:!/usr/bin/todo ^R'
(введите фактический Control - R , где приведенный выше пример показывает ^R
).
Вы можете рассматривать их как версии режима командной строки для Control-R и Control-R Control-R на основе регистров (см. :help c_CTRL-R
и :help c_CTRL-R_CTRL-R
) где «мнимый» регистр '
всегда содержит заключенное в кавычки содержимое текущей строки.
Поскольку в этих сопоставлениях используется тот же префикс, что и во встроенных сопоставлениях (см. Разделы :help
, упомянутые выше), необходимо ввести окончательную одинарную кавычку в пределах timeoutlen
миллисекунд (см. :set timeoutlen?
), или по умолчанию она будет равна встроенное отображение (см. :help map-typing
).