Выберите текст из Terminal.app использование клавиатуры в OS X

Мне нравится копировать вещи с терминала, но мне не нравится должным быть перемещаться в мышь. Как Вы выбираете текст в Terminal.app использование клавиатуры?

Например, в то время как в Терминале хотел бы мочь переместиться в точку на строке и затем выделить часть текста с левыми и правыми клавишами со стрелками, которые мог затем сократить или копия. Действительно ли это возможно?

7
задан 11.09.2010, 16:41

2 ответа

Если Вы хотите скопировать вывод с команды, можно использовать pbcopy. Для получения определенного вывода использовать grep.

Например, для копирования всего вывода netstat -an:

netstat -an | pbcopy

Только скопировать вывод открытых портов (слушание):

netstat -an | grep LISTEN | pbcopy

Сам Terminal.app не имеет способа использовать клавиатуру для выбора текста, но использования оконечного мультиплексора как экран или tmux, можно сделать так в "режиме копии". Экран установлен на OS X по умолчанию, и tmux может быть установлен через сторонний инструмент, такой как Homebrew или Macports. Страница справочника для обеих программ описывает режим копии и как выбрать текст для копирования в буфер обмена. В экранной странице справочника больше информации о перешедшем режиме копии может быть найдено в CUSTOMIZATION раздел под copy. Выборка ниже:

   copy

   Enter  copy/scrollback mode. This allows you to copy text from the cur-
   rent window and its history into the paste buffer. In this mode  a  vi-
   like `full screen editor' is active:
   Movement keys:
     h, j, k, l move the cursor line by line or column by column.
     0,  ^  and  $  move to the leftmost column, to the first or last non-
       whitespace character on the line.
     H, M and L move the cursor to the leftmost column of the top,  center
       or bottom line of the window.
     + and - positions one line up and down.
     G moves to the specified absolute line (default: end of buffer).
     | moves to the specified absolute column.
     w, b, e move the cursor word by word.
     B, E move the cursor WORD by WORD (as in vi).
     C-u  and  C-d  scroll  the display up/down by the specified amount of
       lines while preserving the cursor position. (Default: half  screen-
       full).
     C-b and C-f scroll the display up/down a full screen.
     g moves to the beginning of the buffer.
     % jumps to the specified percentage of the buffer.

Это все еще не взаимодействует с буфером обмена системы, таким образом, необходимо было бы скопировать вывод в некотором роде, возможно, путем повторения содержания буфера к pbcopy. Рабочий процесс в качестве примера:

(C-a ["содержат управление, нажимают A и затем поражают [", то же для]. см. экранную страницу справочника.)

  1. Экран "Пуск" и действительно работает там.
  2. Перейдите к режиму копии: C-a [
  3. Переместитесь по использованию vi привязки клавиш (или установите для использования emacs привязки на страницу справочника).
  4. Запустите текстовый выбор с клавиши "Пробел".
  5. Хит входит для копирования выбора в буфер. Это выходит из режима копии.
  6. Вставьте буфер с C-a]

    повторите 'C-a]' | pbcopy

(буквально не вводите C-a], используйте привязку клавиш, как описано выше, используйте кавычки в случае необходимости),

Текст, который Вы выбрали, должен быть в системном буфере обмена, и можно вставить его в другое окно. Например, следующее:

   paste [registers [dest_reg]]

   Write  the  (concatenated)  contents  of the specified registers to the
   stdin queue of the current window. The register . is treated  as  the
   paste  buffer. If no parameter is given the user is prompted for a sin-
   gle register to paste.  The paste buffer can be filled with  the  copy,
   history  and  readbuf commands.  Other registers can be filled with the
   register, readreg and paste commands.  If paste is called with a second
   argument,  the  contents  of the specified registers is pasted into the
   named destination register rather than the window. If .  is  used  as
   the  second  argument,  the  displays  paste buffer is the destination.
   Note, that "paste" uses a wide variety of resources: Whenever a  second
   argument  is  specified  no  current  window is needed. When the source
   specification only contains registers (not the paste buffer) then there
   need not be a current display (terminal attached), as the registers are
   a global resource. The paste buffer exists once for every user.

Был из экранной страницы справочника от выполнения вышеупомянутого :).

Теперь все, что сказало, и Вы действительно упоминаете Terminal.app а именно, новую возможность iTerm2 версии 0.20.20101102, которая находится на шоу тестирования альфа-версии:

  • Выбор Без мыши: Вы часто текст вставки копии в том же окне? Теперь можно сделать это, не используя мышь. Откройте findbar с cmd-f и ищите текст, который Вы хотите скопировать. Когда часть текста будет подобрана, используйте клавишу Tab для расширения выбора направо полным словом и shift-tab для расширения оставленного предыдущей границе слова. Это автоматически копируется в буфер обмена, или можно использовать, выбирают - входят для вставки выбора сразу.

В то время как это альфа, я использовал его для всей моей Терминальной работы в течение приблизительно полутора месяцев, и это довольно стабильно.

домашняя страница iTerm2

12
ответ дан 07.12.2019, 14:42

Если то, что Вы хотите скопировать, является командами, Вы вошли при подсказке Bash, можно использовать Bash readline особенности редактирования строки:

Вот является пример в (значении по умолчанию) emacs режимом:

  • Нажмите Ctrl-r и введите часть команды, которую требуется повторно вызвать из истории
  • Нажмите Ctrl-u для вырезания (уничтожают) ту строку в буфер уничтожения
  • Нажмите Ctrl-y для вставки (дергают) буфер уничтожения на командную строку (Вы могли нажать его многократно для повторения копий),

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

Посмотрите man bash в разделе "Readline" и man readline для получения дополнительной информации.

1
ответ дан 07.12.2019, 14:42

Теги

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