VIM: Як ви отримуєте останню використану колишню команду?


10

Я вважаю, що іноді пишу дійсно довгу команду колишнього режиму, яка робить багато чого. Вони є на зразок "міні-скриптів", які я записую в текстовий редактор, тоді я запускаю колишній режим і копіюю їх у рядок ex та виконую. Але тоді я завжди закінчую редагування в колишньому режимі, і тоді мені важко повернути зміни, які я робив у колишньому режимі, до моєї сесії редагування тексту.

Як за допомогою клавіатури скопіювати останню використану команду та вставити її у свій текстовий редактор?

(Примітка. Це щось протилежне цьому питанню " як скопіювати / вставити в режимі vim ex ", де користувач запитує "як скопіювати з текстового редактора і вставити в режим EX?". Моє питання: навпаки, тому що я хочу скопіювати з колишнього режиму та вставити у свій текстовий редактор.)


У мене є хитрість, яка робить це ... але для цього потрібно вибрати мишу ... скопіювати меню gvim, щоб скопіювати ... а якщо колишній рядок - два рядки, в пасті є новий рядок, який дратує. (але більше дратує той факт, що я використовую мишу та gui, щоб скопіювати / вставити ...).
Тревор Бойд Сміт

Відповіді:


16

:Регістр містить останнє: -command (команда ех) ви запускали, так що ви можете просто ввести команду ":p(з лапками) , щоб вставити цей регістр в поточний буфер. Подивитися:

:help registers
:help ":

Зауважте, що є регістри останнього пошуку, ім'я поточного буфера тощо.


17

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


Тільки будьте обережні і не набирайте :qнатомість, що моя м’язова пам’ять намагається на мене накласти!
frabjous

7
q:працює у звичайному режимі. Якщо ви вже перебуваєте в режимі командного рядка (колишній), введіть Ctrl-F, щоб відкрити це вікно командного рядка.
garyjohn

Хм .... Ctrl + F не робить нічого, але друкує "^ F" у моєму командному рядку колишнього режиму. Я пропускаю якийсь чарівний соус?
Stabledog
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.