有人知道在使用编辑器的“sudo nano”实例时如何使 nanorc 设置(语法高亮、鼠标)起作用吗?
当不使用 nano 作为超级用户时,它可以按预期工作,但不能与 sudo 混合使用。
我在 ~/.nanorc 以及 /etc/nanorc 中拥有所有所需的设置,但是当使用 sudo 编辑文件时,没有任何个性化设置得到应用。
答案1
当使用交互式 shell,然后使用sudo
执行命令(例如 )nano
时,不会获取应用程序特定配置文件中当前用户的设置。因此,在这种情况下,~/.nanorc
不会获取设置,也不会读取设置。
当用户使用su
切换到另一个用户(包括 )时,也会出现相同的情况root
。在这两种情况下,都会加载新用户或有效用户的设置。因此,使用sudo nano
或使用su
变成root
然后执行nano
,将为/root/.nanorc
用户设置。全局配置文件中的设置(例如)/etc/nanorc
会影响系统上的所有用户,并且只能用于设置全局设置,用户的文件无论如何都可能会覆盖这些设置。
要实现所需的效果,您需要将专门的设置应用于/root/.nanorc
。然后,当您使用 时,将应用sudo nano
的设置root
,而不是 中的设置~/.nanorc
。
答案2
您可以使用以下方式执行此操作,例如:
sudo nano --rcfile ~/.nanorc <file-to-edit>
为了使其更方便,您可以执行以下操作:
alias sudo='sudo '
alias nano='nano --rcfile ~/.nanorc'
第一个别名(用于)是一种允许扩展用户别名的sudo
标准技术。sudo
有了这些行,您就可以sudo nano <file-to-edit>
正常使用,并且您的信息$HOME/.nanorc
也会被读取。