Вставить строку в файле putty vim

Обновлено: 06.07.2024

который вставляет новую строку и помещает меня в режим вставки, чем завершает режим вставки и, наконец, вставляет.

три клавиши. Не очень эффективно. Есть идеи получше?

сразу после :help p Он говорит:

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

1) Использовать yy дергать все строки (включая символ конца строки). p затем вставьте строку в новую строку после текущей и P ( Shift - P ) будет вставляться над текущей строкой.

2) Сделайте отображение: тогда это только один или два ключа:

3) версия функции отображения (ненужная действительно, но только для полноты):

вы можете вставить буфер в режим вставки с помощью <C-R> затем следует имя буфера для вставки. Буфер по умолчанию - " , Так что вы могли бы сделать

я обнаружил, что я использую <C-R>" очень часто и привязан к <C-F> в моем vimrc:

Это все еще использует три нажатия клавиш, но я нахожу это проще, чем Esc:

поскольку вы находитесь в режиме вставки после нажатия o, модификатор Alt позволит вам использовать команду, как если бы вы не были.

лично я nmapped Enter (CR) такой:

. на основе этой статья Vim Wikia.

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

вы также можете пропустить k в Nmap выше, в зависимости от того, какие функции вы предпочитаете от Enter, так что это будет <CR>p .

Я также imapped jj в Esc, что также помогло бы в этом случае. Esc слишком далеко от домашней строки для того, насколько это важно в vim.

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

если вы копируете целую строку, а затем вставляете целую строку, используйте Y чтобы дернуть линию или линии, включая разрыв линии, в первую очередь, и p вставить. Вы также можете использовать V , который является визуальный строка режим, в отличие от простого v для визуального режима.

у меня есть сопоставление inoremap jj <ESC> . Таким образом, легко вставить новую строку с ojj и Ojj а то p .

так ojjp вставить новую строку. у него есть еще один удар, то o<esc>p но ojjp легко для меня.

Я нашел элегантное решение этой проблемы. Если вы помещаете регистр yank в буфер обмена вашей ОС (что в любом случае здорово), с

чем вы можете сделать o<Ctl-v> .

помимо того, что меньше ударов, это улучшает как o<Esc>p и :pu потому что он сохраняет отступ: оба других параметра запускают вас в нулевой символ в новой строке.

предостережение заключается в том, что это может или не может зависеть от ОС. Все, что я знаю, это то, что он работает на недавнем версия OS X, но буфер обмена-это всего лишь один из многих способов получить yank в буфере обмена ОС.

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

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


В этом руководстве мы рассмотрим, как копировать строки в vim.

VIM, аббревиатура от Vi iMproved, представляет собой текстовый редактор с широкими возможностями настройки, предназначенный для очень эффективного создания и изменения любого текста.

Он включен как «vi» в большинство систем UNIX и Apple OS X.


Vim имеет следующие особенности:

  • Многоуровневое дерево отмены
  • обширная система плагинов
  • поддержка сотен языков программирования и форматов файлов
  • мощный поиск и замена
  • интегрируется со многими инструментами

Установка VIM на Linux

Большинство дистрибутивов Linux обычно не поставляются с предустановленным VIM.

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

Установка VIM в системах Ubuntu/Debian

VIM доступен в репозиториях Ubuntu/Debian по умолчанию, и вы просто можете установить его, выполнив команду;

Для любого другого дистрибутива обратитесь к соответствующему менеджеру пакетов, чтобы узнать, как установить vim.

Как скопировать строки вставки в vim

Давайте посмотрим на некоторые примеры того, как копировать строки в vim на Linux.

Операция копирования и вставки в vim достигается с помощью:

Как скопировать определенное количество строк под курсором в VIM

Как скопировать определенное количество строк под курсором в VIM

Чтобы скопировать определенное количество строк под курсором (начиная с текущего положения курсора) в vim, просто укажите количество строк, за которыми следует операция восстановления (Nyy)

Например, чтобы скопировать две строки под курсором (начиная с текущего положения курсора), войдите в нормальный режим, нажав клавишу ESC, и нажмите;

Вы также можете использовать операцию для копирования двух строк.

Где точка (.) означает текущую строку, а плюс (+) означает плюс одна строка под курсором.

Чтобы скопировать 3 строки, используйте 3yy или. + 2yank.

Как скопировать определенное количество строк над курсором в VIM

Например, чтобы скопировать две строки от текущей позиции курсора, нажмите (в обычном или escape-режиме) y2-1k, что эквивалентно y1k.

Чтобы скопировать 5 строк над курсором (из текущей позиции курсора); Вы также можете использовать другие операции. например, скопировать пятую строку прямо над курсором;

Копирование определенного номера строки в VIM

Вы можете отображать числовые строки в vim, используя: set number.

Например, предположим, что вы находитесь в конце редактируемого файла и хотите скопировать вторую строку vim, просто нажмите клавишу ESC и введите;

Как скопировать определенный номер строки и вставить над или под курсором

Например, чтобы скопировать вторую строку и вставить сразу над текущей позицией курсора;

Чтобы скопировать вторую строку и вставить сразу под текущей позицией курсора;

Как скопировать диапазон строк в VIM

Вы можете скопировать диапазон строк в vim с помощью операции: M, Nyank.

Итак, чтобы скопировать строки10-15, используйте

Чтобы скопировать пять строк над курсором;

Чтобы скопировать пять строк под курсором;

Вставка скопированных строк в VIM

Вы всегда можете вставить скопированный контент с помощью операций p или P в зависимости от текущей позиции курсора.

В настоящее время у меня открыт сеанс vim в PuTTY, и я выбрал все в файле в визуальном режиме. Обычно, чтобы скопировать это в буфер обмена, я бы использовал "+y или "*y , но ни одна из этих команд не работает.

Когда вы подключаетесь к удаленной системе с помощью PuTTY (я полагаю, с помощью SSH) и вам нужно перенести полный файл из этой системы в локальную систему Windows, просто откройте отдельное соединение SCP; PuTTY поставляется с pscp.exe для передачи файлов. В зависимости от вашей конфигурации SSH, при мультиплексировании это может даже повторно использовать одно и то же соединение, поэтому накладные расходы должны быть довольно небольшими.

Если вы устанавливаете X-сервер (например, Cygwin-X ) и используете ssh -X hostname для подключения, вы можете запустить сеанс удаленного терминала/GVIM и синхронизировать буфер обмена с вашим хостом Windows, любезно предоставленный X-сервером. Только с PuTTY это невозможно, поскольку это единственный клиент терминала без какого-либо подключения к X.

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

выход из редактора vi

$ cat используя приведенную выше команду, вы увидите весь ваш контент, который находится в этом файле

выберите контент вы хотите скопировать (да, вы можете прокрутить на этом экране при выборе)

не нажимайте никакую кнопку мыши потому что текст будет выделен автоматически

открой свой текстовый редактор в windows и вставь его туда

Я предполагаю, что вы ожидали, что текст будет скопирован в буфер обмена хост-системы. Я сомневаюсь, что это возможно изнутри vim, запущенного в сеансе PuTTY, но мне подходит следующее

  • выделите текст с помощью мыши.
  • выбранный текст будет помещен в буфер обмена моей системы.

Обратите внимание, что это не имеет никакого отношения к vim, но полностью относится к PuTTY.

Правка

3.1.3.5 Копировать все в буфер обмена

Эта опция системного меню предоставляет удобный способ скопировать весь содержимое экрана терминала (до последней непустой строки) и прокрутка в буфер обмена за один раз

В отличие от других редакторов, vim хранит скопированный текст в своем собственном буфере обмена. Поэтому мне очень сложно скопировать текст с веб-страницы и вставить его в текущий рабочий файл. Так получилось, что мне нужно либо открыть gedit, либо набрать его вручную.

Могу ли я сделать vim paste из системного буфера обмена и в него?

Скопируйте "+ y Paste" + p Работает так же, как yank и вставьте, за исключением того, что вы указали ранее реестр. Чтобы использовать следующие команды, убедитесь, что вы сделали, sudo apt-get install vim-gnome что добавит эту функциональность к встроенному vim использования системного буфера обмена. @Harnirvair Для многих читателей здесь, vim-gnome вероятно, излишне или просто недоступно в их ОС / дистрибутиве, в то время как я подозреваю , что, скорее всего, они существуют и vim-gtk предпочитают vim-gtk3 меньше зависимостей, в то же время обеспечивая интеграцию с буфером обмена (по крайней мере, для тех, кто все еще работает на X11; Я не уверен, как все это взаимодействует с Уэйлендом).

"* И "+ регистры для буфера обмена системы ( :help registers ). В зависимости от вашей системы они могут делать разные вещи. Например, в системах, которые не используют X11, таких как OSX или Windows, "* регистр используется для чтения и записи в системный буфер обмена. В системах X11 могут использоваться оба регистра. Смотрите :help x11-selection подробности, но в основном "* это аналог выбора PRIMARY в X11 (который обычно копирует то, что вы выбираете мышью, и вставки средней кнопкой мыши) и "+ аналогично выделению X11 CLIPBOARD (которое является собственно буфером обмена).

Если все это у вас над головой, попробуйте с помощью "*yy или "+yy скопировать строку в буфер обмена вашей системы. Предполагая, что у вас есть соответствующие параметры компиляции, один или другой должен работать. Вы можете переназначить это на что-то более удобное для вас. Например, вы можете вставить vnoremap <C-c> "*y

/ .vimrc, чтобы вы могли визуально выбрать и нажать Ctrl +, c чтобы вернуться в буфер обмена вашей системы.

Имейте в виду, что копирование / вставка из системного буфера обмена не будет работать, если :echo has('clipboard') возвращается 0. В этом случае vim не скомпилирован с этой +clipboard функцией, и вам придется установить другую версию или перекомпилировать ее. Некоторые дистрибутивы Linux предоставляют минимальную установку vim по умолчанию, но, как правило, если вы устанавливаете пакет vim-gtk или vim-gtk3 пакет, вы можете получить дополнительные функции.

Вы также можете посмотреть на 'clipboard' опцию, описанную в :help cb . В этом случае вы можете :set clipboard=unnamed или :set clipboard=unnamedplus сделать все операции удаления / удаления автоматически скопировать в системный буфер обмена. Это может быть неудобно в некоторых случаях, когда вы сохраняете что-то еще в буфере обмена, так как это переопределит его.

Для вставки вы можете использовать "+p или "*p (опять же, в зависимости от вашей системы и / или желаемого выбора) или вы можете сопоставить их с чем-то другим. Я печатаю их явно, но часто оказываюсь в режиме вставки. Если вы находитесь в режиме вставки, вы все равно можете вставить их с правильным отступом, используя <C-r><C-p>* или <C-r><C-p>+ . См :help i_CTRL-R_CTRL-P .

Также стоит упомянуть параметр vim paste ( :help paste ). Это помещает vim в специальный «режим вставки», который отключает несколько других опций, позволяя легко вставлять в vim с помощью эмулятора терминала или знакомого ярлыка вставки мультиплексора. Просто введите, :set paste чтобы включить его, вставьте содержимое, а затем введите, :set nopaste чтобы отключить его. Кроме того, вы можете использовать pastetoggle опцию для установки кода клавиши, который переключает режим ( :help pastetoggle ). Я рекомендую использовать регистры вместо этих опций, но если они все еще слишком страшны, это может быть удобным обходным путем, пока вы совершенствуете свои vim отбивные.

Читайте также: