vim end-of-line eof

Vim no final de línea en la última línea o eof



end-of-line (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

Por lo tanto, debe usar vim -b o :e ++bin file , o recargar usando :e! ++bin :e! ++bin .

Estoy tratando de configurar vim para omitir agregar eol en la última línea o eof, he intentado esto

:set binary :set noeol :w

lo cual no es perfecto, ya que se usa para reemplazar el archivo de código binario.

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


Esto es aún mejor que encontré en alguna parte:

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


Quería agregar una respuesta que creo que puede ser tan útil. La respuesta seleccionada siempre elimina el EOL en los archivos, incluso si tenían uno para empezar. Este puede ser el comportamiento que desea, también puede no ser. En mi opinión, quiero conservar el EOL ya que originalmente abrí el archivo.

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

Si desea que los archivos nuevos no tengan EOL, entonces debe configurar,

au BufNewFile * set noeol

Los comandos para el capítulo serían si siempre quieres NOEOL. Lo único que hay que tener en cuenta es que si tiene un archivo con espacios en la parte inferior, perderá espacios al final. Esto es porque sucede lo siguiente,

  1. VIM lee el archivo y ve una nueva línea al final y piensa, OK, este es un archivo con una nueva línea (independientemente de si está en modo binario o no).
  2. Cuando luego escribe un archivo ejecuta el autocmd,
    1. establecer el modo binario
    2. set noeol (esto elimina el EOL que VIM pensó que estaba finalizando el archivo y lo elimina).
    3. el archivo se guarda
  3. Ahora tienes un archivo que tiene un EOL menos en él.

Este proceso se repetirá hasta que los EOL desaparezcan y el archivo finalice con un solo carácter. Con mi configuración, lo que sucede es que el archivo se abre y si VIM ve al menos un EOL, entonces lo guarda internamente. Si guarda ese archivo, no importa lo que esté allí (puede verificar escribiendo set eol? En el caso de que desee deshacerse de esa EOL almacenada internamente, simplemente diga set noeol y luego guarde y BOOM , la última EOL es removido.

WHOOO, estoy sin aliento escribiendo esto.


Se me ha ocurrido esto:

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

Gracias a todos.

Aclamaciones.