Nền của Colorscheme không chính xác trong thiết bị đầu cuối


13

Tôi đã nhập các bảng màu và bảng màu mặt trời. Thiết bị đầu cuối của tôi có màu sắc và nền chính xác, gvim có màu sắc và nền chính xác, nhưng vim có nền màu không chính xác. Tất cả các văn bản đều đúng, nhưng nền có vẻ là màu đen thuần túy.

Đây là so sánh của Terminal, GVim và Vim

Đây là .vimrc của tôi:

syntax enable

if has('gui_running')
    set background=dark
else
    set background=dark
endif

:set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized

Nếu bất cứ ai có bất kỳ đề nghị về những gì có thể gây ra điều này, tôi sẽ có nghĩa vụ nhiều. Tôi chạy xubfox với thiết bị đầu cuối mặc định.

Tôi cũng nên đề cập rằng tùy chọn ánh sáng dẫn đến nền rất vàng cho Vim.


1
Bởi "[m] y terminal có màu sắc và nền chính xác", bạn có muốn nói rằng bạn đã làm theo lời khuyên cụ thể về Vim trong thiết bị đầu cuối không?
Andrew

2
Tôi đã làm theo lời khuyên, @Andrew. Cảm ơn bạn mặc dù.
Oberdiear

@Oberdiear Lời khuyên Andrew liên kết để giải thích rằng bạn nên thiết lập thiết bị đầu cuối của mình để sử dụng màu năng lượng mặt trời và không sử dụng g:solarized_termcolors=256tùy chọn. Nếu bạn hài lòng khi sử dụng màu năng lượng mặt trời trong thiết bị đầu cuối của mình, phương pháp này hoạt động tốt hơn nhiều. Văn bản câu hỏi của bạn ngụ ý rằng bạn đã thiết lập thiết bị đầu cuối của mình để sử dụng màu năng lượng mặt trời (mặc dù ảnh chụp màn hình bạn hiển thị không giống tôi), vậy trong trường hợp đó, tại sao bạn lại sử dụng g:solarized_termcolors=256cài đặt?
Giàu có

Bạn đang sử dụng thiết bị đầu cuối nào? Tôi có kịch bản này cho gnome-terminal.
wchargein

@Rich, tôi đoán rằng tôi không có bảng màu được thiết lập chính xác. Bạn (hoặc ai đó) có biết cách thiết lập chính xác điều đó cho Xfce Terminal không?
Oberdiear 23/2/2015

Câu trả lời:


10

Có hai lý do tại sao tôi nghĩ điều này có thể xảy ra:

  1. Bảng màu năng lượng mặt trời bạn đang sử dụng không khai báo ctermfgctermbgcho bất kỳ tính năng nào bạn muốn làm nổi bật. Hãy thử phối màu này , về cơ bản trông giống nhau cả bên trong thiết bị đầu cuối và gvim của bạn, nếu đây là trường hợp thì bạn có thể cần xem xét sử dụng bảng màu khai báo ctermfgctermbg.

  2. Bạn có thể cần đảm bảo trình giả lập thiết bị đầu cuối của bạn hỗ trợ các màu bạn đang cố hiển thị:


Lưu ý rằng cả hai điều này có thể xảy ra cùng một lúc, nhưng thật khó để chẩn đoán điều này nếu không có thêm thông tin về hệ thống của bạn.


Sa mạc256 hoạt động tốt, nhưng tôi không phải là một fan hâm mộ lớn. Tôi tin rằng TERMbiến là không chính xác, nhưng tôi không biết làm thế nào để thay đổi nó.
Oberdiear

2
Tôi đã cài đặt ncurses-hạn. Sau đó tôi chạy lệnh. Sau khi tôi chạy nó, tất cả văn bản sẽ chuyển sang màu xám và nền màu đen.
Oberdiear

1
Nó nên là export TERM=xterm+256color, KHÔNG "màu s " (số nhiều). Ngoài ra, tôi tin rằng đó là xterm-256color, KHÔNG "** + ** 256 màu, nhưng tôi có thể sai cụ thể về việc sử dụng nó với năng lượng mặt trời. Theo câu trả lời này ,# Entries with embedded plus signs are designed to be included through use/tc capabilities, not used as standalone entries.
Edward

export TERM=xterm+256colortrên OSX tôi nhận đượczle-line-finish:echoti:1: no such terminfo capability: rmkx
Xeoncross

Tôi đã có vấn đề chính xác này và export TERM=xterm+256colorsgiúp vim phát hiện năng lượng mặt trời và sử dụng màu nền chính xác như những gì thiết bị đầu cuối của tôi có.
Shyam Habarakada

5

Tin tuyệt vời, mọi người. @Tom và @Rich đưa tôi đi đúng đường. Tôi tìm thấy một giải pháp được cung cấp ở đây . Tôi đặt .vimrc của mình thành đơn giản

syntax enable
set background=dark
set t_Co=16
colorscheme solarized

Điều này dường như để sửa chữa mọi thứ. Màu sắc dường như không sáng bằng các ví dụ về phông chữ , nhưng đó rất có thể chỉ là tôi. Đối với bất kỳ ai muốn sử dụng bảng màu Solarized và sử dụng xfce4-terminal, chỉ cần thay đổi terminalrc và .vimrc dường như giải quyết các vấn đề chính của tôi. Nhờ mọi người giúp đỡ của bạn!


1
Bạn không cần set t_Codòng trong vimrc của mình: Vim có thể đọc giá trị này từ thiết bị đầu cuối (Cài đặt 't_Co'có vẻ là một chút sùng bái hàng hóa Vim: rất nhiều người trực tuyến khuyên bạn nên làm như vậy mà không thực sự hiểu vấn đề họ đang cố gắng giải quyết .)
Giàu

Tôi sẽ chỉ nói "màn hình" và "tmux" - những công cụ này thay đổi biến $ TERM để vim không thể đọc thông tin cần thiết.
NieDzejkob

@NieDzejkob Bạn có thể sử dụng bộ ghép kênh đầu cuối và vẫn có một thiết bị đầu cuối được cấu hình đúng.
Giàu

4

Tôi đoán đó là một vấn đề tương thích của điều này colorschemevới thiết bị đầu cuối. Các plugin csaproxgiải quyết một cách kỳ diệu một loạt các vấn đề này.

Tóm tắc:

Thật khó để tìm màu sắc cho thiết bị đầu cuối Vim. Hầu hết các bảng màu được viết để chỉ hỗ trợ GVim và hoàn toàn không hoạt động trong thiết bị đầu cuối Vim.

Plugin này tạo các màu sắc chỉ dành cho GVim Chỉ hoạt động trong terminal Vim, miễn là thiết bị đầu cuối hỗ trợ 88 hoặc 256 màu - và hầu hết làm được những ngày này. Điều này thường không yêu cầu tương tác với người dùng (nhưng hãy xem trợ giúp để làm gì nếu mọi thứ không hoạt động). Sau khi cài đặt plugin này một cách vui vẻ, bất cứ khi nào bạn sử dụng :colorschemenó sẽ làm điều kỳ diệu của nó và làm cho colorcheme Just Work.

Liên kết đến plugin:


1
Đây là một plugin hữu ích, nhưng sẽ không giúp ích gì ở đây, vì colorcheme đã được nỗ lực hóa đáng kể để hoạt động trong thiết bị đầu cuối Vim dưới cả hai thiết bị đầu cuối 16 màu và 256 màu.
Giàu

4

Thiết bị đầu cuối năng lượng mặt trời-Vim có thể hoạt động theo một trong hai cách khác nhau.

  1. Chế độ 16 màu: Solarized chỉ chứa 16 màu, vì vậy ở chế độ này, bạn đặt thiết bị đầu cuối của mình sử dụng các màu được năng lượng hóa thành 16 màu và màu Vim chỉ sử dụng các màu này. Vì vậy, ví dụ, màu Vim sẽ yêu cầu màu của thiết bị đầu cuối "1" và thiết bị đầu cuối hiển thị màu này dưới dạng màu hex # dc322f.

  2. Chế độ 256 màu, trong đó nó chọn các kết quả khớp gần nhất cho 16 màu của nó từ bảng màu 256 màu.

Phương pháp trước đây được tác giả (và bởi tôi) khuyến nghị mạnh mẽ và có vẻ như bạn rất vui khi sử dụng phương pháp này vì bạn nói rằng "thiết bị đầu cuối của bạn có màu sắc và nền chính xác".

Tuy nhiên, nó xuất hiện từ ảnh chụp màn hình của bạn rằng thiết bị đầu cuối của bạn không có màu chính xác được đặt. .

Nếu bạn loại bỏ cài đặt dòng t_Cog:solarized_termcolorstừ vimrc * của bạn và định cấu hình màu thiết bị đầu cuối của bạn một cách chính xác, thì bạn sẽ thấy rằng bảng màu mặt trời 16 màu sẽ bắt đầu hoạt động.

* Những dòng này chuyển sang sử dụng chế độ 256 màu (ít trung thành) hơn. Điều này cũng hoạt động, (tôi nghi ngờ rằng @Jubal là chính xác khi đề xuất rằng BCE là vấn đề ở đây ), nhưng chế độ 16 màu là thích hợp hơn trừ khi bạn rõ ràng không muốn sử dụng năng lượng mặt trời trong thiết bị đầu cuối của mình.


Tôi tin rằng bạn hoàn toàn đi đúng hướng. Tôi nghĩ rằng tôi không có bảng màu được cài đặt chính xác. Bạn có thể hướng dẫn tôi qua quá trình? Tôi đánh giá cao tất cả sự giúp đỡ của bạn, @Rich.
Oberdiear

1
Nó xuất hiện liên kết đầu tiên của bạn bây giờ đã chết.
akozi

@azoki Cảm ơn đã cho tôi biết. Có vẻ như trang web Solarized đang được xây dựng lại. Tôi đã thay đổi liên kết để trỏ vào repo github trong thời gian này.
Giàu

3

Có vẻ như bạn đã tìm thấy câu trả lời của mình. Tôi đã có vấn đề tương tự và không có gì ở trên làm việc. Những gì làm việc cho tôi là sử dụng sự thay thếterminalrc , trái ngược với sgerrand .

Liên quan của tôi vimrcchỉ đơn giản là:

syntax enable
set background=dark
colorscheme solarized

Mong rằng sẽ giúp được ai đó!


1

Vì vậy, đây là những gì hoạt động với tôi (trên tất cả các thiết bị đầu cuối tôi từng sử dụng - xterm, konsole, gnome-terminal, iterm2, roxterm - trên cả Linux và OS X, cũng với gvim và macvim):

" no other configuration than this needed for solarized
colorscheme solarized
highlight SpecialKey ctermfg=11 ctermbg=8

if &term =~ '256color'
  " Disable Background Color Erase (BCE) so that color schemes work
  " properly within 256-color terminals
  set t_ut=
endif

Điều này gây ra sự cố tương tự với cài đặt t_Co = 16. Tôi khá chắc chắn rằng tôi có một vấn đề với bảng màu, nhưng tôi vẫn chưa tìm ra.
Oberdiear 23/2/2015

Trình giả lập thiết bị đầu cuối nào bạn đang sử dụng? Nếu tôi nhớ lại một cách chính xác, cấu hình năng lượng mặt trời tích hợp của konsole không hoàn toàn có thể sử dụng được và người ta cần sử dụng các cài đặt từ kho lưu trữ năng lượng mặt trời ban đầu
Jubal

Tôi sử dụng Xfce Terminal.
Oberdiear 23/2/2015

Tôi nghĩ rằng tôi đã làm cho nó hoạt động: cố gắng buộc TERM thành xterm-256color, trong khi sử dụng cài đặt sẵn được năng lượng hóa từ các tùy chọn của thiết bị đầu cuối, chứ không phải từ kho lưu trữ git xfce-terminal được năng lượng hóa. Điều này cùng với việc hack BCE ở trên đã thực hiện thủ thuật xfce4-terminal cho tôi.
Jubal

(Vẫn còn một cái gì đó tẻ nhạt với mô phỏng thiết bị đầu cuối kết xuất phông chữ bên dưới , và tôi đoán rằng tôi đã được nhắc nhở tại sao tôi quay lại xterm cũ trên Linux mộc)
Jubal

0

Đây là một nỗi đau để làm việc (tôi sử dụng thiết bị đầu cuối Vim trong Linux Mint) và thật không may, tôi đã không viết ra chi tiết cụ thể của tất cả mọi thứ tôi đã làm. Đây là phần có liên quan của vimrc của tôi:

syntax enable
set background=dark
set t_Co=16
colo solarized

Nó cũng có thể đáng để kiểm tra dự án này trên GitHub .


đặt t_Co = 16 làm cho màu sắc hoàn toàn khác với những gì được mong đợi. Tôi cũng đang sử dụng thiết bị đầu cuối Xubfox mặc định là Xfce-Terminal.
Oberdiear

@Oberdiear Nếu cài đặt t_Co = 16 ảnh hưởng đến màu sắc theo cách đó (với bỏ đặt biến g: solarized_termcolors) thì điều đó có nghĩa là màu thiết bị đầu cuối của bạn không được thiết lập chính xác để sử dụng năng lượng mặt trời. Làm thế nào bạn đang thiết lập màu sắc thiết bị đầu cuối của bạn?
Giàu

0

Điều làm việc cho tôi là xóa phần này trong cài đặt của bạn

if has('gui_running')
   set background=dark
else
   set background=dark
endif

Tôi đang chạy một thiết bị đầu cuối xfce4


0

Tôi đã có vấn đề này quá với xfce-terminal.

Sau một chút nghiên cứu, tôi phát hiện ra lỗi này : bất cứ điều gì bạn đặt như $TERMtrong thiết bị đầu cuối XFCE của bạn đều âm thầm bỏ qua.

Tôi nghĩ rằng đây thực sự là một lỗi của thư viện VTE cũ (và không rõ ràng) mà thiết bị đầu cuối XFCE (vẫn dựa trên GTK + 2) sử dụng. Chuyển sang thiết bị đầu cuối GTK + 3, sử dụng hoàn toàn thư viện VTE mới , đã giải quyết được vấn đề.

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.