LINUX.ORG.RU

А в чём смысл данного преобразования для кода плагина vim? Неужто плагин, код которого сохранён с досовскими переносами строк, работает иначе? Или просто перфекционизм?

Иными словами, чем чревато просто ничего не менять?

unterwulf
()

dos2unix

vim

Прямой зависимости нет.

И даже iconv его не тащит.

Так что всё зависит от мейнтейнеров твоего дистрибутива, который ты забыл озвучить.

r3lgar ★★★★★
()
Ответ на: комментарий от unterwulf

Неужто плагин, код которого сохранён с досовскими переносами строк, работает иначе?

Ты не поверишь, но Lua при запуске скрипта с CRLF тупо фейлится. Так что не удивлюсь, что и вимоскрипты тоже будут выделываться.

r3lgar ★★★★★
()

А, лол, так у тебя плагинопроблемы… Тогда да, замени его на iconv, который есть почти везде. Только прежде чем сносить dos2unix прочитай его документацию, чтобы понимать что на что менять.

r3lgar ★★★★★
()

Убрать бы зависимость от dos2unix. Но как это сделать с помощью стандартных утилит?

«Стандартные» — это какие?

Ну, например, так, емнип:

$ gawk -v RS='\r\n' '1' plugin/qfixtoggle.vim
Zmicier ★★★★★
()

Добро пожаловать на lfs.

anonymous
()

Учитывая, что речь идёт про плагин к vim, проще всего написать и исполнить скрипт на viml и заменить dos2unix на вызов vim.

Кривой(не знаток я viml) пример:

echo test > test; vim -c '%s/e/E/g' test -c "write" -c "quit"

pon4ik ★★★★★
()
Ответ на: комментарий от pon4ik

Только, видимо, нужно ещё отключить загрузку vimrc.

pon4ik ★★★★★
()
Ответ на: комментарий от unterwulf

Да нэт. Мне это надо сделать в пакетном режиме из-под вима. Постхук в плагин менеджере же

bryak ★★★★
() автор топика

есть аналог dos2unix/unix2dos в одном флаконе — flip

я им давно пользуюсь.

а так по-идее sed -i 's/\r//' dosfile

$ file ppp1.txt 
ppp1.txt: ASCII text, with CRLF line terminators

$ sed -i 's/\r//' ppp1.txt 

$ file ppp1.txt 
ppp1.txt: ASCII text
futurama ★★★★★
()
Ответ на: комментарий от bryak
$ wget https://raw.githubusercontent.com/vim-scripts/QFixToggle/master/plugin/qfixtoggle.vim

$ file qfixtoggle.vim
qfixtoggle.vim: ASCII text, with CRLF line terminators

$ sed -i 's/\r//' qfixtoggle.vim

$ file qfixtoggle.vim
qfixtoggle.vim: ASCII text
futurama ★★★★★
()
Ответ на: комментарий от futurama

Plug 'vim-scripts/QFixToggle', { 'do': 'sed -i -e s/\r// plugin/qfixtoggle.vim' }

после установки плагина пишет:

Error detected while processing /home/user/.vim/plugged/QFixToggle/plugin/qfixtoggle.vim:
line    8:
E15: Invalid expression: exists('g:QFixToggle_Loaded')^M
line   54:
E171: Missing :endif
Press ENTER or type command to continue

bryak ★★★★
() автор топика
Ответ на: комментарий от bryak

Как правильно впихнуть s/\r// в команде vimrc это уже твоя проблема

futurama ★★★★★
()

Нашел способ выполнить sed через функцию. Всем спасибо за помощь!

bryak ★★★★
() автор топика
Ответ на: комментарий от anonymous

Только на месте ex может elvis какой-нибудь оказаться.

Красота требует жертв. Тут более интересен ключ -s и + вместо -c. Эстетам, пользующимся vim в параллель с elvis, просьба заменять ex на vim -e.

unterwulf
()
Ответ на: комментарий от unterwulf

и + вместо -c

А что тут интересного? По-моему, просто более короткая запись. А так, действительно, «без дребезга».

anonymous
()
Ответ на: комментарий от anonymous

А что тут интересного?

Интересно узнавать новое. Ещё сегодня днём я не знал ни про + вместо -c, ни про ++opt при :w (использовал только с :e).

По-моему, просто более короткая запись.

В спортивных забавах по составлению однострочников длина имеет значение.

unterwulf
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.