0

現在、比較的単純なコード スニペットを使用して、vim でバッファーの配色コードを動的に変更します -詳細は SO を参照してください。

この提案されたソリューションは、より包括的に見えます。実装方法がわかりません。

if has('autocmd')
    " change colorscheme depending on current buffer
    " if desired, you may set a user-default colorscheme before this point,
    " otherwise we'll use the Vim default.
    " Variables used:
        " g:colors_name : current colorscheme at any moment
        " b:colors_name (if any): colorscheme to be used for the current buffer
        " s:colors_name : default colorscheme, to be used where b:colors_name hasn't been set
    if has('user_commands')
        " User commands defined:
            " ColorScheme <name>
                " set the colorscheme for the current buffer
            " ColorDefault <name>
                " change the default colorscheme
        command -nargs=1 -bar ColorScheme
            \ colorscheme <args>
            \ | let b:colors_name = g:colors_name
        command -nargs=1 -bar ColorDefault
            \ let s:colors_name = <q-args>
            \ | if !exists('b:colors_name')
                \ | colors <args>
            \ | endif
    endif
    if !exists('g:colors_name')
        let g:colors_name = 'default'
    endif
    let s:colors_name = g:colors_name
    au BufEnter *
        \ let s:new_colors = (exists('b:colors_name')?(b:colors_name):(s:colors_name))
        \ | if s:new_colors != g:colors_name
            \ | exe 'colors' s:new_colors
        \ | endif
endif

上記のどのビットをコメント解除する必要がありますか?
デフォルトのスキーム pyte はどこに追加すればよいですか?
それがfuletype sqlである場合、SummerFruit256スキームを作成することはどこにありますか?
それとも、配色を切り替えるための単純な 2 行のコードに固執するほうがよいでしょうか?

4

1 に答える 1

2

このスニペットは:ColorScheme、バッファー ローカル スキームを設定するカスタム コマンドを定義します。ファイルタイプのコマンドを呼び出して、独自に構成します。たとえば、次のようになります。

:autocmd FileType sql ColorScheme SummerFruit256

またはColorScheme SummerFruit256コマンドを に入れ~/.vim/after/ftplugin/sql.vimます。

通常どおりスニペットの:ColorDefaultに設定するか、スニペットの前に設定することで、デフォルトのスキームを設定できます。

于 2013-05-24T07:33:40.940 に答える