Eu costumava ter um colega de trabalho muito bom no UNIX.
Ele me mostrou como usar as teclas de atalho Vi para editar meus comandos de shell.
Ele colocou o comando em um arquivo que era executado toda vez que eu fazia login.
Desde então, mudei para um projeto diferente.
Infelizmente, não me lembro de como configurar isso.
Existe alguém aqui que sabe como usar as combinações de teclas Vi para editar comandos no terminal?
Como posso tornar essa configuração permanente?
vi bindings in the shell
a maior característica já inventada!jj
comESC
como costumamos fazer no vim?Se você estiver usando o bash, como jahroy e evil otto já responderam, você pode usar
para fazer com que o bash use comandos de edição no estilo vi.
Depois de fazer isso, você pode digitar Esc vpara iniciar o editor vi com um arquivo temporário contendo uma cópia da linha de comando atual. Você pode editar o comando, mesmo substituindo-o por várias linhas; quando você salvar o arquivo (
:wq
), o shell executará os comandos editados.Se você preferir
você pode usar Ctl-XCtl-Epara fazer a mesma coisa. Ele usará seu editor preferido
$EDITOR
, não necessariamente o emacs.(Pessoalmente, eu uso o vi (na verdade, vim) na maior parte da minha edição, mas prefiro
set -o emacs
no shell; alternar entre o modo de inserção e saída é ótimo para editar arquivos, mas estranho para comandos interativos. YMMV.)fonte
set -o emacs
faz o que você quer?Você pode usar
set -o vi
para alterar seus comandos de edição de linha como @jahroy postado, mas você pode estar pensando nofc
comando (disponível no bash e acho que ksh, mas provavelmente não tcsh), que colocará o comando anterior em um editor (FCEDIT ou EDITOR , que você provavelmente configurou para vi) e, em seguida, executa o comando quando você sai do editor. Veja a página de manual ouhelp fc
para detalhes, ou apenas experimente.fonte
alias r='fc -e -'
é um alias valioso para executar novamente comandos anteriores.fc
por si só se originou na casca Korn, eu acredito. Você pode especificar comandos por número (fc 123 129
para editar os números de comando 123 a 129 no histórico). Você pode especificar números relativos (fc -10 -1
para editar os últimos 10 comandos digitados). Você pode listar comandos anteriores comfc -l
. Você pode especificar um comando por prefixo com or
alias (r make
executa a última invocação demake
; o mesmo acontecer m
se você não tiver executado ummv
comando desde a última execuçãomake
, etc.).Para editar o comando usado mais recentemente no vim e chamar uma versão editada após o editor salvar e sair, use o
fc
shell interno. Sem argumentos, ele fará o seguinte:/tmp
e o preenche com o comando digitado mais recentemente:cquit
).O comando funciona no bash e no zsh.
fonte
De fato, essa é de fato a maior característica de todos os tempos. Mas há mais:
Crie um arquivo chamado
contendo a linha
Editline , é uma biblioteca de versões licenciadas BSD que fornece serviços semelhantes a readline. Esse .editrc configurará suas combinações de teclas para o modo vi no shell de linha de comando do MySQL ou em qualquer aplicativo que não use o readline.
Eu me esqueci um pouco com o passar dos anos, então meu .zshrc fornece alguns wrappers para o modo vi, para me mostrar em que modo estou na linha de comando. É legal.
Eu sei no zsh você pode digitar
e obtenha a lista de combinações de teclas. Tenho certeza que o bash deve ter algo semelhante. Nem todas as chaves do vi estão vinculadas por padrão. Amarre-os como achar melhor e você estará pronto para as corridas.
fonte
no seu terminal, digite
export EDITOR=vi
.Para salvar esta configuração. coloque esta linha no arquivo ~ / .profile
fonte
$EDITOR
) emvi
. Não permite editar comandos do shell comvi
(pelo menos não diretamente).$EDITOR
contémvi
. Eu acho que é a única concha que faz isso.