Sử dụng bảng màu với vim và putty


13

Tôi đang cố gắng sử dụng bảng màu sa mạc với VIM 7.0 trên CentOS 5.6 x64 ở đây:

http://hans.frif.net/vim/colors/desert.vim

Tôi đã tải tập tin và lưu nó trong ~/.vim/colorsthư mục của tôi . Sau đó tôi nói với VIM sử dụng bảng màu bằng cách phát hành:

:colors desert

Nó được cho là trông như thế này:

nhập mô tả hình ảnh ở đây

Tuy nhiên tôi nhận được điều này:

nhập mô tả hình ảnh ở đây

Tôi đang đăng nhập vào máy chủ này như một người dùng thông thường (không roothoặc sudo) sử dụng PuTTY 0.60 và đã đặt các tùy chọn sau trong Window -> Colours:

Cho phép thiết bị đầu cuối chỉ định màu ANSI - đã chọn
Cho phép thiết bị đầu cuối sử dụng chế độ 256 màu - đã chọn
Kiểm tra in đậm là một màu khác nhau - đã kiểm tra
Cố gắng sử dụng bảng màu logic - không được kiểm tra
Sử dụng màu hệ thống - không được kiểm tra

Nếu tôi sudohoặc đăng nhập như rootvà thử giống nhau, tôi sẽ không nhận được bất kỳ màu nào ngoài văn bản màu trắng trên nền đen.

Có phải các chương trình này chủ yếu nhắm vào gVIM và PuTTY chỉ không thể hiển thị các màu này?

Tôi đã tìm hiểu một chút và tìm hiểu những bài viết như bài này nhưng chúng không hoạt động.

Câu trả lời:


21

Theo mặc định, PuTTY thể hiện chính nó như xterm. Cơ sở dữ liệu terminfo , được sử dụng bởi các chương trình khác nhau để xác định khả năng của thiết bị đầu cuối, cho biết chỉ xtermhỗ trợ tám màu:

$ infocmp -1L xterm | grep max_colors

Điều này có nghĩa là ngay cả khi phiên bản Xterm của bạn không hỗ trợ chế độ 256 màu, các chương trình sẽ không biết về nó.

  • Cách khắc phục đơn giản nhất là đặt biến môi trường $ TERM của bạn thành xterm-256color.

    (Trong ~ / .profile của bạn, bạn có thể sử dụng
    if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi:)

  • Bạn có thể yêu cầu PuTTY luôn tự nhận mình là xterm-256color, thông qua Cấu hình → Kết nối → Dữ liệu → Chuỗi loại thiết bị đầu cuối .

    Lưu ý: Nếu bạn sử dụng # 1 hoặc # 2 và bạn kết nối với máy chủ không mục nhập terminfo phù hợp, tất cả các chương trình TUI sẽ bị hỏng.

  • Bạn cũng có thể đặt 't_Co'tùy chọn trong vim 256để ghi đè giá trị terminfo.

    if &term == "xterm"
        set t_Co=256
    endif
    
  • Hoặc bạn có thể chỉnh sửa cơ sở dữ liệu terminfo .

    $ infocmp -L -1 xterm | sed -r 's/(max_colors)#[0-9]+/\1#256/' > /tmp/xterm
    $ tic /tmp/xterm
    

    Các mục cập nhật sẽ được giữ trong ~/.terminfo.


Câu trả lời tuyệt vời. Nó tốt hơn, nhưng tôi có cảm giác 256 màu không đủ để thể hiện các sắc thái pastel này. Bất cứ ý tưởng tại sao tôi không nhận được bất kỳ màu sắc nào khi đăng nhập như root?
Kev

1
@Kev: 1) Chế độ 256 màu là tốt nhất bạn có thể có trên trình giả lập thiết bị đầu cuối tương thích VT100. (Tôi nghe nói KDE Konsole có hỗ trợ màu sắc thật, nhưng nó rất không chuẩn.) 2) Khi bạn đăng nhập với quyền root, bạn sẽ có một thư mục nhà riêng và cũng có một thư mục riêng ~/.vim/colors.
grawity

1
@Kev: Bởi vì vi không có lược đồ màu hoặc tô sáng cú pháp - hoặc bất cứ thứ gì ngoại trừ các tính năng cơ bản ban đầu. (Vim "Vi Cải thiện" sau tất cả.)
grawity

1
vi --versionnói đó là vim, vậy nó có phải là vim cắt lại để làm cho nó trông giống vi không? Xin lỗi nếu đó là một câu hỏi ngớ ngẩn, đã nhiều năm kể từ khi tôi làm việc với unix trong sự tức giận (các hộp SCO Unix có cổng nối tiếp) và chỉ có vi (vi thực).
Kev

1
Sắp xếp Khi bạn chạy vim là " vi", nó sẽ bắt đầu ở chế độ "tương thích", hoạt động nhiều nhất có thể như vi. Tôi không biết CentOS, vì vậy tôi không chắc đây chỉ là một chế độ, hay một bản dựng hoàn toàn tách biệt. (Bản phân phối của tôi gói vi thực sự thay vì ...)
grawity
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.