!1255:p
Isso será feito
!
é a rechamada da história
1255
é o número da linha que% :p
imprime, mas não executa
Em seguida, você pode usar a seta para cima para obter o comando anterior (não executado) de volta e alterá-lo conforme necessário.
Costumo combinar isso com hg
("Histórico Grep") - meu alias favorito.
$ alias hg # Maybe use hgr instead if you are a Mercurial CLI user.
alias hg='history | tail -200 | grep -i'
Isso procura texto em uma linha do histórico recente, independentemente do caso, e é usado desta maneira:
Quando quero procurar comandos vi recentes para editar um determinado arquivo e, em seguida, quero reutilizar um deles para editar o mesmo arquivo, mas com uma extensão de arquivo diferente.
$ hg variables
6153 vi Variables/user-extensions.js
6176 vi Variables/user-extensions.js
6178 vi Variables/user-extensions.js
6190 vi Variables/user-extensions.js
6230 hg variables
$ # Notice the difference in case with V and v is ignored
$ !6190:p
vi Variables/user-extensions.js
$ ["up-arrow"]
$ vi Variables/user-extensions.[now change .js to .html]
Eu também defino hga
("Histórico Grep All") para pesquisar toda a minha história:
$ alias hga
alias hga='history | grep -i'
mas eu não uso muito porque minha história é (intencionalmente) muito grande e eu recebo muita saída que depois afeta a rolagem de volta através de páginas no meu terminal.