Vim: копия, затем вставьте несколько раз

Если Вы хотите отключить это (по-видимому поведение по умолчанию), необходимо включить ssh-активный на клиенте или серверной стороне.

При рассмотрении ssh-keep-alive-options в страницах справочника Вы видите, что они отключены по умолчанию.

6
02.05.2013, 10:01
5 ответов

Я сделал бы это таким образом (действительно полезный для многих, вставляют):

  1. Пойдите куда-нибудь в слово Linux, затем "ayiw для копирования слова
    • "для выбора регистра
    • y для копирования
    • я для определения мы находимся "в" (слово, абзац...)
    • w для выбора слова
  2. Добрался до следующего Word w (или где-нибудь в слово)
  3. Вставка вовремя и сохраняет это как макрос qbdiw "aPq
    • qb, чтобы начать записывать макрос в регистре «b»
    • d для удаления
    • я для определения мы находимся "в" (слово, абзац...)
    • w для выбора слова
    • "для выбора регистра (ранее сохраненный)
    • P для вставки слова перед курсором
    • q, чтобы прекратить записывать макрос
  4. Затем для использования макроса в первый раз перейдите к следующему Word w и нажмите @b
  5. Наконец, и это - где преимущество этого метода видно, пойдите каждое слово, которое Вы хотите заменить и нажать @@

Подсказка: Замените ш на Ш в qbdiw "aPq для выбора слова с пунктуацией, как HP-UX

Проблема: Когда слово будет последним в строке, это удалит пространство перед словом.

7
27.01.2020, 20:24

Используйте регистры и избегайте визуального режима.

Move to 'L' (type 0fL)                  |L|inux Solaris Irix HP-UX
"lye                                    
'Linux' is now in the 'l' register.     
Move to 'S' (type fS)                   Linux |S|olaris Irix HP-UX
"sde"lP                                 Linux Linu|x| Irix HP-UX
'Solaris' is now in the 's' register.   
Move to 'I' (type fI)                   Linux Linux |I|rix HP-UX
"ide"lP                                 Linux Linux Linu|x| HP-UX

Вы могли также просто удалить 'Солярис' и 'Irix' и вставить 'Linux' дважды в их месте.

0fLw2dwbyf<space>w2P
1
27.01.2020, 20:24

Мне нужно это так часто, я записал плагин, чтобы упростить и позволить максимальную скорость: ReplaceWithRegister.

Этот плагин предлагает два в одном gr управляйте что текст замен, покрытый {движение} / текстовый объект, вся строка (строки) или текущий выбор с содержанием регистра; старый текст удален в регистр черной дыры, т.е. он пошел. Это прозрачно обрабатывает много угловых случаев и допускает быстрое повторение с помощью стандарта . команда. Если Вы не как он, его страница имеет ссылки на альтернативы.

1
27.01.2020, 20:24

Вы могли бы хотеть рассмотреть "0p при вставке в визуальном режиме.

Касательно :help v_p

Move to L in Linux
ye     # Yank to end of word.
w      # Move to next word.
<C>ve  # Highlight Solaris.
"0p    # Paste Linux, Solaris ends up in unnamed register and Linux in 0
w      # Move to next word.
<C>ve  # Mark next word. (Or anywhere else)
"0p    # Paste Linux.

Или в этом точном примере каждый мог также:

Расположенный на L в Linux

yww<C>v2f 2p
# Or
yww<C>v2el2p
yw           # Yank Linux 
w            # Move to S in Solaris
<C>v2el      # Enter visual mode, highlight two * end, and l to consume space.
2p           # Paste Linux twice.

'<C>v2f '    # Alternative to <C>v2el
1
27.01.2020, 20:24
  • 1
    Или "_deP -- "_ "регистр черной дыры" и действует как/dev/null. –  SilverWolf - Reinstate Monica 13.03.2018, 20:41

К счастью для вас и меня, этот вопрос был задан и дан ответ на StackOverFlow. Вы можете изменить поведение p по умолчанию, чтобы сделать его более интуитивно понятным или удобным для некоторых, добавив следующее в ваш файл vimrc:

xnoremap p pgvy
1
20.08.2021, 13:12

Теги

Похожие вопросы