Configuration

如何覆蓋 /etc/nanorc 系統範圍?

  • October 30, 2021

我希望所有 nano 使用者都擁有tabsize 4而不是預設的 8。實現這一目標的最佳方法是什麼?我更喜歡在系統級別覆蓋 /etc/nanorc 的文件,因此我不必為此目的維護單獨的使用者 nanorc。在簡單的情況下,我的覆蓋只需要包含:

set tabsize 4

這是陳述我的問題的另一種方式:nano 是否辨識 /etc/nanorc.d/ 和其中放置的配置文件?如果是這樣,放置在那裡的配置文件所需的命名和/內容是什麼?

到目前為止,我嘗試的是/etc/nanorc.d/在該目錄中創建並放置一個名為 tabsize.conf 的文件,並僅將以下內容放入文件中:

set tabsize 4

我的天真嘗試沒有奏效,但我希望有一種方法可以將此 config.d/ 模式與 nano 一起使用。

我會讓我的問題更加具體。我正在使用 Arch Linux。當包有一個新的 nanorc 時,我已經做了這些步驟:

mv /etc/nanorc.pacnew /etc/nanorc

然後編輯/etc/nanorc,搜尋 tabsize,取消註釋該行,將值從 8 更改為 4 並保存文件。

我的目標是只需要執行此步驟:

mv /etc/nanorc.pacnew /etc/nanorc

並有一個類似於/etc/nanorc.d/tabsize.conf包含我想要的標籤大小的文件。這節省了一點時間,但它加起來在多台電腦上成倍增加。今年似乎我收到/etc/nanorc.pacnew了大約六次新文件。一遍又一遍地編輯製表符是非常低效的。

那麼/etc/nanorc.pacnew新發行版升級附帶的新 rc 文件呢?怎麼樣

sed '/tabsize/ {s/^# *//; s/[0-9]*$/4/}' /etc/nanorc.pacnew > /etc/nanorc 

, 然後?

另一個可能的技巧可能是~/.nanorc在每個使用者的主目錄中都有一個符號連結,指向具有相關命令的中央文件。

一經請求:

sed '/tabsize/              # if the line matches "tabsize"
{s/^# *//;                  # remove "#" and trailing spaces from begin-of-line (BOL)
s/[0-9]*$/4/                # substitute any sequence of digits at EOL by "4"
}' /etc/nanorc.pacnew       # input file
> /etc/nanorc               # redirection to target file

引用自:https://unix.stackexchange.com/questions/471712