VIM: Как вы получили последнюю команду ex, которую вы использовали?

8

Я нахожу, что иногда я пишу действительно длинную команду ex mode, которая делает много вещей. Это своего рода «мини-скрипты», которые я пишу в текстовом редакторе, затем запускаю режим ex, копирую их в строку ex и выполняю. Но потом я всегда заканчиваю редактирование в режиме ex, и тогда мне трудно вернуть изменения, которые я сделал в режиме ex, в мою сессию редактирования текста.

Используя клавиатуру, как скопировать последнюю использованную команду ex и вставить ее в текстовый редактор?

(Примечание: это своего рода противоположность этого вопроса " Как мне скопировать / вставить в режиме VIM EX «где пользователь спрашивает:« как вы копируете из текстового редактора и вставляете в режим ex? ». Мой вопрос противоположный, потому что я хочу скопировать из режима ex и вставить в мой текстовый редактор.)

Trevor Boyd Smith
источник
У меня есть Kludge, который делает это ... но для этого требуется мышь, чтобы выбрать ... выпадающее меню gvim для копирования ... и если строка ex - две строки, то вставка имеет новую строку, которая раздражает. (но более раздражает тот факт, что я использую мышь и графический интерфейс для копирования / вставки ...).
Trevor Boyd Smith

Ответы:

15

: register содержит последнюю команду: -com (ex command), которую вы выполнили, поэтому вы можете просто набрать команду ":p (с двойной кавычкой), чтобы вставить этот регистр в текущий буфер. Увидеть:

:help registers
:help ":

Обратите внимание, что есть регистры для последнего поиска, имя текущего буфера и т. Д.

Heptite
источник
16

Попробуйте q: команда. (Это два символа, первый q а потом :.) Это команда в обычном режиме, которая открывает историю ваших бывших команд в специальном буфере Vim. Вы можете просмотреть историю, вытащить все, что вы хотите, как всегда, и / или отредактировать строку и нажать <enter> на нем, чтобы выполнить его.

Herbert Sitz
источник
Просто будьте осторожны, чтобы не печатать :q вместо этого, что моя мышечная память пытается навязать мне!
frabjous
7
q: работает из обычного режима. Если вы уже находитесь в режиме командной строки (ex), введите Ctrl-F, чтобы открыть это окно командной строки.
garyjohn
Хм .... Ctrl + F ничего не делает, кроме printF "в моей командной строке бывшего режима.
Stabledog