我希望所有 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
大约六次新文件。一遍又一遍地编辑 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 上的 a 之后修复(这可能会更新文件/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
在这种情况下,最好确保链接文件只能由 root 写入:
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 将读取两个文件:首先是系统范围的设置,来自 /etc/nanorc(系统上的确切路径可能有所不同),然后是用户特定的设置,来自 ~/.nanorc 或来自 $XDG_CONFIG_HOME/nano/nanorc 或来自 ~/.config/nano/nanorc,以先遇到的为准。如果给出了 −−rcfile,nano 将只读取指定的设置文件。
要完全禁用 nanorc 文件读取,请执行nano -I
.