zencodingcss.vim (Vim Scirpt)

SparkupVim の Sparkup プラグインで HTML タグを Zen Coding 風に簡単入力)の vim plugin を参考にして CSS 用の Zen Coding 入力 vim script を作成しました。

<c-e> を押すことで、キーワード (Alias) から CSS のプロパティと値を自動で入力できます。
デフォルト設定では、Zen CSS Propaties の Alias が登録されています。
さらに、.vimrc に設定を記述することで Alias を追加・上書きすることができます。

使用方法

  • ノーマルモードでの Alias 文字列(行頭・行末・空白文字で区切られた文字列)上、またはインサートモードでの Alias 文字列末尾にカーソルがある状態で <c-e> を押すと Alias 文字列が対応する CSS プロパティ・値に変換されます。
  • 変換された文字列に :;() がある場合は ;) の前にカーソルが移動しインサートモードになります。
  • 変換後文字列に | がある場合は | が削除され、その位置にカーソルが移動しインサートモードになります。
  • ユーザー定義 Alias 設定内で、文字列をバックスラッシュ(\) で囲むことでラベル付きプレースホルダを作ることができます。<c-n> を押すとプレースホルダが削除され、その位置にカーソルが移動しインサートモードになります。
  • その他の場合は、行末にカーソルが移動しノーマルモードになります。
  • <c-n> を押すとカーソル位置以降の :;, (), | を探してその位置に移動し、上述のような各文字に対応した動作をします。

:;g:zencodingcssSeparation で指定した文字を間に挟んだ場合も動作します。

入力例

fl       <= Alias 文字列 fl 上にカーソルがある状態で <c-e> を押すと
            以下の文字列が自動的に入力されて、; の前にカーソルが配置される。
float: ;

float: left;  <= left は自分で入力する
                (left も自動入力するには Alias 文字列に fl:l を入力する)

float: left; c    <= c の上にカーソルがある状態で <c-e> を押すと
                     以下の文字列が自動的に入力されて、) の前にカーソルが配置される。
                     以下は g:zencodingcssColorFormat を設定して rgb() が値として入力されるように変更している。
float: left; color: rgb();

設定パラメータ・設定方法

g:zencodingcssExecuteMapping
Alias を展開するキーを指定する。
デフォルトは <c-e>

if !exists('g:zencodingcssExecuteMapping')
    let g:zencodingcssExecuteMapping = '<c-e>'
endif
g:zencodingcssNextMapping
次の入力位置(:;, (), |)に移動するキーを指定する。
デフォルトは <c-n>

if !exists('g:zencodingcssNextMapping')
    let g:zencodingcssNextMapping = '<c-n>'
endif
g:zencodingcssSeparation
プロパティ名の後の : の後に入れる文字列(スペース等)を指定する。
デフォルトでは '' のため : の後にカーソルが配置されたり、: と値の間にスペースが入りません。

if !exists('g:zencodingcssSeparation')
    let g:zencodingcssSeparation = ' '
endif
g:zencodingcssColorFormat
入力されるカラー文字列(前景)を指定する。
デフォルトは #000

if !exists('g:zencodingcssColorFormat')
    let g:zencodingcssColorFormat = 'rgb()'
endif
g:zencodingcssBackgroundColorFormat
入力されるカラー文字列(背景)を指定する。
デフォルトは #FFF

if !exists('g:zencodingcssBackgroundColorFormat')
    let g:zencodingcssBackgroundColorFormat = 'rgb()'
endif
g:zencodingcssUserDict
ユーザー定義の Alias と、その展開文字列を指定する。

if !exists('g:zencodingcssUserDict')
    let g:zencodingcssUserDict = {
\   'wh'    : 'width: |px; height: |px;',
\   'mp0'   : 'margin: 0; padding: 0;',
\   'bg'    : 'background: rgb(|, |, |) url() repeat-x left top scroll;',
\   'f'     : 'font: \style:italic?\ \variant:small-caps?\ \weight:bold?\ \size:100%\\/line-height:1em?\ \family:sans-serif\;',
\   'wbs'   : '-webkit-box-shadow: \offset-x\px \offset-y\px \blur\px rgb(|, |, |);',
\   'hpx'   : 'height: |px;',
\   'wpx'   : 'width: |px;'
\}
endif

ダウンロード

vim-zencodingcss.zip(13KB)

更新履歴

ver 0.2 (2010/2/23)
  • ラベル付きプレースホルダ機能追加
ver 0.1 (2010/2/22)
  • 初公開