web-dev-qa-db-ja.com

.vimrcで現在の行とカーソルを強調表示するにはどうすればよいですか?

Vimの現在の行とカーソル位置を強調表示しようとしています。これが私の.vimrcです:

set cursorline
hi CursorLine ctermbg=8 ctermfg=15 "8 = dark gray, 15 = white
hi Cursor ctermbg=15 ctermfg=8

私が経験している問題は、現在の線の背景色がカーソルの背景色を覆ってしまうため、次のようになります。

The current line is highlighted but the cursor is not.

前景色はほとんど黒なので、カーソルがどこにあるかははっきりとわかりますが、カーソルがスペース上または行の先頭/末尾にある場合は、移動しない限りどこにあるのかわかりません。

The cursor is at the end of the line, though you'd never know it.

ここで何が悪いのですか?

14
Big McLargeHuge

カーソル線の色を、カーソルの色以外の色に変更する必要があります。 strxvtなどのターミナルエミュレータを使用している場合、Vimはカーソルの色を変更できません。これは常に、ターミナルアプリケーションが決定する色です。カーソルの色を変更できるのは、グラフィックバージョンのVimだけです。

ただし、端末の設定でカーソルの色を変更できます。

~/.Xdefaults/~/.Xresourcesの例:

XTerm*cursorColor: #FFFFFF
URxvt.cursorColor: white

Vimコマンド:set cursorcolumnを使用して、カーソルを十字線に置くこともできます。

14
user26112

Vimを起動するたびにコマンドを入力したくない場合は、.vimrcファイルにコマンドを入力する必要があります。

whereis vim    
*#type in your linux terminal* 

(場所は異なりますが、配色は/usr/share/vim/vim74/colors/になります。

既存の配色をリストすることができます

ls /usr/share/vim/vim74/colors/    

リストされているものとは異なる配色を試してください

:colorscheme desert
:colorscheme delek

Vimの次のコマンドは、カーソルの位置で垂直線をアクティブにします。

set cursorcolumn 
hi CursorColumn ctermbg=8

切り替えます(感嘆符を使用して、すべてのset-commandで機能します)

set cursorcolumn!

例えば:

set cursorline
set cursorline!

hi CursorLine ctermbg=235
*#defines a gray colour for the horizontal line*

以下はxtermの色の表です: link

ctermbg=...を定義して数値を使用します(... =テーブルの色番号)ctermfg=...を試すこともできますが、使用する価値はありません。

7
spinne