Vimのハイライト行を下線に変更するにはどうすればよいですか?


91

一部のカラースキームでは、現在の行の強調表示が背景を変更します。他の例では、砂漠など、現在の行に下線が引かれています。

下線ではなく別の背景色を使用するように、デザートで現在の線の強調表示を変更したい。どうやってやるの?

.vimrc

set cursorline
highlight Cursorline cterm=bold

更新:.vimrc問題を解決します

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

7
おそらく、質問の不幸な言い回しが原因です。私は声明を明確にするために自由に書き直したり、反対票を無効にした。
ib。

回答:


92
color desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

desertあなたのカラースキームです。(最初に来る必要があります)
に入れて、あなたの~/.vimrc


4
vimrcでこれらの行の後にcolorchemeをロードしている場合、新しいcolorchemeがすべてをクリアしている可能性があります。vimrcを配置する前に、Vimコマンドラインでテストします。
ハーバートシッツ

私はそれを修正する方法を知っています。あなたのコードでは、下線を太字に変更する必要があります!
ashim

3
@Idigas colorcolorscheme
kev '27

1
これはgvimまたはvim-gtkでうまく機能します。しかし、ターミナルvimでは、現在の行から下線を削除するだけです。現在の行は強調表示されません(少なくとも私にとっては!)。
Omid Kamangar 2013年

66

これは(すべての端末で)うまく機能します。

:hi CursorLine   cterm=NONE ctermbg=darkred ctermfg=white

端末の色の設定です:背景色-ctermbg、テキスト色-ctermfgグラフィカルウィンドウで使用するには、パラメーターを追加しますguibg=darkred guifg=white

次のコマンドを使用して、対応する列を強調表示することもできます。

:set cursorcolumn

エディタで1つのキーを押して、ハイライトのオンとオフを切り替えると便利です。これらの行をvimrcに追加します。

:nnoremap H :set cursorline! cursorcolumn!<CR>

「H」を入力すると、強調表示のオンとオフが切り替わります(必要に応じて、別のキーにマップします)。

詳細については、記事http://vim.wikia.com/wiki/Highlight_current_lineをご覧ください。


9
そしてcterm=NONE、最終的にカーソル行の下線を削除する設定です(私の場合)。
tbloncar 2014

1
Hデフォルトでは、バッファの最上部に移動するために使用されます。
quapka 2017

20

端末のgvimで取得するものと同様のスタイルで、構文の強調表示を保持します。

" first thing is entering vim mode, not plain vi
set nocompatible
" force 256 colors on the terminal
set t_Co=256
" load the color scheme before anything
colorscheme darkblue " or desert... or anything
" the syntax cmd is when the colorscheme gets parsed, i think..
syntax on
" might not be on by default, this enable the cursor line feature
set cursorline

" set the prefered colours, pick one line here only.
" dark grey, better you can get if you don't support 256 colours
hi CursorLine   cterm=NONE ctermbg=8 ctermfg=NONE
" light grey, no 256 colors
hi CursorLine   cterm=NONE ctermbg=7 ctermfg=NONE
" dark redish
hi CursorLine   cterm=NONE ctermbg=52 ctermfg=NONE
" dark bluish
hi CursorLine   cterm=NONE ctermbg=17 ctermfg=NONE
" very light grey
hi CursorLine   cterm=NONE ctermbg=254 ctermfg=NONE
" yelowish
hi CursorLine   cterm=NONE ctermbg=229 ctermfg=NONE
" almost black
hi CursorLine   cterm=NONE ctermbg=234 ctermfg=NONE

export TERM=xterm-256color256色の環境変数を設定して機能させることもできます。完全なカラーチャートはこちらです:upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt

1
ちなみに、set cursorline.vimrcの抜粋には欠落しています。それを理解するのに10分かかりました:)
apurkrt

13

下線を引く場合は、次のいずれかを使用します。

:hi CursorLine cterm=underline
:hi CursorLine gui=underline

それ以外の場合は、次のいずれかを使用します。

:hi CursorLine cterm=none
:hi CursorLine gui=none

8

カーソル線の強調表示の設定で同様の問題がありましたが、私の原因は、vimの終了時にセッション情報を保存するために使用していたmksessionコマンドが原因でした。このセッションは、ファイル引数なしで実行された場合、プログラムの起動時に自動的に復元されます。

誰かがこのような.vimrc設定をしている場合は、以下を.vimrcに追加して、カーソル線の強調表示を正しく設定できます。

function s:SetCursorLine()
    set cursorline
    hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()

これが機能する理由についての少しの説明。さまざまなバッファーおよびウィンドウ情報とともに、mksessionは現在のカラースキーム名を保存します。これは、プログラムの起動時にセッションの復元を通じて復元されます。ただし、通常、セッションの復元は.vimrcの実行後に行われるため(通常は 'autocmd VimEnter *'から呼び出される関数を使用)、復元されたcolorchemeのデフォルトで、.vimrcのカーソル線の強調表示設定がリセットされます。

autocmdを介して呼び出される上記の関数は、すべての初期化が完了した後に実行されるため、カーソル線の強調表示が正常に設定されます。

HTH。


0

.vimrc最終行を追加する必要があります:

highlight lineNr term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

set cursorline

highlight CursorLine term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

highlight CursorLineNr term=bold cterm=none ctermbg=none ctermfg=yellow gui=bold
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.