2010-11-09 768 views
24

estoy tratando de vim configuración para saltar EOL añadiendo en la última línea o EOF, he probado esteVim sin fin de línea en la última línea o EOF

:set binary 
:set noeol 
:w 

que no es perfecto causa binaria tipo de archivo de anulación para más adelante utilizar.

Cualquier otra opción para configurar esto, no necesito nueva línea en la última línea.

+0

La opción binaria no hacer nada para fileType – hobbs

+0

para quien pueda interesar:..? ¿Por qué votar para cerrar esta El FAQ dice que * “software herramientas comúnmente utilizadas por los programadores "* están sobre el tema. – Benoit

+0

@hobbs configurando el archivo en binario deshabilita muchas opciones,: ayuda bin –

Respuesta

7

Esto es incluso mejor que encontré en alguna parte:

au BufWritePre * :set binary | set noeol 
au BufWritePost * :set nobinary | set eol 
+0

También será útil en algunos casos para anteponer 'set noeol' en su .vimrc de forma predeterminada. – FelikZ

4

De la documentación de vim:

'binary' 'bin'  boolean (default off) 
      local to buffer 
      {not in Vi} 
    This option should be set **before** editing a binary file. You can also 

Debe, por tanto, utilizar vim -b o :e ++bin file, o volver a cargar utilizando :e! ++bin.

+0

El binario no funciona para mí, porque restablece el tipo de archivo, ¿hay alguna otra opción para desactivar eol en eof? –

+0

Luego usa ': setf your_file_type' para habilitarlo de nuevo? – Benoit

+0

Necesito esto para archivos php, y es mucho para hackear, habilitar binario, configurar noel, guardar archivo y deshabilitar el binario y establecer el tipo de archivo. También uso NERDTree, que probablemente tendría que hackear para obtener esta funcionalidad. –

1

he ocurrió esto:

" php remove eol from end of file 
autocmd FileType php setlocal noeol binary fileformats="mac,unix,dos" 

Gracias a todos.

Saludos.

15

que quería añadir una respuesta que creo que puede ser tan útil. La respuesta seleccionada siempre eliminar el EOL en los archivos, incluso si tenían uno para empezar. Este puede ser el comportamiento que desea, también puede no serlo. En mi opinión quiero preservar el EOL como originalmente abrí el archivo.

Lo que sugiero es una ligera modificación. Ponga set binary en la parte superior de su archivo .vimrc. De esta forma, cualquier archivo se abrirá en modo binario. Si no tienen EOL, vim detectará esto y lo dejará NOEOL. Si tienen una EOL, entonces reconocerán que tiene una EOL y la dejarán en paz.

Si desea nuevos archivos a tampoco tienen EOL entonces usted debe fijar,

au BufNewFile * set noeol 

Los comandos para el cap serían si siempre quieren NOEOL vez. Lo único que debe tenerse en cuenta es que si tiene un archivo con espacios en la parte inferior, perderá espacios al final. Esto se debe a lo siguiente ocurre,

  1. VIM lee el archivo y ver una nueva línea al final y piensa, OK, esto es un archivo con un salto de línea (con independencia de que en modo binario o no).
  2. Cuando a continuación, escribe un archivo que ejecuta el autocmd,
    1. modo binario establecer
    2. conjunto noeol (esto elimina la EOL que VIM pensó estaba terminando el archivo y lo elimina.
    3. el archivo se guardado
  3. Ahora tiene un archivo que tiene una EOL menos en él.

Este proceso se repetirá hasta que las EOL se hayan ido y el archivo termine en un solo carácter. Con mi configuración, lo que ocurre es que el archivo se abre y si VIM ve en menos una EOL, entonces la mantiene internamente. Si guarda ese archivo, no importa qué esté allí (puede verificarlo escribiendo set eol?. En el caso de que desee deshacerse de ese EOL almacenado internamente, simplemente diga set noeol y luego guarde y BOOM, la última EOL es . eliminado

WHOOO, estoy escribiendo este aliento

Cuestiones relacionadas