Tên tệp cụ thể màu (không phải phần mở rộng) trong đầu ra `ls` như Makefile hoặc CMakeLists.txt


0

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.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.

Câu trả lời:



0

Tôi không biết nếu bạn có thể làm điều đó với ls trực tiếp (Nhưng nó có thể là ...)

Ý tưởng của tôi sẽ là, để đầu ra ls để sed, có thể tô màu nó phù hợp với regex.

Có một đoạn hay làm điều này: https://github.com/kepkin/dev-shell-essentials/blob/master/highlight.sh

Bạn có thể viết một chuỗi các ống khớp với tất cả các tệp cmake: ls | highlight blue CMakeLists.txt | highlight blue foobar.baz ... (và tạo bí danh cho việc này)

Nhưng điều này tất nhiên là một cách giải quyết.

Lựa chọn cá nhân của tôi sẽ là sử dụng các bản dựng ngoài nguồn và giữ các tệp cmake tách biệt ở một mức độ nhất định. Nhưng đây không phải là một câu trả lời cho câu hỏi của bạn và có thể không thể thực hiện được trong cấu trúc dự án của bạ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.