1

Сегодня выяснилось, что если вы нажмете Ctrl-Opt-Cmd-V в Textmate, то получится симпатичный маленький диалог выбора, позволяющий пролистывать ваши последние записи в буфере обмена. Он выглядит очень похоже на то, как работают CTRL-P и -N в VIM, за исключением того, что он показывает целые строки вместо простых объектов слова.

Кажется, что это было бы выполнимо в VIM - у него уже есть буфер, полный записей (например, буфер YankRing), и у него уже есть выбор, но я не могу думать о том, где я хотел бы начать размещать эти два вместе. Есть идеи?

(Я знаю, что YankRing уже делает это, открывая новое окно, заполненное содержимым буфера, но мне интересно, есть ли способ сделать это без переключения / закрытия всего окна и т.д.)

2 ответа2

1

Vim предоставляет два пользовательских механизма завершения вставки: пользовательское завершение и Omni завершение. Вы можете прочитать о них здесь:

:help compl-function
:help compl-omni
:help complete-functions
:help 'completefunc'
:help 'omnifunc'

Я никогда не использовал их сам, но раз вы спросили, с чего начать, вот и все. Вы также можете прочитать этот раздел,

:help ins-completion

для объяснения различных встроенных механизмов завершения в режиме вставки, которые могут помочь вам избежать написания своих собственных. Однако я не видел предопределенного механизма выбора записей из буфера обмена. Вы можете вставить из предыдущих удалений с небольшим трудом, используя :registers для просмотра доступных регистров, а затем вставляя содержимое нужного регистра с помощью Ctrl-R, за которым следует имя регистра. Увидеть

:help :register
:help registers
:help i_CTRL-R
0

Мой ответ, вероятно, немного ОТ, но я предпочитаю иметь общесистемный менеджер буфера обмена, так как эта функция полезна во многих контекстах. Вот те, которые я использую с одинаковыми сочетаниями клавиш для каждого:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .