Я хотел бы добавить ответ, который, я думаю, может быть столь же полезным. Выбранный ответ всегда удаляет EOL для файлов, даже если они были с самого начала. Это может быть поведение, которое вы хотите, оно также может не быть. По моему мнению, я хочу сохранить EOL, как я первоначально открыл файл.
Я предлагаю небольшую модификацию. Поместите set binary
вверху вашего .vimrc
файла. Таким образом, любые файлы будут открываться в двоичном режиме. Если у них нет EOL, тогда vim обнаружит это и оставит это как NOEOL. Если у них есть EOL, он распознает его как EOL и оставит его.
Если вы хотите, чтобы новые файлы также не имели EOL, вам следует установить
au BufNewFile * set noeol
Команды для этого парня будут такими, если вы всегда хотите NOEOL когда-либо . Следует помнить одну вещь: если у вас есть файл с пробелами внизу, в конце вы потеряете пробелы. Это потому, что происходит следующее,
- VIM читает файл и видит новую строку в конце и думает, хорошо, это файл с новой строкой (независимо от того, в двоичном режиме или нет).
- Когда вы затем пишете файл, он выполняет autocmd,
- установить двоичный режим
- set noeol (удаляет EOL, который VIM думал, что заканчивает файл, и удаляет его.
- файл сохраняется
- Теперь у вас есть файл, в котором на один EOL меньше.
Этот процесс будет повторяться до тех пор, пока не исчезнут EOL и файл не завершится одним символом. С моей настройкой происходит, что файл открывается, и если VIM видит минимум один EOL, он сохраняет его внутри. Если вы сохраняете этот файл, независимо от того, где он находится (вы можете проверить, набрав set eol?
. В случае, если вы хотите избавиться от этого внутренне сохраненного EOL, просто скажите set noeol
, а затем сохраните и BOOM , последний EOL удален.
WHOOO, мне не терпится набрать это.