vim: Могу ли я сделать * только * y выполнить копию?

Я учусь, как vim, но одна вещь, которую я еще не полностью охватил, – это ситуация с копией и вставкой. В текстовом редакторе маглов я бы Ctrl- C скопировал фрагмент текста, а затем отредактировал / удалил, а затем вставлял текст в другое место. Однако в vim я не могу этого сделать, потому что после копирования текста с y , изменение текста часто связано с d и x, которое стирает мой исходный текст.

Есть ли способ сделать d и x не копировать текст? Или иначе, как я должен использовать эти функции vim?

4 Solutions collect form web for “vim: Могу ли я сделать * только * y выполнить копию?”

9 предыдущих янков сохраняются в регистрах с именем от 1 до 9 . Вы можете вспомнить следующий-последний yank с "1p , предыдущий с "2p и так далее. Команда :reg показывает регистры, доступные для вставки.

Если вы хотите, чтобы янки продолжались дольше, используйте буквенный регистр .

Для более неясных команд, связанных с янки, начните читать :help " в руководстве.

Команды, о которых вы говорите, используют так называемый «неназванный» регистр. Он предназначен только для очень короткого использования. «Я собираюсь вырвать это отсюда и положить туда».

Если вы хотите что-то удерживать более чем на несколько секунд, пока вы идете и делаете что-то еще, вы должны использовать именованные регистры.

Например, « y y будет удерживать курсор в регистре. Ничто не будет сбивать его случайно, если вы не наберете еще одну команду с регистром. Минуты, часы, даже дни спустя, вы можете ввести « p чтобы удалить эту дернутую копию строки из регистра, расположенного ниже того, на котором курсор включен.

(Чтобы это работало очень хорошо, у вас должна быть строка, подобная set viminfo='50,\"1000 в вашем файле ~/.vimrc , чтобы сказать ей, чтобы она запоминала такие вещи, как содержимое регистра на сеансах Vim. Затем вы можете отправиться в отпуск между yank и put!)

Есть 26 названных регистров (az). Если вы укажете их как прописные, а не как показано выше, вы добавите их в текущее содержимое регистра вместо их замены. Таким образом, вы можете создать что-то действительно сложное, например, зарегистрировать h штук за раз, а затем полностью свернуть его с помощью « hp.

Обратите внимание, что имя регистра необязательно. Это означает, что может быть много команд, которые вы уже знаете, и использовать, где вы могли бы использовать именованные регистры. Скажите :help registers в Vim :help registers чтобы получить представление о возможностях.

Кроме того, получите кружку Vi .

Если вам нужно удалить текст с помощью d без изменения вашего yank-регистра (скажем, вы уже дернули текст в нем, который вы не готовы вставить перед удалением какого-либо другого текста, например), вы можете использовать регистр черных дыр _ ,

Например, если вы делаете « _ d d , текущая строка будет немедленно удалена и забыта.

На самом деле, я не использую этот регистр очень часто. Это не требует меньших нажатий клавиш, чем сохранение в регистре общего назначения (любой регистр букв), и если вы сохраняете регистр общего назначения, по крайней мере, удаленные вами строки все еще доступны до тех пор, пока вы не перезапишете регистр, если возникает необходимость.

Если вы хотите забыть использовать другой регистр при удалении, вы можете определить макрос оболочки для d d, например:: :noremap dd "add .

Как было отмечено в комментариях к принятому (текущему) ответу, канонический способ сделать это – использовать регистр 0 ( "0 ). Ноль регистра всегда содержит последний янки и не будет перезаписан d и x , поэтому "0p всегда ставит все, что вы дернули, независимо от того, что было отредактировано тем временем.

  • Перейти к конкретному символу в строке в VI
  • Поиск в файле, но не в подкаталоги
  • Vim - привязать ключ к команде bash
  • Есть ли еще один короткий способ определить, находится ли элемент в списке vim, отличном от `index (L, item)`?
  • vim: скрыть первые n букв всех строк в файле
  • Блокировать движение для любого типа скобок?
  • Есть ли способ подсчитать количество совпадений в Vim, используя: g?
  • vim - не выделять поисковый запрос после поиска и замены?
  • Vim продолжает показывать сообщение об ошибке в цветовой схеме без каких-либо причин
  • VIM: Показать шестнадцатеричный код Inline
  • Доступ к последней выполненной команде и ее изменение перед выполнением в VIM
  • Interesting Posts

    Broadcom BCM43142 – Поддержка драйверов на Kali Linux?

    Как скопировать файлы в AIX из FS в другой FS?

    Как выполнить команду в cronjob для отображения вывода в терминале

    Супер ключ как ярлык – Openbox

    apt-get – Некоторым индексным файлам не удалось загрузить, они были проигнорированы или старые использовались вместо

    неразрывное пространство иногда появляется в Geany (мой стандартный текстовый редактор)

    Почему переменная в модуле `require`d не всегда доступна?

    Подключение беспроводной веб-камеры и беспроводного ключа

    Как извлечь и сшить многострочный tar arcvhive без начального файла

    linux mint висит – как найти причину?

    Что означает * рядом с именем файла в выводе ls?

    UNIX для печати содержимого из файла .gz

    Удалите строки в упрощенном файле csv (одна новая строка в строке) на основе определенного значения столбца

    Как вам заставить fsck при перезагрузке на FreeBSD10?

    «Ls -lh» сообщает общий размер меньше суммы отдельных размеров

    Linux и Unix - лучшая ОС в мире.