ニュースレター #9 - 三者関係

2020年4月

Neovim とは

Neovim は、拡張性と使いやすさに重点を置いた老舗テキストエディタ vim のフォークです。書き直しではなく、Vim の継続と拡張です。多くのクローンや派生物が存在し、一部は非常に巧妙です — しかし、どれも Vim ではありません。Neovim は Vim の良い部分とそれ以上のものを望むユーザー向けに構築されています。差分のリストは、:help vim-differences で参照してください。

参加

Neovim へのコントリビュートに関心がある場合は、GitHub ページ にアクセスして詳細を確認してください。優れたテストスイートと自動化された CI が備わっているので、飛び込んで試すことができます。コメントを取得したり、単にインフラストラクチャを利用したりするために、PR をオープンするのを躊躇しないでください!

チームに連絡するには、gitter チャンネル (また、IRC からアクセス可能) に参加するか、多くの開発者が閲覧している Neovim サブレディット にアクセスしてください。会話に参加することも、コントリビューションです!

新しいコントリビュータの紹介: @janlazo は、2017 年 9 月以降、Windows サポートと Neovim パッチの移植の両方で暴れています。ありがとうございます!

古いコントリビュータの紹介: @jamessan は、2014 年 3 月から参加しており、一般的に賢く有益である一方、Neovim の Debian パッケージ で途方もない作業を行ってきました。ありがとうございます!

新着情報

最後のニュースレター では、Neovim の 0.2.2 リリースまでのすべてを取り上げました。2 年が経ち、プロジェクトはこれまで以上にユーザーと開発者のエクスペリエンスの両方を改善することに熱心に取り組んできました。その過程で、2018 年 6 月にバージョン 0.3 をリリースしました。このニュースレターは遅れて配信されましたが (バージョン 0.4 がリリースされた後)、何か見逃したかもしれない場合に備えて 0.3 を紹介する価値があると判断しました (0.4 は今後のニュースレターで取り上げます)

いつものように、重大な変更については Following HEAD を確認してください。

ユーザー向けの 0.3

  • Neovim をさまざまなターミナルエミュレータでより正常に動作させるために多くの作業が行われてきましたが、現在も進行中です (@justinmk#7664#7653#7720#7640#7624@florolf#7676 および @erw7 #8408)

  • Linux ユーザー
  • BSD ユーザー
  • Windows ユーザー
    • Neovim には一般的なツールが付属しています (@equalsraf@justinmk#6105)
    • VS2017でのビルドがサポートされるようになりました。詳細については、Wikiを参照してください(@b-r-o-c-k8084)
    • Neovimはcygwinでご利用いただけます。
  • man.vimの改良により、速度向上のためにLuaが使用されています(@keidax#7623)

  • system():!から出力されるマルチバイト文字がサポートされ、制御文字(CR、TAB)も適切に処理されるようになりました(@bfredl#7844)

  • コマンドマッピングがサポートされています(@bfredl#4419)

  • マッピングされていないMETAキーはエスケープとして解釈されます(@justinmk#8226)

  • メッセージのフルスクリーン表示を回避するために、display用の新しいフラグmsgsep(@bfredl#8088)
    • 動作の確認: 新しいマルチラインメッセージ機能のデモンストレーション
  • 番号付きマークがshadaファイルに保存されるようになりました(@ZyX-I#5908)

  • --listenコマンドラインオプションが$NVIM_LISTEN_ADDRESSに置き換わりました(@justinmk#8247)

  • Neovimはstdinをコマンドではなくテキストとして扱います。stdinをノーマルモードコマンドとして実行したい場合は、nvim -s -を使用します(@justinmk#7679@ZyX-I#6299、および@b-r-o-c-k#8276)

  • Neovimは(u)rxvtでマウスイベントを認識します(@symphorien#8309)

  • マクロは実行時に:lmapを適用します(@hardenedapple#5658)

  • デフォルト

開発者向けの0.3

  • リストの実装がAPIの背後に隠され、さらなる改善が促進されています(@ZyX-l#7708)。特にvimからパッチを移植する開発者は、Wikiページを参照してください。

  • 変更されたAPI関数
  • 新しいAPI関数
  • チャンネル:バッファリングされた出力とバイトソケット/stdio をサポート (@bfredl#6844)

  • 適切な viml 式パーサーが利用可能になりました (@ZyX-l#7234)
    • さまざまなハイライトグループが付属しています。次の画面録画をご覧ください:式ハイライトのデモンストレーション

近未来:予定

  • 外部 UI 用のフローティングウィンドウ (@bfredl#6619)
  • 拡張マーク (@timeyyy#5031)
  • ビルトイン LSP サポート (@tjdevries#6856) (http://langserver.org/ がなぜ興味深いのかご覧ください)

Neovim の周辺

GSOC

Neovim が Google Summer of Code (GSOC) に採択されました。興味深い開発に取り組む 2 人の学生がいました。

素晴らしい貢献をありがとう、そしてメンターの @bfredl@justinmk にもありがとう !

Wiki ページの 関連プロジェクト は、何らかの形で Neovim の拡張機能を利用するプロジェクトの増え続けるリストです。以下は前回のニュースレター以降の追加の概要です

プラグイン

次のプラグインは私たちの wiki に追加されました。

  • neomake-multiprocess: neomake に基づいて複数のプロセスを非同期に実行するための vim プラグイン
  • neopipe: テキスト行を外部コマンドに送信し、出力をスクラッチバッファに表示します
  • nuake: Neovim 用の Quake スタイルの端末パネル
  • semshi: Python 用のセマンティックハイライト
  • vim-ghost: GhostText ブラウザ拡張機能 (firefoxchrome) 用 Neovim クライアント

API クライアント

3 つの C++ クライアントでは十分ではないと思った場合、4 番目の参加者が参戦したことを喜ばれるでしょう。

API クライアントがリストされていない言語を好む場合は、ドキュメントから始めてみて、gitter チャンネルで要件について話し合ってみることをお勧めします。

GUI

前回のニュースレター以降、3つの新しい GUI が追加されました。

ブログ投稿

Neovim の機能について重点的に解説するブログ投稿をいくつか紹介します。

  • Neovim からプラグインをテストするは、プラグインのテストに Neovim のテストインフラストラクチャを使用する方法を説明しています。
  • RPC ベンチマークには、プラグインからフォールドを作成するために RPC API を使用するさまざまなアプローチのサンプルとそのベンチマークが記載されています。
  • Haskell 開発用の Neovim では、Neovim を利用して Haskell の開発ニーズを満たす方法について解説しています。

しばらくの間、@mhinzneovim-remote を管理しています。ユニックスでのみ利用可能ですが(ただし Windows のサポートは近い将来に期待できます)、頻繁に寄せられる次のようなユースケースの解決策を提供します。

  • 既存の Neovim インスタンスでファイルを開くにはどうすればよいですか?
  • エディターインスタンスをネストすることなく、Neovim ターミナルからファイルを開くにはどうすればよいですか?
  • 実行中の Neovim インスタンスにリモートでコマンドを送信するにはどうすればよいですか?

興味を持っていただけるよう、簡単な GIF をご紹介します。

Opening files from a Neovim terminal

追加してほしいコンテンツはありますか?

Wiki にない情報をお持ちですか?ページを 編集 して、世界中に情報を提供してください!

統計

前回のニュースレター以降に変更された行数

git log  --since="2017-12-16" --numstat --pretty=tformat: --numstat|gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }'
added lines: 109127 removed lines: 40267 total lines: 68860

マージされたコミット

git log  --since="2017-12-16"|wc -l
24167

さまざまなコミットの作成者

git shortlog -e -s -n --since="2017-12-16"|wc -l
129

ドキュメントの変更

git log  --since="2017-12-16" --numstat --pretty=tformat: --numstat runtime/doc|gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }'
added lines: 4369 removed lines: 3645 total lines: 724

お礼

コントリビューター、スポンサー、バグ報告者、サポーターに感謝します。素晴らしいプロジェクトを提供してくださった@justinmkと、基礎となる作業をしてくださった@brammoolに感謝します。

ニュース

ニュースアーカイブでさらに詳しい情報をご覧ください。また、RSS フィードも提供しています。

Neovim とは

Neovim は Vim ベースのテキストエディターで、拡張性使いやすさを重視して設計されています。これにより、新しいアプリケーションやコントリビューションが促進されます。

ディスカッション

#neovim:matrix.org を訪れるか、irc.libera.chat で #neovim に参加して、チームと一緒にチャットしましょう。