Como edito o comando shell atual no VI


31

Eu já vi em blogs em máquinas Linux que você pode editar o comando atual do bash shell no VI (ou o que o EDITOR estiver definido) pressionando ctrl-x, ctrl-e.

Isso não parece funcionar no 10.8. Alguma idéia de como editar o comando bash atual no editor padrão?


Isso deve funcionar em 10.8 (pelo menos para mim). Você tentou desabilitar FCEDIT e EDITOR?
Nohillside

A documentação do C-xC-e está aqui - o que há na sua VISUALvariável?
Glenn Jackman

não é sobre 10.8. Estou no 10.8 e funciona bem comigo. Não alterei nada no meu .bash_profile para ativar isso.
Vincent


1
Acabei de perceber que estava fazendo Ctrl + (x, e) (mantendo pressionada a tecla Ctrl, pressionando x, pressionando e, liberando o controle) - é por isso que não funcionou para mim. Quando mudei para pressionar duas teclas claras Ctrl-x, solte Ctrl, Ctrl-e - tudo começou a funcionar perfeitamente!
precisa

Respostas:


32

Você deseja set -o vi(adicione-o ao seu ~/.bashrc). Em seguida, para editar a linha atual, basta pressionar Escpara entrar no modo de comando.

Consulte http://www.gnu.org/software/bash/manual/bashref.html#Readline-vi-Mode

Para editar o comando atual em um editor de tela cheia, defina sua VISUALvariável de ambiente como vim(presumo que você queira vim) e, em modo de comando no comentário atual, pressione v.


5
pressionar o "v" era o molho secreto que estava faltando. obrigado.
Scott Walter

2
É possível obter este vcomando no modo emacs (não-vi)?
Alex Kahn

10
Basta pressionar Ctrl-X e Ctrl-E.
albapa

7

Você edit-and-execute-commandpode não estar vinculado ao vimodo. Experimentar:

bind -m vi-insert '"\C-x\C-e": edit-and-execute-command'

Para torná-lo permanente, adicione essa linha ao seu ~/.inputrcarquivo.

(por meio desta resposta ; agrade a @unforgettableid pelo link)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.