Làm cách nào để thay đổi dòng đánh dấu Vim của tôi thành dòng gạch dưới?


91

Trong một số màu sắc, phần tô sáng dòng hiện tại sẽ thay đổi nền, trong những màu khác, như Sa mạc, dòng hiện tại được gạch dưới.

Tôi muốn thay đổi tô sáng dòng hiện tại trong Sa mạc để sử dụng màu nền khác thay vì gạch dưới. Làm thế nào tôi có thể làm điều đó?

Của tôi .vimrc:

set cursorline
highlight Cursorline cterm=bold

Cập nhật: .vimrcgiải quyết vấn đề

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

7
Có lẽ là do cách diễn đạt câu hỏi không hay. Tôi đã tự do viết lại nó để làm rõ tuyên bố, và cũng vô hiệu hóa cuộc bỏ phiếu tiêu cực.
ib.

Câu trả lời:


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

desertlà màu sắc của bạn. (nên đến trước)
hãy đặt nó vào~/.vimrc


4
Nếu bạn đang tải một colorcheme sau những dòng đó trong vimrc thì colorcheme mới có thể xóa mọi thứ. Kiểm tra trên dòng lệnh Vim trước khi thử đưa vào vimrc.
Herbert Sitz

Tôi biết làm thế nào để sửa chữa nó. Trong mã của bạn, chúng tôi nên thay đổi gạch chân thành in đậm!
ashim 27/12/11

3
@Idigas colorlà viết tắt củacolorscheme
kev 27/12/11

1
Điều này hoạt động tốt trong gvim hoặc vim-gtk. Nhưng trong vim terminal, nó chỉ xóa gạch chân khỏi dòng hiện tại. Nó không làm nổi bật dòng hiện tại (ít nhất là không đối với tôi!).
Omid Kamangar

66

Điều này hoạt động tốt hơn (trong mọi thiết bị đầu cuối) đối với tôi.

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

Đó là cài đặt màu cho thiết bị đầu cuối: màu nền - ctermbg và màu văn bản - ctermfg . Để sử dụng trong cửa sổ đồ họa, hãy thêm các tham sốguibg=darkred guifg=white

Bạn cũng có thể đánh dấu cột tương ứng bằng cách sử dụng lệnh:

:set cursorcolumn

Sẽ rất hữu ích khi bật và tắt đánh dấu bằng cách nhấn một phím trong trình chỉnh sửa. Thêm những dòng này vào vimrc của bạn :

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

'H' sẽ bật và tắt đánh dấu (Ánh xạ nó sang một phím khác nếu bạn muốn)

Bạn có thể tìm thêm thông tin trong bài viết: http://vim.wikia.com/wiki/Highlight_current_line


9
cterm=NONElà cài đặt cuối cùng loại bỏ gạch dưới của dòng con trỏ (trong trường hợp của tôi).
tbloncar

1
Htheo mặc định được sử dụng để di chuyển lên đầu bộ đệm.
quapka

20

cho một phong cách tương tự như một phong cách bạn nhận được trong gvim trong thiết bị đầu cuối, giữ nguyên phần đánh dấu cú pháp:

" 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

Bạn cũng có thể đặt biến môi trường export TERM=xterm-256colorđể 256 màu hoạt động. Bảng màu hoàn chỉnh có tại đây: upload.wikimedia.org/wikipedia/vi/1/15/Xterm_256color_chart.svg
apurkrt

1
Nhân tiện, set cursorlinephần trích .vimrc của bạn còn thiếu. Đã cho tôi 10 phút để con số đó ra :)
apurkrt

13

Nếu bạn muốn bật gạch dưới, hãy sử dụng một trong hai:

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

Nếu không, hãy sử dụng một trong những:

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

8

Tôi đã gặp sự cố tương tự khi đặt điểm đánh dấu con trỏ, nhưng lỗi của tôi là do lệnh mksession mà tôi đang sử dụng để lưu thông tin phiên trong khi thoát vim. Phiên này sau đó sẽ tự động được khôi phục trong quá trình khởi động chương trình, nếu nó chạy mà không có bất kỳ đối số tệp nào.

Nếu bất kỳ ai có thiết lập .vimrc như thế này, bạn có thể thêm phần sau vào .vimrc để đặt đánh dấu dòng con trỏ một cách chính xác: -

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

Một chút giải thích tại sao điều này hoạt động. Cùng với các thông tin về bộ đệm và cửa sổ khác nhau, mksession lưu tên colorcheme hiện tại. Điều này được khôi phục trong quá trình khởi động chương trình thông qua khôi phục phiên. Tuy nhiên, vì quá trình khôi phục phiên thường được thực hiện sau khi .vimrc đã được chạy (thường sử dụng một hàm được gọi thông qua 'autocmd VimEnter *'), cài đặt tô sáng dòng con trỏ trong .vimrc được đặt lại theo mặc định cho các màu được khôi phục.

Hàm trên, được gọi thông qua autocmd, sẽ được chạy sau khi quá trình khởi tạo hoàn tất và do đó thiết lập thành công điểm đánh dấu dòng con trỏ.

HTH.


0

Bạn phải thêm .vimrcdòng kết thúc:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.