Ответ 1
Это еще лучше, я нашел где-то:
au BufWritePre * :set binary | set noeol
au BufWritePost * :set nobinary | set eol
Я пытаюсь настроить vim, чтобы пропустить добавление eol на последней строке или eof, я пробовал это
:set binary
:set noeol
:w
который не является идеальной причиной двоичного переопределения типа файла для последующего использования.
Любая другая опция для этого, я не нуждаюсь в новой строке в последней строке.
Это еще лучше, я нашел где-то:
au BufWritePre * :set binary | set noeol
au BufWritePost * :set nobinary | set eol
Я хотел добавить ответ, который, по моему мнению, может быть полезен. Выбранный ответ всегда удаляет EOL на файлах, даже если у них есть один для начала. Это может быть поведение, которое вы хотите, оно также может и не быть. По-моему, я хочу сохранить EOL, поскольку я изначально открыл файл.
Я предлагаю небольшую модификацию. Поместите set binary
вверху вашего файла .vimrc
. Таким образом, любые файлы будут открываться в двоичном режиме. Если у них нет EOL, тогда vim обнаружит это и оставит его NOEOL. Если у них есть EOL, тогда он распознает его как EOL и оставьте его.
Если вы хотите, чтобы новые файлы также не имели EOL, вы должны установить
au BufNewFile * set noeol
Команды для chap будут, если вы всегда хотите NOEOL когда-либо. Единственное, о чем нужно знать, это то, что если у вас есть файл с пробелами внизу, вы потеряете пробелы в конце. Это происходит потому, что происходит следующее:
Этот процесс будет повторяться до тех пор, пока EOL не исчезнет, и файл закончится одним символом. С моей установкой, что происходит, файл открывается, и если VIM видит хотя бы один EOL, он сохраняет его внутри. Если вы сохраните этот файл, независимо от того, что он там (вы можете проверить, набрав set eol?
. В случае, если вы хотите избавиться от встроенного EOL, вы просто скажете set noeol
, а затем сохраните и BOOM, последний EOL удаляется.
WHOOO, я накручиваю это.
Из документации 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
Поэтому вы должны использовать vim -b
или :e ++bin file
, или перезагрузите с помощью :e! ++bin
.
Я придумал это:
" php remove eol from end of file
autocmd FileType php setlocal noeol binary fileformats="mac,unix,dos"
Спасибо всем.
Приветствия.