Bagaimana cara mengubah garis sorotan Vim saya menjadi bukan garis bawah?

91

Dalam beberapa skema warna, garis saat ini menyoroti latar belakang perubahan, di lain, seperti Gurun, garis saat ini digarisbawahi.

Saya ingin mengubah penyorotan garis saat ini di Gurun untuk menggunakan warna latar yang berbeda daripada menggarisbawahi. Bagaimana saya bisa melakukan itu?

Saya .vimrc:

set cursorline
highlight Cursorline cterm=bold

Pembaruan: .vimrcyang memecahkan masalah

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40
ashim
sumber
7
Mungkin karena kata-kata pertanyaan yang tidak menguntungkan. Saya mengambil kebebasan untuk menulis ulang untuk mengklarifikasi pernyataan tersebut, dan juga menetralkan suara negatif.
ib.

Jawaban:

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

desertadalah skema warna Anda. (harus diutamakan)
taruh di~/.vimrc

kev
sumber
4
Jika Anda memuat skema warna setelah garis-garis itu di vimrc, maka skema warna baru mungkin membersihkan semuanya. Uji pada baris perintah Vim sebelum mencoba memasukkan vimrc.
Herbert Sitz
Saya tahu bagaimana memperbaikinya. Dalam kode Anda, kami harus mengubah garis bawah menjadi tebal!
ashim
3
@Idigas coloradalah singkatan daricolorscheme
kev
1
Ini bekerja dengan baik di gvim atau vim-gtk. Tapi di terminal vim itu hanya menghilangkan garis bawah dari baris saat ini. Itu tidak menyoroti baris saat ini (setidaknya tidak untuk saya!).
Omid Kamangar
66

Ini bekerja lebih baik (di setiap terminal) untuk saya.

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

Ini adalah pengaturan warna untuk terminal: warna latar belakang - ctermbg , dan warna teks - ctermfg . Untuk menggunakan di jendela grafis, tambahkan parameterguibg=darkred guifg=white

Anda juga dapat menyorot kolom yang sesuai, menggunakan perintah:

:set cursorcolumn

Berguna untuk mengaktifkan dan menonaktifkan penyorotan dengan menekan satu tombol di editor. Tambahkan baris ini ke vimrc Anda :

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

mengetik 'H' akan mengaktifkan dan menonaktifkan penyorotan (Petakan ke kunci lain jika Anda mau)

Anda dapat menemukan info lebih lanjut di artikel: http://vim.wikia.com/wiki/Highlight_current_line

srnka
sumber
9
Dan cterm=NONEmerupakan pengaturan yang pada akhirnya menghilangkan garis bawah garis kursor (dalam kasus saya).
tbloncar
1
Hsecara default digunakan untuk pindah ke bagian atas buffer.
quapka
20

untuk gaya yang mirip dengan yang Anda dapatkan di gvim di terminal, dengan mempertahankan sorotan sintaks:

" 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
gcb
sumber
Anda juga dapat mengatur variabel lingkungan export TERM=xterm-256coloruntuk 256 warna agar berfungsi. Bagan warna lengkap di sini: upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt
1
By the way set cursorlinehilang dari kutipan .vimrc Anda. Butuh waktu 10 menit untuk mengetahuinya :)
apurkrt
14

Jika Anda ingin mengaktifkan garis bawah, gunakan salah satu dari:

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

Jika tidak, gunakan salah satu dari:

:hi CursorLine cterm=none
:hi CursorLine gui=none
pengguna5920118
sumber
8

Saya memiliki masalah yang sama saat mengatur sorotan garis kursor, tetapi masalah saya adalah karena perintah mksession yang saya gunakan untuk menyimpan informasi sesi selama keluar dari vim. Sesi ini kemudian secara otomatis dipulihkan selama startup program, jika dijalankan tanpa argumen file apa pun.

Jika ada yang memiliki pengaturan .vimrc seperti ini, Anda dapat menambahkan yang berikut ini ke .vimrc untuk menyetel sorotan garis kursor dengan benar: -

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

Sedikit penjelasan mengapa ini berhasil. Bersama dengan berbagai informasi buffer dan jendela, mksession menyimpan nama skema warna saat ini. Ini dipulihkan selama startup program melalui pemulihan sesi. Namun, karena pemulihan sesi biasanya dilakukan setelah .vimrc dijalankan (biasanya menggunakan fungsi yang dipanggil melalui 'autocmd VimEnter *'), pengaturan sorotan garis kursor di .vimrc disetel ulang secara default untuk skema warna yang dipulihkan.

Fungsi di atas, dipanggil melalui autocmd, akan dijalankan setelah semua inisialisasi selesai dan karena itu berhasil menyetel sorotan garis kursor.

HTH.

Hari Mahadevan
sumber
0

Anda harus menambahkan .vimrcgaris akhir:

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
csx
sumber