Повторіть дев'яту останню команду в vim


13

Я помітив, що vim може бути досить інтуїтивно зрозумілим, але у мене виникають труднощі з пошуком способу повторити команду "другий-останній" (або від третього до останнього, від четвертого до останнього тощо). Ввівши .в звичайному режимі, він повторить останню команду. Натискання 3.тричі повторить останню команду.

Скажімо, я набираю oHello<Esc>тоді A, World!<Esc>. Я зараз отримую

Hello, World!

на екрані. Тепер скажіть, що я хочу отримати

Hello, World!
Hello
Hello
Hello

без набору привіт. Чи зберігає vim історію за межами однієї команди, щоб я міг набрати щось на зразок 3,2.(тобто повторити команду другого за останнім три рази)?


2
Пам'ятайте, що ви можете записати що-небудь як макрос ( qaoHello<esc>qпотім @aповторювати Helloколи завгодно.) Також @@можна повторити останній використаний макрос.
Джеймс Маклафлін

2
Я припускаю, що ви також 3@aможете повторити макрос кілька разів
redbmk

Відповіді:


8

Ні, .команда в vimне має історії, і не існує якихось історій повторень для команд звичайного режиму, про які я знаю. Для найменшої кількості натискань клавіш я рекомендую 4oHello<Esc>3jA, World<Esc>. Якщо ви вже зробили oHello<Esc>A, World<Esc>, ви можете слідувати цьому uyy<Ctrl-r>3p.


4

Є цей плагін під назвою RepeatLast.vim, який робить те, що ви хочете, але вартістю: ваш vim завжди знаходиться в режимі запису макросу. Ви можете встановити його за допомогою диспетчера пакунків, який ви використовуєте, як і будь-який інший пакет vim, або можете просто клонувати і скидати його, ~/.vim/pluginякщо ви використовуєте vim або ~/.config/nvim/plguinвикористовуєте neovim. Для повторення другої до останньої дії вам слід ввести 2\.звичайний режим, а для повторення останньої дії слід ввести <n>\.у звичайному режимі.

http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim


2
@Sassan, чи можете ви відредагувати свою відповідь і швидко пояснити, як встановити цей плагін і як саме його можна використовувати для вирішення проблеми ОП?
тердон

2
@terdon, якщо хтось прочитає мою відповідь і не знає, як користуватися менеджером пакунків, йому дійсно краще стати цікавим і піти витрачати час і дізнатися про менеджерів пакетів у vim. Те саме для того, хто його читає і не знає про отримання інформації від docs / README.md для плагінів vim.
Сассан

Це не суть. Відповідь, що є лише посиланням , не вважається відповіддю . Відповіді мають бути самостійними та пропонувати всю інформацію, необхідну для застосування запропонованого рішення. Дякуємо за редагування!
тердон

1
Насправді я згоден, цей плагін занадто хакітний, щоб його використовували люди, які не знають, як його встановити :)
Борис Чурзін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.