2016/11/08

VimConf 2016 に参加しました

VimConf 2016 への参加記録として、殴り書きメモを張り付けていきます。

Introduction to Vim 8.0

  • See :help version8
  • See :help channel-demo
  • See :help job_start()
  • See :help timer_start()
  • See :help Partial
    • Partial : 部分適用, コールバック等で便利らしい
  • See :help lambda
  • See :help closure
  • See :help window-id
    • Window に、不変の、一意な Window ID がつくようになったらしい。
  • See :help test-functions
  • See :help breakindent
    • マージに 10 年!
  • See :help renderoptions
  • Search Coveralls

知らない機能たくさん。特に、「Partial」「window-id」「breakindent」は今の自分に有用そうなので調べる。

VIM AS THE MAIN TEXT EDITOR

  • 「vimrc をオリジナルにする」、同感。
  • Vim に移行するためのモチベーションは何だろうか?
    • 仕事で使う必要があった
  • Vim を使うための準備運動
    • vim tutorial
    • VIMIUM
  • Vim を育てる
    • github で vimrc を検索
    • 内容を把握してコピペ
    • 気になったことを issue で書く
  • Q: Vim に移行して一番テンションの上がった機能は?
    • A: VimFiler, UI, 操作性が直感的で感動した

プロジェクトメンバに Vim 布教するにあたりこの辺のステップを参考にしていきたい。

Denite.nvim ~The next generation of unite~

NeoVim かー、 Python かー、速いのかー、うらやましいなー。って聞いてた。 (NeoVim 専用と誤解してた、NeoVim が Linux でしか動かないと思ってた。)

※ 懇親会にて Shougo さんに NeoVim は Windows ネイティブでも動くようになってるし、Bash on Ubuntu on Windows なら完璧に動くという話をしていただいたので試す。

Go、C、Pythonのためのdeoplete.nvimのソースの紹介と、Neovim専用にpure Goでvim-goをスクラッチした話

NeoVim かー、 Python かー、速いのかー、うらやましいなー。って聞いてた。

エディタの壁を超える Go の開発ツールの文化と作成方法

  • 特徴
    • 強力でシンプルな言語設計と文法
    • 平行プログラミング
    • 豊富なライブラリ
    • 豊富なツール
    • シングルバイナリ/クロスコンパイル
      • Windows 界隈だとシングルバイナリ便利
  • ツール群
    • govet
    • guru
    • gocode
    • errcheck
    • gorename
    • gomvpkg
  • Search gofmt -s

社内ツールで Go 使うときの宣伝文句としてスライド ぱくりたい 超参考になった。

vim-mode-plus for Atom editor

  • Search operation-stack
  • Search Vim で
  • Search occurrence
  • Search Vim で vip
  • Search Vim で「キャメルケース/スネークケース」変換

モーションとオペレータの考え方がわかりやすかった。 そのあたりを意識しながらコマンド使っていきたいと思った。

Vimの日本語ドキュメント

  • vim のドキュメント
    • vim-jp/vimdoc-ja
      • リファレンスとユーザーマニュアル
    • vim-jp/lang-ja
      • メニュー・メッセージ
    • Vim のユーザーマニュアルは、 usr_ で始まるやつ
  • Travis-CI 上で表記ゆれチェック
    • koron/nvcheck
  • vimdoc-ja の課題
    • 訳文の統一
      • 表記ゆれ
      • 文体の統一
    • 翻訳支援ツールの利用
      • 原文成形済み
        • なので、差分検出が難しい
          • なので、マークアップと成形ツールがほしい
      • これで、翻訳の品質向上を目指す

ドキュメント翻訳って、翻訳そのものも大変だけど、翻訳のための仕組み作りもまた大変なんだなぁ。 表記ゆれチェックはうちのプロジェクトに取り込めたら取り込んでいきたい。

Vim script parser written in Go

  • Linter
  • Fixer
  • Formatter
  • Completion

殴り書きで上記単語だけ書かれていた...。完全に内容についていけてなかった...。

僕の友達を紹介するよ

この辺試していきたい。

Best practices for building Vim plugins

  • ドキュメントを書きましょう
    • README を置くだけでは不十分
    • See :help design-documented
  • namespace を意識しましょう
    • 他プラグインと名前がバッティングしないように注意
    • プラグイン名を prefix にする
      • 勝手に省略するのはダメ
      • 実際どう呼ぶかはユーザーに任せる
    • プラグイン名を決める前にググる
    • 外部インターフェースの関数, 変数名も同じなので注意
  • autoload を使いましょう
    • plugin/xxx.vim には UI 定義のみ
    • 逆に言うと、 plugin/xxx.vim から autoload 内のコードを呼ぶのは残念な感じ
  • カスタマイズできるようにするのが Vim っぽい
    • 高カスタマイズ性
  • <Plut> キーマッピングを使いましょう
  • Plugin original buffer is useful
    • 実際のバッファに紐づかないバッファ?
    • BufReadCmd, BufWriteCmd
    • {plugin-name}://...
    • バッファを使うプラグインはスコープに注意
  • デフォルトで移動するキーのマッピングを上書きしちゃうと顰蹙を買うかも...
  • See <Leader>, <LocalReader>
  • Open API
  • マルチプラットフォーム対応しましょう
    • See :help design-multi-platform
  • テスト書くとよい
  • スクリプト内で省略形を使うのはダメ
    • 省略形はコマンドモードで楽に入力するためのもの

もりだくさん。 Vim script 書くときに意識していきたい。

所感

  • 書き殴ったことを消化・吸収しつつ、Vim 力を高めていきたい
  • NeoVim, Go を全くウォッチしていなかったのが悔やまれる
  • Windows で NeoVim 動かして deoplete.nvim を使ってみよう

0 件のコメント: