2012-04-01 40 views
7

Tôi đã chơi với các bảng phối màu cho thiết bị đầu cuối VIM và đã tìm thấy điều gì đó gây phiền toái mà tôi không thể giải quyết được.Tại sao bảng màu 256 thay đổi trong thiết bị đầu cuối VIM trên OS X?

Tôi hy vọng 16 màu hệ thống sẽ thay đổi. Họ rõ ràng là cấu hình. Vì lý do đó, tôi đã cố gắng sử dụng bảng màu 256 để xây dựng một bảng màu VIM sẽ giống nhau bất kể bảng màu hệ thống 16 (cấu hình) của thiết bị đầu cuối.

Tôi chỉ sử dụng các màu từ bảng màu 256 cho mọi thứ, kể cả nền. Tuy nhiên, tôi nhận thấy rằng nếu tôi mở các thiết bị đầu cuối với các màu nền và màu văn bản khác nhau được chỉ định cho các đầu cuối, thì các lược đồ màu VIM xuất hiện khá khác nhau ở hai đầu cuối.

Tôi không thấy hành vi tương tự trên Ubuntu ngay cả khi các thiết bị đầu cuối có các bảng màu nền, nền trước và hệ thống màu khác nhau.

Tôi sẽ vui vẻ chấp nhận câu trả lời giải thích lý do tại sao điều này xảy ra.

Tôi sẽ ngây ngất nếu có ai đó có thể cho tôi biết một cách khác xung quanh việc thiết lập thiết bị đầu cuối cụ thể cho từng bộ cài đặt màu mà tôi muốn sử dụng.

+1

Chỉ cần được rõ ràng, bạn đang sử dụng 't_Co = 256' và 'HẠN = xterm-256color' đúng? –

+0

Vâng, điều đó đã được đưa về LOOOONG trước đây. :) – toadjamb

+0

nó có thể là điều chỉnh tự động như được mô tả ở đây: http://apple.stackexchange.com/questions/29487/is-it-possible-to-disable-terminals-automatic-tweaking-of-colors-in- sư tử –

Trả lời

4

Theo mặc định, thiết bị đầu cuối ANSI là 16 thiết bị màu và lược đồ màu Vim hoạt động trong gvim sẽ không hoạt động chính xác trong thiết bị đầu cuối.

Một số thiết bị đầu cuối có khả năng 88 hoặc 256 màu. Bạn có thể nói với Vim về điều này bằng cách đặt t_Co. Tất nhiên, 256 màu vẫn nhỏ hơn RGB đầy đủ mà bạn có trong gvim.

Có một gói cho vim gọi là CSApprox được phát triển bởi Matt Wozniski. Nó cho phép bạn sử dụng các lược đồ màu gvim với các màu gần đúng.

Đây là những gì tôi sử dụng bản thân mình.

CSApprox bao gồm tệp tài liệu giải thích mọi thứ tốt hơn tôi có thể ở đây.

URL: http://www.vim.org/scripts/script.php?script_id=2390

Chúc may mắn.

P.S. về câu hỏi của bạn Tuy nhiên, tôi nhận thấy rằng nếu tôi mở các thiết bị đầu cuối có các màu nền và văn bản khác nhau được chỉ định cho các đầu cuối, thì các lược đồ màu VIM xuất hiện khá khác nhau ở hai đầu cuối.

Điều đó nghe như thiết bị đầu cuối OSX không tách biệt định nghĩa màu khỏi bảng màu xterm 256; tức là bằng cách điều khiển các thiết lập của nó, bạn đang rối tung với bảng màu hoặc thứ gì đó tương tự.

Thiết bị đầu cuối có lẽ nên giữ 16 màu có thể định cấu hình người dùng riêng biệt với bảng màu 256.

+1

Một bit hữu ích của thông tin, về nơi mở rộng ANSI hỗ trợ nhiều màu sắc hơn đến từ: http: // www.mudpedia.org/wiki/Xterm_256_colors – Kaz

+0

Tôi đã biết về CSApprox trong một thời gian dài, nhưng có hai vấn đề khi sử dụng nó. Một là tôi chỉ sử dụng thiết bị đầu cuối VIM và không quan tâm đến GVim. Thứ hai là tôi rất cầu kỳ về màu sắc của tôi và muốn chọn chúng rất cụ thể. – toadjamb

+0

'CSApprox' không dành cho gvim. Đó là chính xác cho những người dùng không sử dụng gvim nhưng thiết bị đầu cuối. Nó chỉ là gvim là mô hình tham chiếu cho cách phối màu được cho là hiển thị. Nếu bạn đang cầu kỳ về màu sắc (tôi muốn chọn mỗi một trong số 24 bit RGB) thì tôi nghĩ rằng bạn đang ra khỏi may mắn làm điều đó thông qua Vim. Bạn phải chỉnh sửa bảng màu của thiết bị đầu cuối thông qua cơ chế tùy chọn của nó. – Kaz

0

Vui lòng đăng ảnh chụp màn hình để chúng tôi thấy những gì bạn thấy. Thật khó để nói về màu sắc mà không nhìn thấy chúng hoặc so sánh các giá trị số của chúng.

Vâng, tôi vẫn đang ở trên 10.6.8 nên tôi chưa bao giờ thích khả năng hiển thị 256 màu của Terminal.app.

Nhưng, AFAIK, 16 màu mặc định của nó không được lấy từ bảng màu X11.Chúng có thể được mã hóa ở đâu đó và giá trị của chúng là người dùng có thể cấu hình được. Do đó, tôi không biết tại sao thay đổi giá trị Red mặc định thành bất kỳ thứ gì sẽ thay đổi giao diện của màu sắc Vim của bạn.

Tuy nhiên, Terminal.app (giống như hầu hết các giả lập thiết bị đầu cuối khác) cho phép bạn thay đổi các giá trị của Background, Text, Bold, SelectionCursor. Tùy thuộc vào cách màu sắc của bạn được viết một số cài đặt này có thể ghi đè lên các phần của colorscheme của bạn, Background, đáng chú ý nhất.

Tôi đã có nền Terminal.app khớp với nền của Vim colorscheme trong một thời gian dài với kết quả tuyệt vời. Vâng, ít nhất là cho một bộ mô phỏng thiết bị đầu cuối 16 màu.

0

Chế độ màu 256 vẫn chỉ là một bảng được lập chỉ mục, giống như chế độ màu 8 và 16. Ứng dụng này chỉ đơn giản là chọn một màu theo chỉ mục từ một bảng màu, và nó đến thiết bị đầu cuối để quyết định màu nào thực sự là. Hai thiết bị đầu cuối khác nhau xảy ra để chọn cùng màu cho các chỉ mục này có thể chỉ là một khối RGB màu 216 có 6 cấp độ của mỗi thành phần, vì vậy cách tự nhiên "rõ ràng" để gán các màu đó sẽ là để chọn từng từ danh sách (0, 0x33, 0x66, 0x99, 0xcc, 0xff). Tôi tưởng tượng hầu hết các thiết bị đầu cuối sẽ làm điều này, và do đó cung cấp cho cùng một màu sắc tại các chỉ số tương tự.

Nếu hai thiết bị đầu cuối khác nhau, nó chỉ đơn giản là một dấu hiệu cho thấy chúng đang sử dụng một số phương pháp lựa chọn màu sắc thực tế khác của chúng.

+0

Bảng màu 256 mặc định về cơ bản giống nhau trên tất cả các trình mô phỏng đầu cuối. Giá trị màu sắc chính xác có thể thay đổi, nhưng có một mô tả "chuẩn" của tập hợp màu mặc định. Hiệu chỉnh màu cũng có thể tạo ra các biến thể nhỏ. –

2

Thiết bị đầu cuối tự động điều chỉnh một số giá trị màu để đảm bảo độ tương phản tối thiểu với màu nền. Có lẽ đó là những gì bạn đang thấy.

Vui lòng đính kèm ảnh chụp màn hình hiển thị hai lược đồ màu khác nhau. Một kịch bản hay để xem các màu hiện có là 256colors2.pl.

0

Nếu bạn đang sử dụng iTerm2 thì bạn có thể cần phải thay đổi loại thiết bị đầu cuối nào đang báo cáo.

Trong Preferences iTerm2 của bạn> Hồ sơ> Terminal> Báo cáo ga Type, thiết lập để xterm-256color

0

Trong Terminal.app aka của Apple Terminal, màu sắc sẽ thay đổi nếu màu nền là không rõ ràng thiết lập như là tốt.

Vì vậy, với màu sắc của bạn, bạn phải thiết lập màu nền mặc định bằng cách sử dụng nhóm Normal màu sắc, ví dụ .:

hi Normal ctermfg=188 ctermbg=234 

và sau đó bạn sẽ không thấy bất kỳ thay đổi màu sắc.

Lưu ý: Tôi đã chỉ nhận tiền cảnh bị ảnh hưởng có lẽ vì thế mà bạn không bỏ lỡ bất kỳ kết quả quan trọng;)

Các vấn đề liên quan