/etc/nanorc システム全体をオーバーライドするには?

/etc/nanorc システム全体をオーバーライドするには?

tabsize 4すべてのNanoユーザーがデフォルト8の代わりにこれを持っていたことを願っています。これを達成するための最良の方法は何ですか?私はこの目的のために別々のユーザーnanorcを維持する必要がないように、システムレベルで/ etc / nanorcのファイルをオーバーライドすることを好みます。簡単な場合、オーバーライドには次のものを含めるだけです。

set tabsize 4

これは私の質問を表現するもう一つの方法です。 nanoは/etc/nanorc.d/とその中にある設定ファイルを認識しますか?それでは、そこに配置された設定ファイルの必須名と内容は何ですか?

これまでに試したことは、/etc/nanorc.d/tabsize.confというファイルを作成してそのディレクトリに配置し、そのファイルに次の内容を置くことです。

set tabsize 4

私の無邪気な試みは成功しませんでしたが、このconfig.d /パターンをnanoで使用する方法があることを願っていました。

私の質問をより具体的に説明します。私はアーチ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今年に入って6回ほど新しい書類を受けたようです。 tabsizeを編集し続けるのは非常に非効率的です。

答え1

それでは、/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

答え2

RudiCの答えに追加するには、リンクトリックが機能します!これはdo-release-upgrade、Ubuntuで(ファイルを更新できる)後に変更する必要がないグローバルオーバーライドに役立ちます/etc/nanorc

これが私がすることです。
共有nanorcオーバーレイファイルが/home-shared/.config/nano/nanorc
次の場所にあると仮定して、各ユーザーに接続するだけです(su $USER)。

mkdir -p ~/.config/nano &&
ln -s /home-shared/.config/nano/nanorc ~/.config/nano/nanorc

rootユーザーでも同じことができるので、以下を使用するときに機能しますsudo nano ...

sudo mkdir -p /root/.config/nano &&
sudo ln -s /home-shared/.config/nano/nanorc /root/.config/nano/nanorc

この場合、リンクされたファイルをルートのみに書き込むことをお勧めします。

sudo chown root:root /home-shared/.config/nano/nanorc &&
sudo chmod 644 /home-shared/.config/nano/nanorc # 0644/-rw-r--r--

nanorcファイルの例 GUIエディタのように作成したいと思います。

## Forget the used search/replace strings on the next session.
unset historylog
## Display line numbers to the left (and any anchors in the margin).
set linenumbers
## Disable vim-style lock-files.
unset locking
## Make the Home key smarter, toggling line-start / first non-whitespace position
set smarthome
## Spread overlong lines over multiple screen lines.
set softwrap
## Disallow nano to be suspended (with ^Z by default).
unset suspendable
## Use this tab size instead of the default; it must be greater than 0.
set tabsize 2
## Make nano have keybindings that are more "usual"
bind ^Q exit all
bind ^S savefile main
bind ^W writeout main
bind ^O insert main
bind ^H help all
bind ^H exit help
bind ^F whereis all
bind ^G findnext all
bind ^R replace main
bind ^X cut all
bind ^C copy main
bind ^V paste all
bind ^A mark main
bind ^Z undo main
bind ^Y redo main

答え3

ナノ文書化Nano 6.4では、nano --rcfile=/pathtonanorcfile他のnanorcファイルはロードされません。

「起動中に--rcfileが指定されていない場合、nanoは2つのファイルを読み取ります。最初に/ etc / nanorcのシステム全体の設定(正確なパスはシステムによって異なる可能性があります)と〜/のユーザー固有の設定です。 nanorc または $XDG_CONFIG_HOME/nano/nanorc または ~/.config/nano/nanorc のいずれかで最初に見つかった場所で --rcfile が指定された場合、nano は指定された設定ファイルのみを読み込みます。

nanorcファイルの読み取りを完全に無効にするにはnano -I

関連情報