В настоящее время я работаю над проектом C++. Я использую CMake в качестве системы сборки, и я хотел бы, чтобы все связанные с CMake файлы (например, CMakeLists.txt
) по-разному окрашивались в выводе команды ls
. Таким образом, я мог легко отличить их от файлов исходного кода.
Я пытался как использовать dircolors
и редактировать напрямую $LS_COLORS
env var. Я потерпел неудачу в обоих случаях. Похоже, что эти решения предоставляют только способ окрасить либо некоторые специфичные для Linux файлы (например, ссылки), либо выбранные расширения.
Подводя итог, вот что я сделал:
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"
Обходной путь для моей проблемы - закрасить исходные файлы (.hxx
, .cxx
), но я бы хотел только раскрасить файлы CMake. С другой стороны, я могу просто раскрасить файлы .txt
и .cmake
но тогда все текстовые файлы будут окрашены таким образом.
Раскраска Makefile (файла без расширения) в вывод ls
была бы хорошим бонусом.
Я использую Debian 9 с bash
4.4.12 и ls
8.26.
Заранее спасибо.