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.