Я пробовал использовать Ctrl + V для вставки содержимого в документ редактора vi, но Ctrl + V не интерпретируется как вставка.
Попробуй пройти бота-учителя. Он научит тебя Linux в виде игры: Курсы Linux и DevOPS Бесплатный урок
Я пробовал использовать Ctrl + V для вставки содержимого в документ редактора vi, но Ctrl + V не интерпретируется как вставка.
Попробуй пройти бота-учителя. Он научит тебя Linux в виде игры: Курсы Linux и DevOPS Бесплатный урок
Сначала убедитесь, что вы находитесь в режиме редактирования (нажмите i). Затем вы можете вставить с Ctrl+Shift+V, если вы находитесь в эмуляторе терминала, например gnome-terminal
(или выберите "Вставить" в контекстном меню правой кнопкой мыши).
Вы также можете ввести :set paste
в vim перед вставкой, чтобы отключить автоматическое отступление и т.д. Затем :set nopaste
после того, как вы вставили содержимое.
Также проверьте этот вопрос на stackoverflow.com для получения дополнительной информации.
Если вы хотите скопировать / вставить строки в vim
(в отличие от вставки содержимого буфера обмена), вы захотите проверить дергать команда. Вот такой шпаргалка это могло бы помочь.
Vi (и Vim) работает совсем по-другому по сравнению с обычным текстовым редактором, таким как Gedit. У него также довольно крутая кривая обучения. Если вы хотите выучить некоторые базовые команды, начните с этот интерактивный учебник.
Однако, чтобы ответить на ваш вопрос. Доступ к содержимому системного буфера обмена можно получить через регистр plus. Итак, чтобы вставить что-то из системного буфера обмена, вы можете в обычном режиме нажать: "+p (Не в одно и то же время, а один за другим).
Я всегда использую Shift+Insert когда я хочу вставить текст в терминал, работает во всех терминальных программах.
(Что также является причиной, по которой я никогда не получаю ноутбук, на котором вы не можете нажать Insert без нажатия дополнительной клавиши)
Если вы хотите скопировать и вставить содержимое в одном и том же файле, использовать yank
и paste
.
Если вы хотите скопировать и вставить содержимое через терминалы, откройте первый файл, выделив нужный текст, затем откройте второй файл в vim (например :tabnew /path/to/second/file
) и нажмите p
чтобы вставить его.
Если вы хотите скопировать и вставить содержимое из vim во внешнюю программу, вам необходимо получить доступ к системному буферу обмена. Я предполагаю, что вы используете Ubuntu. Версия vim с графическим интерфейсом всегда поддерживает буфер обмена, однако, если вы хотите использовать Vim из терминала, вам придется проверить наличие поддержки X11-clipboard.
С консоли введите:
$ vim --version | grep xterm
Если вы найдете -xterm_clipboard, у вас есть два варианта:
1) Скомпилируйте vim самостоятельно, установив флаг xterm_clipboard на
2) Удалите vim, установите гвим (vim-gtk или vim-gnome) вместо этого. Вы можете использовать vim без графического интерфейса, вызвав vim из терминала, как вы делали раньше. На этот раз, когда вы проверяете, вы должны найти +xterm_clipborad.
Теперь, когда вы нажимаете некоторый текст в регистре + внутри вашего редактора vim (например, "+ yy), он также копируется в системный буфер обмена, который вы можете извлечь из своей внешней программы, такой как редактор gedit, с помощью Ctrl+V.
Если вы хотите скопировать и вставить содержимое из внешней программы в vim, сначала скопируйте ваш текст в системный буфер обмена с помощью Ctrl+C, затем в редакторе vim режим вставки, нажмите на средняя кнопка мыши (обычно колесо) или нажмите Ctrl+Shift+V для вставки.
Это 4 основных копировать и вставлять условия, связанные с vim. Я надеюсь, что это поможет.
Используйте центральная кнопка мыши чтобы вставить текст, который вы выделили в другом месте.
Это полезно, когда у вас нет доступа к системному буферу обмена (например, в удаленном сеансе SSH).
Должно быть в режиме редактирования / вставки для Vim.
Как только вы войдете в vi, нажмите i
чтобы перейти в режим вставки, щелкните правой кнопкой мыши на терминале и выберите вставить.
Подробные инструкции по копированию / вставке строк текста в vi с помощью yank
и put
(используйте следующее в командный режим из vi)
Копия (РЫВОК)
Чтобы скопировать одну строку в vi:
yy
или введите Y
Чтобы скопировать 2 строки в vi:
2yy
или введите 2Y
(аналогично, можно скопировать любое количество строк)
Чтобы скопировать все строки из текущего местоположения в конец файла:
yG
Чтобы скопировать весь текст из текущего местоположения в конец текущего слова:
yw
Чтобы скопировать весь текст из текущего местоположения в конец строки:
y$
Вставить (ВСТАВИТЬ)
Для вставки текста в буфер обмена - после местоположение курсора:
p
Для вставки текста в буфер обмена - до местоположение курсора:
P
С Vim 8+ на Linux или Mac теперь вы можете просто использовать встроенную вставку операционной системы (ctrl+shift+V
в Linux, cmd+V
на Mac). Не нажимайте i
для режима Вставки.
Он вставит содержимое буфера обмена вашей операционной системы, сохранив пробелы и вкладки без добавления автоиндентирования. Это эквивалентно старому :set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
метод.
Вам даже не нужно +clipboard
или +xterm_clipboard
функции vim больше не установлены. Эта функция называется "вставка в квадратных скобках". Для получения более подробной информации см. https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Сначала проверьте, установлена ли в вашем vim поддержка буфера обмена
:echo has('clipboard')
Если он возвращает 1, у вас есть поддержка буфера обмена
Чтобы скопировать в буфер обмена, вы должны либо выбрать свою цель, скажем, абзац vip
и затем "+y
, что означает для регистра +
скопируйте выделенную часть или вы можете просто ввести текст в обычном режиме: "+yip
, что означает: в реестр +
скопируйте внутренний абзац.
Для вставки из буфера обмена в обычном режиме вы можете:
"+p
В режиме вставки вы можете просто Ctrl-rCtrl-o+. Tha вставит содержимое вашего буфера обмена и сохранит все отступы в том виде, в каком они есть в буфере обмена.
Если вы хотите скопировать весь буфер в буфер обмена, вы можете:
:%y+% ........ the whole filey ........ yank (copy)+ ........ to the clipboard
Чтобы скопировать последнюю команду в буфер обмена:
:let @+=@:
Чтобы скопировать последний поиск в буфер обмена:
:let @+=@/
для копирования от метки "a" до метки "b" в буфер обмена:
:'a,'b y+
Чтобы протестировать любую функцию, находящуюся в буфере обмена, вы можете
:@+ (and then type Enter):call FunctionName() (and then type Enter)
Чтобы увидеть, что находится в буфере обмена:
:reg +
Чтобы скопировать все строки с "шаблоном" в буфер обмена, вы можете:
:let @a="":[range]g/pattern/y A:let @+=@a:let @a="" ............ cleanses the register 'a':[range]g/pattern/y A append to the register A every line with pattern:let @+=@a ............ copy register 'a' to the clipboard
У меня возникла проблема, потому что моя установка Vim не поддерживала буфер обмена:
vim --version | grep clip-clipboard +insert_expand +path_extra +user_commands+emacs_tags -mouseshape +startuptime -xterm_clipboard
Я установил vim-gnome (который поддерживает буфер обмена), а затем проверил еще раз:
vim --version | grep clipboard+clipboard +insert_expand +path_extra +user_commands+emacs_tags +mouseshape +startuptime +xterm_clipboard
Теперь я могу копировать и вставлять, используя "+ y" и "+ p" соответственно.
Просто обратите внимание, что основная причина использования Vi заключается в том, что Vim не установлен. Если у вас установлен Vim, вероятно, стоит использовать его вместо этого. На самом деле у Vi нет никаких преимуществ, кроме того, что он уже присутствует в каждой установке Unix. Лучший способ изучить Vim, на мой взгляд, - это открыть эмулятор терминала (не из Vim) и ввести “vimtutor” Это позволит вам быстро добраться до того места, где вы сможете его использовать, примерно за 45 минут.
+1 @BenMordecai - Я уже был знаком с vi (со старых времен), включая его удобные возможности вложенной оболочки, но нуждался в этом обновлении. Отличный небольшой урок. Прошел через это, как легкий ветерок. Спасибо.
Проверьте мой ответ здесь How to copy selected lines to clipboard in vim - Stack Overflow
Попробуй пройти бота-учителя. Он научит тебя Linux в виде игры: Курсы Linux и DevOPS Бесплатный урок