VIMで256色を適切に表示する方法


17

xtermで256色のテーマファイルをVIMで動作させようとしています。

これは私にとってどのように見えるかピークシーです:

ここに画像の説明を入力してください

どのように見えるか: どのように見えるべきか

wikiページのヒントを参考にしてみましたが、役に立ちませんでした。

set t_Co=256 うまくいきますが

set t_AB=^[[48;5;%dm
set t_AF=^[[38;5;%dm

エスケープシーケンスが端末に表示されます。

編集:Mikelは正しかったので、Ctrl + v + Escを入力して^ [を正しく入力する必要がありました。しかし、それは私の問題を解決していません。

ここに画像の説明を入力してください

それで、この作業を行うために他に何が変更できますか?

追加情報

$ uname -a
Linux xxxxxxx 3.4.7-1-ARCH #1 SMP PREEMPT Sun Jul 29 22:02:56 CEST 2012 x86_64 GNU/Linux

-

$ xterm -version 
XTerm(281)

-

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 13 2012 05:24:27)
Included patches: 1-600
Compiled by ArchLinux
Big version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent 
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff 
+digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi 
+file_in_path +find_in_path +float +folding -footer +fork() +gettext 
-hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall 
+linebreak +lispindent +listcmds +localmap +lua +menu +mksession +modify_fname 
+mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm 
-mouse_sysmouse +mouse_xterm +mouse_urxvt +multi_byte +multi_lang -mzscheme 
+netbeans_intg +path_extra +perl +persistent_undo +postscript +printer -profile
 +python -python3 +quickfix +reltime +rightleft +ruby +scrollbind +signs 
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary 
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
 +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo 
+vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim 
+xsmp_interact +xterm_clipboard -xterm_save 
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15   -I/usr/local/include  -march=x86-64 -mtune=generic -pipe -fstack-protector --param=ssp-buffer-size=4  -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -rdynamic -Wl,-export-dynamic  -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE  -Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0   -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -lncurses -lnsl   -lacl -lattr -lgpm -ldl  -L/usr/lib -llua  -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -fstack-protector -L/usr/local/lib  -L/usr/lib/perl5/core_perl/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -L/usr/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic   -lruby -lpthread -lrt -ldl -lcrypt -lm  -L/usr/lib   

-

$ ls -l /usr/share/terminfo/x/xterm-256color 
-rw-r--r-- 1 root root 3336 Feb  8  2012 /usr/share/terminfo/x/xterm-256color

.vimrc

set t_Co=256

.Xdefault

!--------------------- XTERM ------------------------
xterm*dynamicColors:    true
xterm*background:       black
xterm*foreground:        #BBBBBB
xterm*utf8:             2
xterm*eightBitInput:    true
xterm*saveLines:        32767
xterm*scrollTtyKeypress:       true
xterm*scrollTtyOutput:  false
xterm*scrollBar:        false
xterm*loginShell:       true
xterm*faceName:         xft:Dejavu Sans Mono:size=10
xterm*jumpScroll:       true
xterm*multiScroll:      true
xterm*toolBar:          false
xterm*geometry:         100x30

編集:試みられたソリューション

私はすでにrxvt-unicodeをインストールし、それを以前使用していました。しかし、私は同じ問題を抱えていました。以下に、2つの比較を示します。左側がxtermで、右側がurxvtです。開いているファイルは.Xdefaultsで、urxvtの設定が表示されますが、そのうちの1つが問題になる可能性がありますか?

xterm左urxvt右

また、一見ポジティブな出力でカラーテストスクリプトを実行しました。上がxterm、下がurxvtです。 上xterm下urxvt

$ echo $TERM
xterm-256color

回避策

現在CSApproxを使用していますが、十分に機能しているようです。まだ混乱しているのは、適切なコンソールカラー設定が定義されていても、テーマが機能しない理由です。おそらく、それはvimがそれ自体を考える方法と関係があるのでしょう。これは、gvimパッケージの一部としてインストールされたため、cterm設定を無視できます。

編集:そして今、すべてがうまくいくようです。

奇妙なことに、CSApproxをインストールしてから削除すると、すべてが正常に機能するように見えます。別のカラースキームをダウンロードしただけで、CSApproxモジュールが実行されていなくても完全にロードされました。


あなたの$ TERMは何ですか?vimは256色を使用できることを知っていますか?
リチャードハム

1
xtermはUTF8や色などに関してかなり問題があります。urxvt面倒なことは自分で使用して保存することを考えましたか?(pacman -S rxvt-unicode)。
カレブ

1
どのように入力しました^[か?Ctrl + V + Escを使用して行う必要があります。
ミケル

@Mikelあなたはそれについて
正しかった

@Calebどういう問題ですか?実際、UTF-8のサポートを改善するためにrxvtからxtermに切り替えました。どちらの場合も256色が機能します。私はTERM=screen-256colortmux を使用していますが、xterm-256color外部のtmux でも動作します。
jw013

回答:


3

カレブは彼のコメントで正しい。xtermはかなり古いため、少なくとも256およびutf-8対応バージョンのurxvtへの切り替えを検討する必要があります。適切なバージョンをインストールするには、パッケージマネージャーを参照してください。

素晴らしいWM、vim、urxvt、tmux / screenと同じ設定をしており、それらはすべて256色とutf-8でうまく機能します。xterm-256colorこれを手動で設定する必要がある場合に備えて、TERMを設定しました。

ハム...編集後、vimカラーテーマが端末用に適切に定義されているかどうかを確認できますか?


正確な意味がわからない。peaksea.vimはctermfg / ctermbgを使用しますが、GUI関数も定義されています。干渉することはありますか?
-jmathew

別の配色を試してみてください。これが大きな違いをもたらすとは思っていませんが、あなたは決して知りません。私が考えることができる他のことは、デフォルトで256色を強制するソースからvimを再コンパイルすることです。たぶんアーチパッケージは...奇妙である
Sardathrion -復活モニカ

1

端末が256色をサポートする必要があるだけでなく、vimのテーマは.Xdefaults / .Xresourcesの色を参照します。これを修正するには、テーマの作成者と同じ色を使用するか、代わりにgvimを使用する必要があります。

コードを見てみると、gvimを適切にサポートしていることがわかります。そのため、CSAproxを使用すると、HEXでgvimカラーコード(例:#123ABC)を取得し、端末の色に変換します。

コンソールモードのVimは、次の色を使用します。

hi Normal ctermfg=16 ctermbg=254

グラフィックモード中:

hi Normal guifg=#d0d0d0 guibg=#202020

したがって、端末の色に何らかの「テーマ」をインストールすると、Vimで取得する色に影響します。また、あなたが持っていることを再確認してください

set background=dark

あなたの.vimrc


うん、ctermはコンソールで使用するものだとわかります。問題は、.Xresourcesファイルがなく、.Xdefaultsに色が他の前景と背景に設定されていないことです。どの色も再定義されていません。私が想像できる唯一のことは、作者がデフォルトとは異なる.Xdefaults / .Xresourcesを定義していた場合です。しかし、私が使用する256色の各テーマは、見た目とは大きく異なるようです。不足している色を設定する他のファイルはありますか?
jmathew

X11について言えば、.Xdefaultsと.Xresourcesのみが関係するファイルだと思います(Archlinuxシステムで非推奨となった前のものです)。もちろん、デフォルトの端末の色はどこかに住んでいる必要があり、さまざまなLinuxディストリビューションでは異なる場合があります。また、テーマの作成者がカスタムカラーを使用したかどうかはわかりませんが、Gnomeターミナルのようなターミナルエミュレーターはカスタムカラーを使用したり、システムを使用したりすることを忘れることはできません。私のように、これまでにvimテーマを作成したことのあるフリークは、端末の色をカスタマイズしています。
アレックス

0

入れてみてください:

export TERM=xterm-256color

あなたのbashrcで。

それはそれを修正するはずです...


2
.bashrcまれに何かを修正する$ TERM値をエクスポートします。他の意図しない問題が発生する可能性が高くなります
...-jasonwryan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.