Сообщество Wiki: «Vim: Расширенное использование механизма янки» - PullRequest
6 голосов
/ 04 мая 2010

Сообщество Wiki

Как видно из документации системы янки (спасибо Михалу), система янки Vim кажется более сложной, чем стандартный буфер обмена. Поэтому я думаю, что было бы полезно, если бы ветераны vim могли показать нам несколько разных стилей использования этого механизма. особенно с использованием vim для сложных проектов без использования тяжеловесной IDE (скажем, C ++?).

Оригинальный вопрос

Теперь, когда я использую vim для всего, что я печатаю, а не просто для настройки серверов, я не хочу разбираться в следующих мелочах. Я пытался сформулировать поисковые запросы Google, но результаты не отвечали моим вопросам: D.

Вопрос первый: Как вытащить и заменить несколько раз?

Как только у меня есть что-то в истории янки (если так оно и называется), а затем выделите и используйте символ 'p' в командном режиме, замененный текст помещается в начало истории янки; поэтому последующие операции замены не используют текст, который я намеревался. Я полагаю, что это является полезной функцией при определенных обстоятельствах, но у меня нет необходимости в этом в моем рабочем процессе.

Вопрос второй: Как мне печатать текст, не заставляя линию двигаться вперед?

Я использую жесткие табуляции для выравнивания своего кода определенным образом - например,

FunctionNameX     ( lala * land               );
FunctionNameProto (                           );

Когда я выясняю, что нужно для перехода ко второй функции, как мне вставить ее, не перемещая текст вверх?

Вопрос третий Есть ли способ иметь одинаковую историю янки для всех экземпляров gvim на одной машине? У меня> 1 мониторов. Просто интересно, я использую выделение + средний щелчок мыши.

Ответы [ 2 ]

4 голосов
/ 04 мая 2010

слить в буфер

:y b

возвращает в буфер b

А

:p b 

помещает это.

Я думаю, что доступно больше именованных буферов.

4 голосов
/ 04 мая 2010

Ответ один: Соответствующий, если не особенно обнадеживающий, цитат из документации Vim (см. :help put-Visual-mode):

При использовании команды put, такой как | p | или | P | в визуальном режиме Vim попытается заменить выделенный текст содержимым регистра. Будь это хорошо работает в зависимости от типа выделения и типа текста в регистр. При блочном выборе это также зависит от размера блока и находятся ли углы на существующем персонаже. (Детали реализации: это на самом деле работает, сначала поставить регистр после выбора, а затем удаление выбора.)
Ранее выбранный текст заносится в безымянный регистр. Если хотите поместите один и тот же текст в визуальный выбор несколько раз, что вам нужно использовать другой регистр. Например, дерните текст для копирования, визуально выделите текст для заменить и использовать «0р. Вы можете повторить это столько раз, сколько хотите, безымянный регистр будет меняться каждый раз.

Ответ два: R (заглавная 'R') переводит вас в режим замены.

Мне не хватает ответа три, я боюсь.

Ответ три: Не совсем соответствует спецификации "история равномерного восстановления", но "+ y возвращает в буфер обмена и " + p вставляет из буфера обмена, если буфер обмена доступен.

...