2010-11-09 4 views
24

Я пытаюсь настроить Vim пропустить добавление EOL на последнюю строке или ВФ, я попробовал этотVim нет конца строки на последнюю строку или EOF

:set binary 
:set noeol 
:w 

, который не является идеальной причиной двоичной переопределение Filetype для последующего использования использовать.

Любой другой вариант, чтобы установить это, мне не нужна новая строка на последней строке.

+0

двоичный параметр не делает ничего, чтобы FILETYPE – hobbs

+0

для кого это может касаться:..? Почему вы голосуете, чтобы закрыть этот справку говорит, что * «программное обеспечение инструменты, обычно используемые программистами »* по теме. – Benoit

+0

@hobbs файл настроек для двоичного кода отключает множество опций:: help bin –

ответ

7

Это даже лучше, я нашел где-то:

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

Также в некоторых случаях будет полезно добавить «set noeol» в ваш .vimrc по умолчанию. – FelikZ

4

Из 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.

+0

Двоичный файл не работает для меня, потому что он сбрасывает тип файла, любой другой параметр для отключения eol на eof? –

+0

Затем используйте ': setf your_file_type', чтобы включить его обратно? – Benoit

+0

Мне нужно это для php-файлов, а также для многократного взлома, включения двоичных файлов, установки noel, сохранения файла и отключения функции двоичного и установочного файла. Я также использую NERDTree, который, вероятно, придется взломать, чтобы получить эту функциональность. –

1

Я пришел с этим:

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

Спасибо всем.

Cheers.

15

Я хотел бы добавить ответ, который я думаю, что может быть полезным. Выбранный ответ всегда удаляет EOL по файлам, даже если у них был один для начала. Это может быть поведение, которое вы хотите, оно также может и не быть. По-моему, я хочу сохранить EOL, поскольку я изначально открыл файл.

Что я предлагаю, это небольшая модификация. Поместите set binary в начало вашего файла .vimrc. Таким образом, любые файлы будут открываться в двоичном режиме. Если у них нет EOL, тогда vim обнаружит это и оставит его NOEOL. Если у них есть EOL, тогда он распознает его как EOL и оставьте его.

Если вы хотите новых файлов также не имеют EOL, то вы должны установить,

au BufNewFile * set noeol 

Команды для гла будет, если вы всегда хочет NOEOL когда-либо. Единственное, о чем нужно знать, это то, что если у вас есть файл с пробелами внизу, вы потеряете пробелы в конце. Это происходит потому, что происходит следующее,

  1. VIM читает файл и увидеть символ новой строки в конце, и думает, хорошо, это файл с новой строки (независимо от того, в двоичном режиме или нет).
  2. Когда вы затем записать файл, он выполняющий autocmd,
    1. установить двоичный режим
    2. набор noeol (это удаляет EOL, что ВИМ думал заканчивался файл и удаляет его.
    3. файл получает сохранено
  3. Теперь у вас есть файл с одним EOL в нем.

Этот процесс будет повторяться до тех пор, пока EOL не исчезнет, ​​и файл закончится на один символ. С моей настройкой, что происходит, файл открывается, и если VIM видит в наименее один EOL, он сохраняет его внутри. Если вы сохраните этот файл, независимо от того, что он там (вы можете проверить, набрав set eol?. В случае, если вы хотите избавиться от встроенного EOL, вы просто скажете set noeol, а затем сохраните и BOOM, последний EOL . удален

Whooo, я наматывается печатаю это

 Смежные вопросы

  • Нет связанных вопросов^_^