Acho que o recurso que o OP está procurando é chamado de dabbrev-expand no mundo do Emacs:
Expand the word in the buffer before point as a dynamic abbrev, by searching in the buffer for words starting with that abbreviation (v-expand).
xterm
também tem dabbrev-expand
mas é um pouco menos inteligente que o Emacs mas é muito útil para mim e uma foi uma das razões pelas quais eu mudei para xterm
. Dentro da janela xterm
, pode-se usar uma atadura de tecla personalizada especificada em ~/.Xresources
para invocar dabbrev-expand
em uma determinada string. Por exemplo, eu tenho a seguinte entrada no meu ~/.Xresources
(eu uso uxterm
, uma versão Unicode do xterm):
UXTerm*VT100.Translations: #override \n\
Meta <Key>/:dabbrev-expand() \n\
Dentro da janela xterm
, posso usar M-/
( ALT + /
) para invocar dabbrev-expand
. xterm
procurará todas as cadeias visíveis na tela que começam com as letras que eu digitei. Exemplo:
$ echo a_very_long_string bye by
$ a_v
Se eu pressionasse M-/
now xterm
expandiria a_v
para a_very_long_string
. Infelizmente, como eu disse, xterm
não é tão inteligente e seu recurso dabbrev-expand
funcionará somente em strings completas. Assim, no seu caso, is
seria expandido para issue540
e não issue547314
porque issue547314
é uma parte de origin/issue547314
(pense nisso como \b
em expressões regulares, é um pouco semelhante, embora a maioria seja regular mecanismos de expressões detectariam as ocorrências de issue
strings em \bissue.+\b
). Mas , você pode digitar or
e, em seguida, pres M-/
. xterm
primeiro expandirá or
para origin/v2.1
, isso não é o que queremos, então pressione M-/
novamente e xterm
expandirá para origin/issue547314
. Agora, se você usar o Bash, poderá fazer M-b
, C-w
e C-e
para remover origin/
part. Resumindo, dabbrev-expand
inside xterm
não é tão bom quanto no Emacs (e Vim, eu acho), mas ainda é mais rápido do que reescrever strings longas manualmente e menos propenso a erros de digitação. E na maioria dos casos, ele se expandirá diretamente para a string desejada sem a necessidade de remover as partes redundantes. Você só precisa se acostumar com isso - veja a string que deseja ter no cursor e veja se ela não é precedida por outra coisa, e se é digitar uma parte anterior e removê-la após a expansão.
Observe que xterm
não é compilado com o recurso dabbrev-expand
por padrão e você precisa ativá-lo explicitamente. No entanto, a versão de xterm
nos repositórios do Ubuntu é compilada com dabbrev-expand
e você pode usá-la imediatamente.