vim-easy-align の設定、忘れて怖くなったので
vimrc の整理中、easy-align の設定が目にした時、まったく思い出せない現実に打ちひしがれたので。
メモ。
この部分。
let g:easy_align_delimiters = { " -- 1 \ '.': { 'pattern': '\.\{2,}' }, " -- 2 \ '"': { 'pattern': '"', 'filter': 'v/^\s*"/', 'ignore_groups': ['String']}, " -- 3 \ "'": { 'pattern': "'", 'filter': "v/^\s*'/", 'ignore_groups': ['String']}, " -- 4 \ "-": { 'pattern': '-\{2,}'}, " -- 5 \ }
g:easy_align_delimiters
で、デフォルトにはない独自のルールを定義。- ドット
.
を定義。
→ 三点リーダ的な使い方...
をするので、それを想定して。 - ダブルクォート
"
を定義。
→ 主に vim(rc) でのインラインコメントを想定して。 - シングルクォート
'
を定義。
→"
があるんだったら'
も、というノリだと思うw - ハイフン
-
を定義。
→ これもしばしば---
等リーダ的な使い方をするので、そのようなケースを想定して。
こういうのがあったとします
let g:vimfiler_tree_leaf_icon = " " " default: '|' let g:vimfiler_tree_opened_icon = "▾" " default: '-' let g:vimfiler_tree_closed_icon = "+" " default: '+' let g:vimfiler_tree_closed_icon= "▸" let g:vimfiler_readonly_file_icon = "!" " deafult: 'X' " let g:vimfiler_file_icon = "-" " default: '-' why? let g:vimfiler_marked_file_icon = "*" " default: '*'
行末のインラインコメントで揃えられるようにしたい、とします。
ignore_groups
オプションがないと...
結果はこのようになります。
let g:vimfiler_tree_leaf_icon = " " " default: '|' let g:vimfiler_tree_opened_icon = " ▾" " default: '-' let g:vimfiler_tree_closed_icon = " +" " default: '+' let g:vimfiler_tree_closed_icon= " ▸" let g:vimfiler_readonly_file_icon = " !" " deafult: 'X' " let g:vimfiler_file_icon = "-" " default: '-' why? let g:vimfiler_marked_file_icon = " *" " default: '*'
インラインコメントの "
ではなく、設定値の "
で揃えてしまいます。
残念ですね。
ちなみにここでは filter
オプションは設定しているので、行頭に "
" がある行全体コメントの行はそのままです。
では今度は逆に...
filter
オプションがないと...
結果このようになります。
let g:vimfiler_tree_leaf_icon = " " " default: '|' let g:vimfiler_tree_opened_icon = "▾" " default: '-' let g:vimfiler_tree_closed_icon = "+" " default: '+' let g:vimfiler_tree_closed_icon= "▸" let g:vimfiler_readonly_file_icon = "!" " deafult: 'X' " let g:vimfiler_file_icon = "-" " default: '-' why? let g:vimfiler_marked_file_icon = "*" " default: '*'
ignore_groups
で "String" グループは無視され、前のような設定値を囲む "
で揃う事は無く、インラインコメントの "
で揃うようになるのですが、
行頭の "
が揃ってきてしまいます。
なおオプションは、ここで取り上げた filter
、ignore_groups
以外にも色々あります。
参照先
- ユーザ任意のデリミタの設定
g:easy_align_delimiters
について ;
»:h g:easy_align_delimiters
»:h easy-align-extending-alignment-rules
- オプション
ignore_groups
»:h easy-align-ignoring-delimiters-in-comments-or-strings
- オプション全般
»:h easy-align-list-of-options
- インラインコメントの話
» Aligning in-line comments
ぼんやりしてんじゃないよ、じぶん。
と言う事で、おしまい。
*1:v[global] により、ダブルクォーテーションではじまる行としてマッチしない行を対象にしている。