LINUX.ORG.RU

vim-instant-markdown

 , , , ,


1

1

Всем доброго времени!
Есить плагин для редактора Vim под названием vim-instant-markdown, который позволяет отображать изменения, вносимые в файлы Markdown (*md) в режиме реального времени, открывая при этом вкладку указанного браузера, ну или браузера по умолчанию, если не указано иное.
Плагин очень дельный и мне очень он очень нравится в плане реализации, но не могу осуществить в нем одну вещь.
А именно то, чтобы положение курсора в Vim отображалось на том же месте, где он находится в браузере и наоборот.
Делаю все как написано в инструкции по устнатовке по указанной выше ссылке, в которой указано, что нужно установить мини-сервер командой

sudo npm -g install instant-markdown-d

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

sudo apt install npm

Но при его установке в выводе отображается следующее

npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
/usr/local/bin/instant-markdown-d -> /usr/local/lib/node_modules/instant-markdown-d/instant-markdown-d
/usr/local/lib
└── instant-markdown-d@0.2.0-rc.2 

npm WARN ws@7.2.3 requires a peer of bufferutil@^4.0.1 but none was installed.
npm WARN ws@7.2.3 requires a peer of utf-8-validate@^5.0.2 but none was installed.

Подскажите что делаю не так и из-за чего лезут данные ошибки.

Всё ты делаешь правильно. Верхние просто сообщают о выкидываемых штуках. А нижние две зависимости надо ручками поставить, так как автоустановку отключили с 3-й версии nmp.

$ npm install --save-dev bufferutil@^4.0.1

$ npm install --save-dev utf-8-validate@^5.0.2

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

Эти команды не с sudo случайно должны начинаться?
Если нет, то вот их вывод

user@pc:~/wiki$ npm install --save-dev bufferutil@^4.0.1

> bufferutil@4.0.1 install /home/user/wiki/node_modules/bufferutil
> node-gyp-build

npm WARN saveError ENOENT: no such file or directory, open '/home/user/wiki/package.json'
/home/user/wiki
└─┬ bufferutil@4.0.1 
  └── node-gyp-build@3.7.0 

npm WARN enoent ENOENT: no such file or directory, open '/home/user/wiki/package.json'
npm WARN wiki No description
npm WARN wiki No repository field.
npm WARN wiki No README data
npm WARN wiki No license field.
user@pc:~/wiki$ npm install --save-dev utf-8-validate@^5.0.2

> utf-8-validate@5.0.2 install /home/user/wiki/node_modules/utf-8-validate
> node-gyp-build

npm WARN saveError ENOENT: no such file or directory, open '/home/user/wiki/package.json'
/home/user/wiki
└── utf-8-validate@5.0.2 

npm WARN enoent ENOENT: no such file or directory, open '/home/user/wiki/package.json'
npm WARN wiki No description
npm WARN wiki No repository field.
npm WARN wiki No README data

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

Пробовал я подружиться и с этим плагином в том числе.
Тут у меня загвоздка была в том, что этот плагин требует наличия одного из браузеров: Google Chrome, x-www-browser или gnome-www-browser.
Ни одним из указанных браузеров я не пользуюсь, юзаю исключительно лису с тех пор, как перешел с Винды на Линух.
Вот собственно почему…

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

Никаких sudo!

Выполни npm init для создания package.json

Может, ты немного изучишь npm, как он работает, чего хочет и т.п.?

Вообще эта node.js здорово меня раздражает, как с ней народ работает…

wbrer ★★★ ()

Поставь в топике теги JavaScript, node.js, nmp, если сможешь. Вдруг набегут знатоки и помогут.

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

На npm init выдает следующее:

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (wiki) 

Что с этим делать?

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

Доустановил Markdown и xdotool. Теперь при запуске плагина по нажатию клавиш Ctrl+P открывает вкладку в FF, но изменения, которые вносятся в файл не отображаются. Даже обновление страницы в браузере не помогает.
В чем прикол то такого предпросмотра?

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

Этот плагин так же требует наличия npm, а у меня что то с ним пока не ладится…

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

Дистрибутив какой. Npm легко ставится. ты его слегонца попинай, там всё просто.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Вот что выдает при вводе команды npm install -g livedown

user@pc:~/wiki$ sudo npm install -g livedown
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
/usr/local/bin/livedown -> /usr/local/lib/node_modules/livedown/bin/livedown
/usr/local/lib
└── livedown@2.1.1 

npm WARN optional Skipping failed optional dependency /livedown/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.2.12
npm WARN ws@7.2.3 requires a peer of bufferutil@^4.0.1 but none was installed.
npm WARN ws@7.2.3 requires a peer of utf-8-validate@^5.0.2 but none was installed.
parnyagan ()
Ответ на: комментарий от parnyagan

Ну и? Варнинги это не ЕГОГ-Ы

Давай

sudo npm install --save-dev bufferutil@^4.0.1
sudo npm install --save-dev utf-8-validate@^5.0.2

А лучше sudo -i и от рута их, но уже без sudo чтобы sudo не гонять по чём зря... Только потом exit не забудь, когда закончишь.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 5)
Ответ на: комментарий от parnyagan

Сохрани файл

По дефолту он открывает вкладку с отрендеренным Markdown при первом сохранении *.md файла и обновляет её при каждом последующем сохранении

Crocodoom ★★★ ()
Последнее исправление: Crocodoom (всего исправлений: 1)
Ответ на: комментарий от peregrine
root@pc:/home/user/wiki# npm install --save-dev bufferutil@^4.0.1

> bufferutil@4.0.1 install /home/user/wiki/node_modules/bufferutil
> node-gyp-build

wiki@1.0.0 /home/user/wiki
└─┬ bufferutil@4.0.1 
  └── node-gyp-build@3.7.0 

npm WARN wiki@1.0.0 No description
root@pc:/home/user/wiki# npm install --save-dev utf-8-validate@^5.0.2

> utf-8-validate@5.0.2 install /home/user/wiki/node_modules/utf-8-validate
> node-gyp-build

wiki@1.0.0 /home/user/wiki
└── utf-8-validate@5.0.2 

npm WARN wiki@1.0.0 No description
parnyagan ()
Ответ на: комментарий от Crocodoom

Нет, это вообще не вариант ни разу. По каждому разу сохранять и плодить вкладки в браузере… не айс!
Хочется именно чтобы все происходило на лету. Пока что смого добиться этого только в плагинах vim-instant-markdown и livedown.vim, осталось только допилить в них, чтобы в них работала прокрутка так же на лету. Редактирование файла они отображают корректно.

parnyagan ()
Ответ на: комментарий от peregrine
user@pc:~/wiki$ sudo npm install -g livedown
[sudo] пароль для user: 
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
/usr/local/bin/livedown -> /usr/local/lib/node_modules/livedown/bin/livedown
/usr/local/lib
└── livedown@2.1.1 

npm WARN optional Skipping failed optional dependency /livedown/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.2.12
npm WARN ws@7.2.3 requires a peer of bufferutil@^4.0.1 but none was installed.
npm WARN ws@7.2.3 requires a peer of utf-8-validate@^5.0.2 but none was installed.
parnyagan ()
Ответ на: комментарий от parnyagan

Попробуй --no-optional добавить ключик, может он от fsevents ломается?

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine
user@pc:~/wiki$ sudo npm install -g livedown --no-optional
[sudo] пароль для user: 
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
/usr/local/bin/livedown -> /usr/local/lib/node_modules/livedown/bin/livedown
/usr/local/lib
└── livedown@2.1.1 

npm WARN ws@7.2.3 requires a peer of bufferutil@^4.0.1 but none was installed.
npm WARN ws@7.2.3 requires a peer of utf-8-validate@^5.0.2 but none was installed.
parnyagan ()
Ответ на: комментарий от parnyagan

ХЗ, жди экспертов по ноде, Пока раскуривай это:
https://stackoverflow.com/questions/46053414/npm-warn-requires-a-peer-of-but-...
Можешь ещё попробовать закавычить bufferutil@^4.0.1 в предыдущих командах.

Только напиши про название дистрибутива, его версию и версию ноды.

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

Нашел файлы README.md в каталогах с этими модулями, попробовал сделать как написано там.

user@pc:~/wiki$ npm install --save-dev bufferutil@^4.0.1
npm WARN wiki@1.0.0 No description
user@pc:~/wiki$ npm install utf-8-validate --save-optional
npm WARN wiki@1.0.0 No description

ругается на какой-то description, а вернее на его отсутствие.
Может это натолкнет на правильное решение.

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

А не тут ли «собака зарыта»?
Когда вводу npm init (стоя на папке репозитория), он мне начинает предлагать ввести всякие аднные. Начинается все с

user@pc:~/wiki$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (wiki) 

и дальше поехали вопросы…
Может тут нужно указывать какую то инфу, чтобы он успешно цепанулся?

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

npm init делать не надо (оно для нужно когда создаешь новый пакет)

Nodejs 8.10.0

как ставил? через apt/apt-get install?

если да то все пакеты для этого плагина ставить с «sudo», если нет (через nvm), то без sudo. флаг «-g» (global) тебе нужно указывать всегда

варнинги игнорь. fsevents игнорь. peer зависимости нужно ставить руками (sudo npm install -g …)

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

Да ставил именно так sudo apt install nodejs. Про зависимости не понял… делаю вот так

user@pc:~/wiki$ sudo npm -g install instant-markdown-d
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
/usr/local/bin/instant-markdown-d -> /usr/local/lib/node_modules/instant-markdown-d/instant-markdown-d
/usr/local/lib
└── instant-markdown-d@0.2.0-rc.2 

npm WARN ws@7.2.3 requires a peer of bufferutil@^4.0.1 but none was installed.
npm WARN ws@7.2.3 requires a peer of utf-8-validate@^5.0.2 but none was installed.
user@pc:~/wiki$ sudo npm install -g bufferutil@^4.0.1

> bufferutil@4.0.1 install /usr/local/lib/node_modules/bufferutil
> node-gyp-build

/usr/local/lib
└── bufferutil@4.0.1 

user@pc:~/wiki$ sudo npm install -g utf-8-validate@^5.0.2

> utf-8-validate@5.0.2 install /usr/local/lib/node_modules/utf-8-validate
> node-gyp-build

/usr/local/lib
└── utf-8-validate@5.0.2
parnyagan ()
Ответ на: комментарий от parnyagan

x-www-browser и gnome-www-browser — это не браузеры, а ссылки на браузер по умолчанию.

mertvoprog ()

И в чём, собственно, проблема? Судя по логам, всё успешно установилось, ошибок нет. Вы сам плагин далее по инструкции устанавливать и настраивать пробовали?

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

Плагин у меня запускается, внесение изменений отображается параллельно в новом окне браузера, дело в том, что никак не могу добиться того, чтобы положение страницы в браузере следовало за расположением курсора в Vim. Очень не удлобно проматывать каждый раз.

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

ну если в коде страницы нет никакого js то и автоскролла не будет

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

Воистину так! Обратное было бы возможно якорями, но страница с Vim уж точно без скриптов взаимодействовать не может.

Ни instant-markdown-d, ни smdv никакой обратной связи не поддерживают, они просто передают страницу в браузер.

@parnyagan, а почему Вы решили, что она в этом плагине вообще есть?

Вообще, имеет смысл копнуть в сторону того, чтобы компилировать Markdown не в HTML, а в TeX. Уж SyncTeX-то в Vim точно можно завести в обе стороны. Но перекомпиляции могут быть долгими.

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

Вот спасибо тебе, добрый человек!
А то я ведь так и бился бы в поисках решения, почему у меня скролл - не скролл :-D

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

Да я Markdown не во что и не компилирую…
Как у меня были файлы *md, так они ими и остаются.
Я просто для удобства редактирования открываю предварительный просмотр вносимых изменений в браузере. Т.е. все что я делаю с файлом *md отображается в браузере в режиме Real-Time.
У меня получается на левую половину экрана открыт Vim, а на правую сторону экрана открыт браузер FF. Все выглядит красиво, но вот со скроллингом конечно запара. Каждый раз приходится проматывать страницу в браузере, если нужно просмотреть как будут выглядить внесенные изменения.
Вот тут я увидел, как работает автоскролл.

https://youtu.be/9hruCcHC4FY?t=794

Думал, что это везде так…
Может тогда подскажете, как автор ролика добился такого результата в отображении?

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

Да я Markdown не во что и не компилирую…

А плагин компилирует — иначе как он в браузере показывать будет? Браузеры показывают HTML, поэтому надо перегонять в HTML.

Вот тут я увидел, как

Увидели у какой-то говорящей головы — у неё и спрашивайте, зачем приходить на форум к левым людям и спрашивать у них?

mertvoprog ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей