如何配置 nano 以将制表符设置为 4 个空格(Makefile 除外)?

How to configure nano to set tab to 4 spaces except for Makefiles?

有没有办法告诉 nano 对于每个文件 使用 4 个空格而不是 TAB Makefile 除外?

我在 .bashrc 文件中使用以下内容:

nano() {
  [[ -n  ]] && [[ `basename ""` =~ (Makefile|makefile|GNUmakefile|.+\.mk) ]] && command nano --tabsize 2 "$@" || command nano --tabstospaces --tabsize 4 "$@"
}

检查的名称取自 GNU Make 手册的 What Name to Give Your Makefile 章节,并根据他们的建议进行排序。

为简单起见,我只检查第一个参数。在我的情况下,这就足够了,因为在 .nanorc 中设置了任何其他配置设置(nb: 如果存在,您需要从 .nanorc 中删除 set tabstospaces ).

我只在 BASH 4.x 中使用过它,并且还没有足够的 shell 经验来知道我是否使用过与早期版本不兼容的东西。

编辑

同时考虑 --ignorercfiles 命令行标志作为对此进行改进的方法。