Auto Completa para a fila de entrada do Windows a partir de texto na tela impressa

1

Eu tenho um bin que gera nomes de host para stdout no seguinte formato (geralmente, são ~ 20 linhas):

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

Em seguida, investigaria vários deles por ssh <hostname> (por exemplo, ssh ldn0000000117 ). Copie e cole usando Ctrl+[ , arrow-keys , space , arrow-keys , space e, em seguida, Ctrl+] levaria muito tempo para destacar o texto que desejo copiar.

É possível ter algo semelhante ao preenchimento automático, que eu só tenho que digitar l e acertar alguma chave (por exemplo, tab ) que forneça ldn0000000 para a fila de entrada do windows (como :history aka Ctrl+{ ) e, em seguida, pressione 1 (agora ldn00000001 ) e tab concluiria ldn0000000117 ?

A saída pode ser canalizada para qualquer caixa (por exemplo, sed ) para reformatar a nova linha delimitada ou qualquer formato, se necessário.

Solução alternativa que elimina a necessidade de arrow-keys também é bem-vinda!

Eu não tenho propriedade do host, então não posso alterar nenhum arquivo no host remoto.

    
por Kelvin Ng 28.04.2014 / 21:54

1 resposta

0

Eu não sei como completar automaticamente. Então, o plano alternativo é melhorar o movimento do cursor.

No modo de cópia / rolagem, você pode usar algumas teclas de movimento. (de 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.

No seu caso,

  1. Ctrl+[ - no modo de cópia / rolagem.
  2. ?ldn - busca para trás uma palavra ldn da posição atual do cursor.
  3. n - move o cursor para os próximos candidatos.
  4. space (quando a posição do cursor se move para os seus desejos) defina a primeira marca.
  5. e - move o cursor para o final de uma palavra.
  6. space - define a segunda marca e finaliza o modo de cópia / rolagem.

As setas não aparecem em nenhum lugar. :)

    
por 29.04.2014 / 05:00