perdendo o modo vi no terminal

5

Meu editor de texto favorito sendo o VIM me fez adicionar a seguinte linha ao meu ~ / .bashrc

set -o vi

Como esperado, bater escape me permite executar um comando vi, mas apenas um?!? Por exemplo, se eu fizer isso:

escape, b, b

ele pula para o começo da palavra e depois digita "b" na linha ao invés de pular outra palavra de volta.

Isso acontece em todas as minhas caixas osx (10.6 e 10.7) e não nos linuxes que eu uso.

Alguém mais experimentando isso? Ou isso é esperado?

anonymous tekkie
fonte
Hmm, funciona como esperado aqui, que outras configurações você definiu? Talvez você possa adicionar a saída de set -o a sua pergunta (ou postá-lo como um comentário para alguém com direitos de edição para adicionar)?
nohillside
Obrigado por isso, eu criei um ~/.bashrc com apenas set -o vi e parece que o terminal ignora porque set -o mostra emacs em ... investigando mais, sugestões bem-vindas ...
anonymous tekkie
Tente correr bash --norc --noprofile e defina o modo vi manualmente. Se isso funcionar, o problema está em um dos arquivos init.
nohillside
Sim, isso consertou. O terminal osx está iniciando o bash como shell de login. Criou um ~/.profile com if [ -f ~/.bashrc ]; then . ~/.bashrc fi Desta forma, eu só tenho que me preocupar com o RC e posso copiá-lo entre os sistemas. Obrigado por sugestões patrx
anonymous tekkie
1
Estou tendo exatamente o mesmo problema. Eu tenho meu shell padrão definido como zsh em vez de bash e geralmente usam iTerm em vez de termal, mas eu removi meus arquivos .profile e .zshrc e tentei no terminal também e mesmo problema? alguma outra visão?
Kurt Harriger

Respostas:

1

Você pode usar Cx C-e para entrar no modo de edição. Isso usará o vim se o seu $ EDITOR estiver configurado para vim. Além disso, se você mudar para o zsh, existem opções para ter um modo normal de psuedo na linha de comando. Veja este post do blog descrevendo-o: http://www.civet.ws/?p=165

Conner
fonte
1

Se você estiver usando set vi então Cx C-e não abrirá seu editor como Conner sugeriu. Em vez disso, use Esc v .

Anthony DiSanti
fonte
0

Esse problema pode surgir quando você tem os arquivos ~ / .bash_profile (ou ~ / .profile) e ~ / .bashrc com configurações diferentes. Para determinar se esse é o seu problema, tente digitar esses comandos para iniciar um prompt bash "limpo" e definir o modo vi nele:

bash --norc --noprofile
set -o vi

Se as combinações de teclas do vim não desaparecerem após um movimento, continue lendo.

A correção para mim foi a primeira a mudar o ~ / .bash_profile para apenas ler:

[ -r ~/.bashrc ] && . ~/.bashrc

Então eu coloquei o set -o vi opção em ~ / .bashrc.

Para mim, não foi um problema para o .bash_profile se referir exclusivamente ao .bashrc. Notavelmente, ferramentas de linha de comando com instaladores automáticos como [gvm | http://gvmtool.net/] e [rvm | http://rvm.io/] pode manipular seu arquivo .bash_profile, então você pode precisar configurá-lo de volta após uma instalação ou atualização deles.

jonnybot
fonte