Tôi hiện đang làm việc trên một dự án C ++. Tôi đang sử dụng CMake làm hệ thống xây dựng và tôi rất thích có tất cả các tệp liên quan đến CMake (như CMakeLists.txt ) màu khác nhau trong ls đầu ra lệnh. Bằng cách này tôi có thể dễ dàng phân biệt chúng với các tệp mã nguồn.
Tôi đã cố gắng để cả hai sử dụng dircolors và chỉnh sửa trực tiếp $LS_COLORS env var. Tôi đã thất bại trong cả hai trường hợp. Dường như các giải pháp đó chỉ cung cấp một cách để tô màu một số tệp cụ thể của Linux (ví dụ: liên kết) hoặc các tiện ích mở rộng được chọn.
Tóm lại, đây là những gì tôi đã làm:
OLD_LS_COLORS=$LS_COLORS # Backup
export LS_COLORS="${LS_COLORS}CMakeLists.txt=00;36:" # Adding it at the beginning of the list also fails
ls # No colors at all
export LS_COLORS=$OLD_LS_COLORS # Cleanup
dircolors -p > ~/.dir_colors
echo "CMakeLists.txt 01;33" >> ~/.dir_colors
eval `dircolors ~/.dir_colors` # Throws "unrecognized keyword CMakeLists.txt"
Giải pháp cho vấn đề của tôi là tô màu các tệp nguồn ( .hxx, .cxx ) thay vào đó nhưng tôi chỉ muốn gắn bó với các tệp màu CMake. Mặt khác, tôi chỉ có thể tô màu .txt và .cmake các tệp nhưng sau đó tất cả các tệp văn bản sẽ được tô màu theo kiểu như vậy.
Tô màu một Makefile (một tệp không có phần mở rộng) trong ls đầu ra sẽ là một phần thưởng tốt đẹp.
Tôi đang sử dụng Debian 9 với bash 4.4.12 và ls 8.26.
Cảm ơn trước.