Me encuentro con un problema un poco extraño con vimSnow Leopard: obtengo un código de salida distinto de cero simplemente ejecutando vimy luego cerrando.
$ vim
# exit immediately using :q
$ echo $?
1
Sin embargo, si uso la ruta completa a vim, no veo este comportamiento
$ /usr/bin/vim
# exit immediately using :q
$ echo $?
0
Al principio pensé que vimvenía de algún lugar anterior en mi camino, pero:
$ which vim
/usr/bin/vim
Entonces estoy perdido. ¿Qué podría estar causando esto?
ACTUALIZACIÓN: Este problema se ha resuelto mágicamente, lo que me hace sospechar mucho. Mi mejor teoría actual es que tuve un problema con mi .vimrco un complemento que arreglé accidentalmente mientras modificaba mi configuración de alguna otra manera. Si puedo rastrear exactamente lo que hice para solucionarlo, definitivamente actualizaré con esa información. Gracias por las respuestas

-u NONE, que le dice a vim que no cargue ningún archivo de configuración. Podría ayudar en algunas situaciones.Respuestas:
¿Tienes
filetype offen tu vimrc? Intenta reemplazarlo con:Tuve este problema usando el Patógeno de Tim Pope en OS X. Este artículo me ayudó a resolver el problema. Si está utilizando patógenos ...
... haz esto en su lugar:
http://andrewho.co.uk/weblog/vim-pathogen-with-mutt-and-git
fuente
.vimrc.filetype onencima de lo existentefiletype off.Se me ocurren dos posibles explicaciones.
vimEn realidad es un alias. Tenga en cuenta quewhichno muestra alias, debe usartypeen su lugar (a menos que esté ejecutando csh o tcsh).Vim va a buscar algún archivo en una ruta relativa a su directorio de instalación, que determina al mirar
argv[0](el nombre del ejecutable como se pasa desde el shell), y de alguna manera no puede encontrar esa ruta si se llama a través de una ruta relativa. Eso sería técnicamente posible, pero no creo que Vim realmente lo haga.fuente
Eso no sucede aquí, con un sistema similar: Snow Leopard y la versión estándar de Vim.
Prueba este comando:
Eso le dará una lista de todas las llamadas de sistema que hace Vim mientras se inicializa y luego se apaga inmediatamente. (
dtrusses equivalente astraceen Linux, si lo ha usado antes).Lo que está buscando es una línea cerca del final que muestre un código de error, generalmente -1. Mirar los argumentos de la llamada al sistema debería llevarlo al problema. Una posibilidad de alta probabilidad es la falta de un archivo, que probablemente aparecerá en una
open()llamada.Si Vim sale limpiamente cuando se ejecuta de esta manera, probablemente tenga un problema de permiso, que es
sudonecesario para permitirdtrussque se ejecute. En ese caso, probablemente pueda solucionarlo reparando los permisos .fuente
dtrussresultado a su pregunta. (O al menos, las últimas 25 líneas más o menos.) Lo que es incomprensible para usted puede llevar a otro a la respuesta correcta.sudo"solucionó" y le hizo saber que necesitaba ejecutar los permisos de reparación? ¿O fue más bien lo que ledtrussmostró un error de syscall, y si es así, cuál y por qué estaba fallando?.vimdirectorio zipp'd de alguien más.vimrc, y las cosas tenían rutas completas y archivos faltantes de complementos no utilizados.Había golpeado este problema de códigos de retorno. Lo
loadviewrastreé hasta un comando de ejecución silenciosa en mi vimrc que proporciona vistas persistentes:Al ingresar un búfer sin un nombre de archivo,
silent! loadviewse ejecutará, ocultando el errorlo que también provocó que el código de retorno se estableciera en uno.
fuente