VIMの設定を効率よく変更する為に、フレームワーク化する
git clone https://github.com/hajimemat/vimrc-framework .vimrc-framework
cd ~/.vimrc-framework && make
~/.vimrc.local
を編集する
- VIMを使いたい状況は色々ある。 サーバで設定ファイルを触る時、 PHPを書く時、HTMLを書く時。 デスクトップでドキュメントを書く時とか。
- キーマップ、テーマなど趣味によるものは機能と分けて管理する
- プラグインは導入しやすいように参考になる初期設定を管理する
共通処理となりうるもの
- 環境判定
- 設定するための処理関数
依存ライブラリ
-
- dein.vim
- プラグイン管理用プラグイン
default/プラグイン名.vim
にインストールと基本的な設定を記述する- 使用したい
context/コンテキスト名.vim
でLoadSource('プラグイン名')
で呼び出す
作ろうとする設定をContextかFlavorかで分けて考える。
Contextは拡張機能の導入を中心に設計し、 Flavorはキーマップ、見た目の設定を中心に設計する。
どちらからも toml/context
もしくは toml/flavor
を利用できるものとする。
Contextに導入Stabilityを設定できる。 通常はstableを指定。 挙動としては、Context読み込み時に、Context名-{stability}.vimを読み込む。
変数名 | 型 | 内容 |
---|---|---|
g:nora_context_stability |
string | Stabilityを設定する |
Stability | 目的 |
---|---|
stable | 安定 |
dev | 開発用 |
- オートコマンドグループ名は
NoraAutoCmd
とする - 新しいコンテキストを設計する場合は、READMEに追記する
- 新しいフレーバを設計する場合は、READMEに追記する
@startuml
salt
{
{T
+ ./nvim.init <- nvim用のエントリーポイント
+ ./vimrc
+ ./config/ <- 設定置場
+ ./context/ <- コンテキスト置場
+ ./flavor/ <- フレーバー置場
+ ./kernel/ <- 共通処理置場
+ ./bin/ <- ユーティリティ
}
}
@enduml
@startuml
start
partition kernel/initialize.vim {
:環境判定;
:必要な一時ディレクトリを作成;
partition config/default.vim {
:プラグインに依存しない基本設定;
}
}
partition kernel/plugins.vim {
:dein初期処理をおこなう;
partition コンテクストの数だけ繰り返す {
:コンテクスト名.vimを読み込む|
}
:設定されたflavor名.vimを読み込む|
:dein終了処理をおこなう;
}
end
@enduml
コンセプト: 最小限の設定で立ち上げる
@startuml
[minimal.vim] - [fzf <<ファイラー>>]
@enduml
コンセプト: エディターツールとしての便利セット
rectangle minimal << Context >>{
}
rectangle editor << Context >>{
package ファイラー {
[NERDTree]
}
package 整形ツール群 {
}
}
minimal <|-- editor : 継承
-
- h1mesuke/vim-alignta.git
- 整列
-
- tomtom/tcomment_vim
- コメントトグル
-
- tpope/vim-surround
- 囲む
-
- terryma/vim-expand-region
- 選択範囲を増やす
-
- easymotion/vim-easymotion
- ショートカットで移動する
-
- yuttie/comfortable-motion.vim
- スクロールをスムーズ
-
- sheerun/vim-polyglot
- シンタックス詰め合わせ
-
- jiangmiao/auto-pairs
- 自動でペアを入力する
-
- scrooloose/nerdtree
-
- Xuyuanp/nerdtree-git-plugin
参考: http://wakame.hatenablog.jp/entry/2017/05/03/222511
-
- airblade/vim-gitgutter
-
- tpope/vim-fugitive
-
- vim-scripts/gitvimrc.vim
-
- plasticboy/vim-markdown
- Tocコマンドでヘッダのアウトライン表示
-
- godlygeek/tabular
- テーブルフォーマット
デスクトップ利用前提
(参考)[https://github.com/iamcco/markdown-preview.nvim]
-
- junegunn/goyo.vim
-
- tyru/open-browser.vim
- VIからブラウザを開く為のプラグイン
-
- iamcco/markdown-preview.nvim
- マークダウンをリアルタイムに確認するプラグイン
開発ツールとして使う場合
デフォルトだと思うキーマップ設定
Nora開発のデフォルトキーマップ
Flavor: nora
にカラースキーマnanotech/jellybeans.vim
を追加
set nocompatible
がneovimdだと警告がでる