Я хочу использовать pygmentize
для выделения некоторых файлов скриптов (python / bash / ...) без расширения. Но pygmentize
требует, чтобы я указал лексер, используя -l
. Он не определяет тип файла автоматически из содержимого.
У меня под рукой есть следующие опции, но сейчас ни один из них не работает:
- используйте
file -b --mime-type
. Но эта команда выводит x-python
и x-shellscript
вместо python
и bash
, и я не знаю правил
- использовать
vim -e -c 'echo &ft|q' the_file
. Для любого файла с расширением или без него у vim есть механизм, позволяющий угадать тип файла. Но это не работает. Так как вывод идет в окно vim и исчезает после q
.
Что я могу сделать?
@ Метод Самборского нормально работает в обычном случае, но не работает в python subprocess.check_output
, так как pts не выделен. Если вы используете nvim
, вы можете использовать этот более простой способ:
HOME=_ nvim --headless -es file <<EOF
call writefile([&ft], "/dev/stdout")
EOF