1

У меня есть корзина, которая выводит имена хостов на стандартный stdout в следующем формате (обычно это ~ 20 строк):

ldn0000000002;ldn0000000040;ldn00000000055;ldn0000000117;nyk0000000001;nyk0000000002;tky0000000001

Затем я бы исследовал некоторые из них с помощью ssh <hostname> (например, ssh ldn0000000117). Копирование и вставка с использованием Ctrl+[ , arrow-keys , space , arrow-keys , space , а затем Ctrl+] потребует у меня много времени, чтобы выделить текст, который я хочу скопировать.

Возможно ли иметь что-то похожее на автозаполнение, которое мне нужно просто набрать l и нажать какую-нибудь клавишу (например, tab), это обеспечит ldn0000000 для очереди ввода Windows (например :history aka Ctrl+{), а затем нажмите 1 (теперь ldn00000001) и tab будет завершена ldn0000000117?

Выходные данные могут быть переданы в любую ячейку (например, sed) для переформатирования в разделитель новой строки или в любой формат, если требуется.

Альтернативное решение, которое устраняет необходимость arrow-keys , также приветствуется!

У меня нет права собственности на хост, поэтому я не могу изменить какие-либо файлы на удаленном хосте.

1 ответ1

0

Я не знаю, как выполнить автозаполнение. Итак, альтернативный план - улучшить движение курсора.

В режиме копирования / прокрутки вы можете использовать некоторые клавиши перемещения. (с screen(1))

Movement keys:
h, C-h, or left arrow move the cursor left.
j, C-n, or down arrow move the cursor down.
k, C-p, or up arrow move the cursor up.
l ('el') or right arrow move the cursor right.
0 (zero) or C-a move to the leftmost column.
+ and - positions one line up and down.
H, M and L move the cursor to the leftmost column of the top, center or bottom line of the window.
| moves to the specified absolute column.
g or home moves to the beginning of the buffer.
G or end moves to the specified absolute line (default: end of buffer).
% jumps to the specified percentage of the buffer.
^ or $ move to the leftmost column, to the first or last non-whitespace character on the line.
w, b, and e move the cursor word by word.
B, E move the cursor WORD by WORD (as in vi).
f/F, t/T move the cursor forward/backward to the next occurence of the target. (eg, '3fy' will move the cursor to the 3rd 'y' to the right.)
; and , Repeat the last f/F/t/T command in the same/opposite direction.
C-e and C-y scroll the display up/down by one line while preserving the cursor position.
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.

Searching:
? Vi-like search backward.
C-a s Emacs style incremental search forward.
C-r Emacs style reverse i-search.
n Find next search pattern.
N Find previous search pattern.

В твоем случае,

  1. Ctrl+[ - в режим копирования / прокрутки.
  2. ?ldn - поиск слова ldn от текущей позиции курсора.
  3. n - переместить курсор к следующим кандидатам.
  4. space (когда позиция курсора перемещается в соответствии с вашими пожеланиями) установить первую отметку.
  5. e - переместить курсор в конец слова.
  6. space - установить вторую метку и завершить режим копирования / прокрутки.

Клавиши со стрелками нигде не появятся. :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .