web-dev-qa-db-ja.com

MacVimは〜/ .vimrcからすべての設定を取得しますが、色は取得しないため、再度ソースする必要があります

MacOS XMavericksのMacVim7.4で次の〜/ .vimrcを使用しています。

set guifont=Menlo:h14
set encoding=utf8
set mouse=a
set expandtab
set ts=8
set showcmd
set nocompatible
set backspace=2
set viminfo='20,\"50
set history=50
set ruler
set si
set hlsearch
syntax on
set bg=light
hi Cursor     term=inverse   ctermfg=black                guifg=black  guibg=green
hi Visual     term=inverse   ctermfg=yellow ctermbg=black guifg=yellow guibg=black
hi Comment    term=inverse   ctermfg=grey   ctermbg=black guifg=white  guibg=black
hi Identifier term=NONE      ctermfg=black                guifg=black
hi Constant   term=underline ctermfg=darkred              guifg=red
hi Statement  term=bold      ctermfg=blue                 guifg=blue
hi PreProc    term=NONE      ctermfg=black                guifg=black  gui=underline
hi Special    term=NONE      ctermfg=black                guifg=black
hi Type       term=bold      ctermfg=blue                 guifg=blue

エディターがそのファイルからすべての設定(フォントファミリーとそのサイズ、ショールーラーとタブの設定など)を取得しますが、色は取得しないことがわかります。

screenshot 1

コマンドを発行した後でのみ:so ~/.vimrc私の色設定も必要ですか(コメントが反転した赤と青):

screenshot 2

誰かが知っていますか、何が起こっているのですか、なぜMacVimも構文の色を取得しないのですか?

以下は:version 情報:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 10 2013 18:40:52)
MacOS X (unix) version
Compiled by Douglas Drumond <[email protected]>
Huge version with MacVim GUI.  Features included (+) or not (-):
+arabic          +emacs_tags      +localmap        +postscript      +textobjects
+autocmd         +eval            -lua             +printer         +title
+balloon_eval    +ex_extra        +menu            +profile         +toolbar
+browse          +extra_search    +mksession       +python          +transparency
++builtin_terms  +farsi           +modify_fname    -python3         +user_commands
+byte_offset     +file_in_path    +mouse           +quickfix        +vertsplit
+cindent         +find_in_path    +mouseshape      +reltime         +virtualedit
+clientserver    +float           +mouse_dec       +rightleft       +visual
+clipboard       +folding         -mouse_gpm       +Ruby            +visualextra
+cmdline_compl   -footer          -mouse_jsbterm   +scrollbind      +viminfo
+cmdline_hist    +fork()          +mouse_netterm   +signs           +vreplace
+cmdline_info    +fullscreen      +mouse_sgr       +smartindent     +wildignore
+comments        -gettext         -mouse_sysmouse  -sniff           +wildmenu
+conceal         -hangul_input    +mouse_urxvt     +startuptime     +windows
+cryptv          +iconv           +mouse_xterm     +statusline      +writebackup
+cscope          +insert_expand   +multi_byte      -Sun_workshop    -X11
+cursorbind      +jumplist        +multi_lang      +syntax          -xfontset
+cursorshape     +keymap          -mzscheme        +tag_binary      +xim
+dialog_con_gui  +langmap         +netbeans_intg   +tag_old_static  -xsmp
+diff            +libcall         +odbeditor       -tag_any_white   -xterm_clipboard
+digraphs        +linebreak       +path_extra      -tcl             -xterm_save
+dnd             +lispindent      +Perl            +terminfo
-ebcdic          +listcmds        +persistent_undo +termresponse
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-p
ragmas -pipe  -DMACOS_X_UNIX -no-cpp-precomp  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE
=1
Linking: clang   -L.    -L.     -L/usr/local/lib -o Vim -framework Cocoa -framework Carb
on       -lncurses  -liconv -framework Cocoa   -fstack-protector -L/usr/local/lib  -L/Sy
stem/Library/Perl/5.12/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc -framework
Python   -framework Ruby
8

MacVimはデフォルトのgvimrcafter your ~/.vimrcを調達しています。このスニペットが含まれています:

" Load the MacVim color scheme.  This can be disabled by loading another color
" scheme with the :colorscheme command, or by adding the line
"   let macvim_skip_colorscheme=1
" to ~/.vimrc.
if !exists("macvim_skip_colorscheme") && !exists("colors_name")
    colorscheme macvim
endif

何が起こるかは簡単です:MacVimのデフォルトのcolorschemeはVimを起動すると:hiコマンドを上書きし、:hiコマンドは~/.vimrcをソースするときにデフォルトのcolorschemeを上書きします。

修正も簡単です。Ingoの回答に従って、:hiコマンドを実際のカラースキームに変換します。

また、set background=lightはカラースキームでのみ役立つため、その行も移動します。

14
romainl

これは直接的な答えではありませんが、すべての:hiコマンドを~/.vimrcから個別の(プライベート)カラースキームに抽出する必要があります。 ~/.vim/colors/mine.vim。次の前文を付加します。

hi clear
if exists("syntax_on")
    syntax reset
endif
let g:colors_name = "mine"

次に、を介してそのカラースキームを選択します

:colorscheme mine

~/.vimrcで。

利点

  • 問題を解決する必要があります。
  • Vimが提供する適切な抽象化を使用します。
  • .vimrcのサイズを縮小し、管理しやすくします。
  • その場でカラースキームを切り替えることができます。
  • 一時的に:syntax offを回すと、色が元に戻ります。
5
Ingo Karkat

MacVimは実際にはgvimなので、Mac固有のcolortheme設定となる.gvimrcを使用できます。例えば。私は通常、すべてのUNIXシステムで使用するベース.vimrcを持っており、通常はすべての構文の色を無効にしますが、コメントに色を付けます。あなたが言ったように、それはMacVimでは動作しないので、私はどこでもgvimを使用したことがないという条件で、macvimの色を設定するのに最適な.gvimrcを持っています。

2
Alex