Estou com um problema estranho vim
no Snow Leopard: recebo um código de saída diferente de zero simplesmente executando vim
e saindo .
$ vim
# exit immediately using :q
$ echo $?
1
No entanto, se eu usar o caminho completo para vim
, não vejo esse comportamento
$ /usr/bin/vim
# exit immediately using :q
$ echo $?
0
No começo, pensei que vim
estava vindo de algum lugar mais cedo no meu caminho, mas:
$ which vim
/usr/bin/vim
Então, eu estou perdida. O que poderia estar causando isso?
ATUALIZAÇÃO: Esse problema resolveu-se magicamente, o que me deixa altamente desconfiado. Minha melhor teoria atual é que tive um problema com meu .vimrc
plug-in ou com um plug-in que corrigi acidentalmente enquanto aprimorava minha configuração de alguma outra maneira. Se eu puder rastrear exatamente o que fiz para corrigi-lo, definitivamente atualizarei com essas informações. Obrigado pelas respostas.
-u NONE
, o que diz ao vim para carregar nenhum arquivo de configuração. Pode ajudar em algumas situações.Respostas:
Você tem
filetype off
no seu vimrc? Tente substituí-lo por:Eu tive esse problema usando o Pathogen de Tim Pope no OS X. Este artigo me ajudou a resolver o problema. Se você estiver usando o Pathogen ...
... faça isso:
http://andrewho.co.uk/weblog/vim-pathogen-with-mutt-and-git
fonte
.vimrc
.filetype on
acima do existentefiletype off
.Eu posso pensar em duas explicações possíveis.
vim
é realmente um apelido. Note-se quewhich
não mostra aliases, você deve usartype
em vez (a menos que você estiver executando csh ou tcsh).O Vim procura algum arquivo em um caminho relativo ao seu diretório de instalação, que ele determina ao olhar
argv[0]
(o nome do executável como passado no shell) e, de alguma forma, falha em encontrar esse caminho se for chamado por um caminho relativo. Isso seria tecnicamente possível, mas não acho que o Vim realmente faça isso.fonte
Isso não acontece aqui, com um sistema semelhante: Snow Leopard e a versão de estoque do Vim.
Tente este comando:
Isso fornecerá uma lista de todos os syscalls que o Vim faz enquanto inicializa e, em seguida, é encerrado imediatamente. (
dtruss
é equivalente aostrace
Linux, se você já usou isso antes.)O que você procura é uma linha próxima ao final que mostre um código de erro, normalmente -1. Examinar os argumentos para a chamada do sistema deve levar você ao problema. Uma possibilidade de alta probabilidade é um arquivo ausente, que provavelmente aparecerá em uma
open()
chamada.Se o Vim sair corretamente quando for executado dessa maneira, você provavelmente terá um problema de permissão, o que é
sudo
necessário para permitirdtruss
a execução. Nesse caso, você provavelmente pode corrigi-lo reparando permissões .fonte
dtruss
resultado à sua pergunta. (Ou, pelo menos, as últimas 25 linhas, mais ou menos.) O que é incompreensível para você pode levar outro à resposta certa.sudo
"corrigido", informando que precisava executar as Permissões de reparo? Ou foi isso quedtruss
lhe mostrou um erro de syscall e, em caso afirmativo, qual e por que estava falhando?.vim
diretório zipp'd de alguém e.vimrc
, e as coisas tinham caminhos completos e arquivos ausentes de plugins não utilizados.Eu havia atingido esse problema de códigos de retorno. Rastreei-o de volta a um
loadview
comando de execução silenciosa no meu vimrc, que fornece visualizações persistentes:Ao inserir um buffer sem um nome de arquivo,
silent! loadview
ele executaria, ocultando o erroo que também fez com que o código de retorno fosse definido como um.
fonte