未完放流

終わりなど無い、有るのは試練だけだ……

NyaoVim を Linux Mint & Win 10 上でインストールに挑戦

NyaoVim 素敵ですね。イノベーティブです。vim の未来を感じさせてくれます。 vimmarkdown preview したいんじゃぁ~というモチベーションで挑戦しました。 作者のりんだん様は多分 mac ですが、LinuxWindows でも動かそう挑戦しました。 試行錯誤しているうちに npm の使いかたを少し覚えましたので、忘備録としてポスト。

NyaoVim の機能の幾らかは使えているようですが、markdown preview はリアルタイムレンダリングができませんでした。

rhysd.hatenablog.com

インストール

  • NeoVim はインストール済みとします。

さて NyaoVim を入れるには node.js と npm が必要になります。 Windows は以下のサイトから LTS 版を入れました。インストーラに従えば、node.js と npm が共に自動で入ります。

Node.js

次に Linux Mint ですが、ほぼ Ubuntu ですので以下を参照しました。

qiita.com

n という node.js バージョン管理システムです。名前が短すぎるのがちょっと気になります。 やったのは多分こんな感じ、この方法だと npm が複数あるかもしれないので適宜バージョンとリンクを確認する。

$ sudo apt install nodejs npm
$ sudo npm install -g n
$ sudo n lts
$ sudo ln -sf /usr/local/bin/node /usr/bin/node
$ sudo apt remove nodejs

さあ、npm の準備が整った。

$ (sudo) npm install -g nyaovim

で入ると良いのですが、2018年1月19日現在、electron の中に必要な flux 3.1.3 が react との依存関係を上手く解決してくれません。

更に、mint というか ubuntu では sudo の影響でファイル管理方針の違いか permission が関連した error が返され electron のインストールも失敗します。 こちらの回避方法は

$ sudo npm install -g --allow-root --unsafe-perm=true electron

qiita.com

react の依存関係の問題は解決していない状態でも起動しました。短い文書を作成しましたが、特に問題が出ませんでした。 plugin を使う場合など詳細に関しては未検証。ここまでは、LinuxWindows ともに確認してあります。 画面は標準設定ですが、ターミナルより圧倒的に見やすいというのが第一印象。 以前、Windows で試したときは白い Window ができて終わってしまったので nvim が立ち上がっているだけで感動しました。

markdown preview

ここから先は主にLinux での検証結果になります。 次に markdown-preview のインストールは特に変則的な事をせず説明に従っていれます。

github.com

Markdown ファイルに対して、:StartMarkdownPreviewスクリーンショットと同じようレンダリングをしてくれると嬉しいのですが、リアルタイムではできませんでした。 :StartMarkdownPreviewでファイルが再読み込みされるようでリアルタイムに拘らなければ充分使えます。 作者さんのプレビューと色が違う感じもしたので、CSS が有効になっていないかもしれません。

結局、 git clone

github.com

package の依存関係が気持ち悪かったので、結局、git clone しました。 node.js は数年前、下の本が出た頃にお遊びで組んだ記憶がありますが、

はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-

はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-

先の n も知りませんでしたが、浦島太郎気分で探索します。

package の依存関係

カレントフォルダに package.json がある場合、node_module ディレクトリを作成しインストールするようなのでお試し。

$ npm install

先の flux の問題は手動で

$ npm install react@^16.0.0

とか適当にやってみてエラーが返らないが解決したのだろうか?

npm run

面白かったのが、package.json の中に "scripts" という項目の中で Makefileのようなことができること。 りんだん様は幾つかの項目を設定していたので一通り試させていただいた。 特に以下の方法で一通り module がそろってしまう。

npm run dep

また debug モードもこちらから入ることもできた

npm run debug

このデバッグモードは NyaoVim と Chrom Debug mode が別々のWindow で立ち上がり面白い。 恐らく、この時に気が付いたと思うのだが、StartMarkdownPreviewを行うと関数がないとエラーメッセージが返ってくる。 ちょっと名前は失念したのだが(手元にメモがない)、リアルタイムレンダリングに関する名前だった。 vim script の関数のような名前だったので、nyaovim-markdown-preview の方で確認したところ該当しそうなものを見つけることはできなかった。

まとめ

オチはありません。 多分、完全にはインストールできていないと思われます。 他人のソースを読むのは大変ですが色々勉強でき、自分の知らない世界を探検出来て刺激的です。