Size: a a a

2021 May 27

VG

Vadim Goncharov in pro.vim
"<F7> EOL format (dos <CR><NL>,unix <NL>,mac <CR>) 
set  wildmenu
set  wcm=<Tab>
menu EOL.unix :set fileformat=unix<CR>
menu EOL.dos  :set fileformat=dos<CR>
menu EOL.mac  :set fileformat=mac<CR>
map  <F7> :emenu EOL.<Tab>

собсно vim до сих пор по-старому мак считает, до OS X
источник

П

Пашечка in pro.vim
Ну, я хз, какие были первые принтеры и насколько им были реально необходимы эти символы, но в любом случае это голая калька в действий машинистки, которая вручную прокручивала барабан для новой строки и сдвигала каретку в левое крайнее положение.

А различать вывод надо, и некоторые терминалы это делают. Пример с \r выше есть, а вот с \n надо старые терминалы потыкать.
Юзкейс того, где это нужно:
1) Про \r: реализация прогресс бара в консоли. Тут всё очевидно. Но при выводе в файл всё будет выведено кучей строк. Не очень, но приемлемо.
2) Про \n: Вывод иерархической структуры. Выводишь имя директории, делаешь только \n, и сразу печатаешь имя файла из этой директории. Директория закончилась - делаешь \r\n. И не надо считать длину выведенного имени, всё крайне просто. Однако при выводе в файл такой структуры не будет.

Крч, я считаю, что это всё на сегодняшний день выглядит несколько кривовато. Ну, то есть, все юзкейсы, которые я описал, вполне решаются другими способами сегодня, и работают не хуже, а то и лучше, но вот именно поэтому это всё не нужно. Имхо, нужен всего один символ "новая строка", а для реализации "123\r45" = "453" надо просто брать кусок буфера вывода терминала/файла и орудовать с ними.
источник

VG

Vadim Goncharov in pro.vim
были реально необходимы; ну, считай
источник

goldstein опять in pro.vim
Нельзя просто так взять «кусок буфера терминала». Нет для этого специальных команд.
источник

goldstein опять in pro.vim
Есть команда «перейти в нужную клетку»
источник

goldstein опять in pro.vim
И усё
источник

П

Пашечка in pro.vim
А кто мешает сделать?
источник

goldstein опять in pro.vim
Сейчас процессы общаются с терминалом только через stdin/out
источник

VG

Vadim Goncharov in pro.vim
наследие 70-х
источник

goldstein опять in pro.vim
Чтобы это сделать, тебе придётся линковать? команды? к терминалу? wtf
источник

goldstein опять in pro.vim
Как ты это себе вообще представляешь?
источник

VG

Vadim Goncharov in pro.vim
это можно сделать, если это будет не терминал, а консоль, как в Win32
источник

П

Пашечка in pro.vim
Сделать аналог cout/cerr. Аля

char* buff = cout - 1;
источник

goldstein опять in pro.vim
Чего.
источник

goldstein опять in pro.vim
Угу, а по ssh?
источник

П

Пашечка in pro.vim
Того. Короче, технических проблем сделать это нет. Кроме огромного наследия старых лет, как верно заметили ранее.
источник

VG

Vadim Goncharov in pro.vim
лолшто
источник

VG

Vadim Goncharov in pro.vim
придется придумывать определенный протокол
источник

goldstein опять in pro.vim
Угу, или десять.
источник

VG

Vadim Goncharov in pro.vim
но, в общем, поэтому портирование Far Manager с винды на юниксы было иксовым приложением
источник