我是 unix 新手。我在我的主文件夹中创建了一个 .exrc 文件。我刚刚输入 set nu 并在 .exrc 中设置 ai 进行检查。但是每当我打开 vi 编辑器时,这不起作用。
此外,我以超级用户身份输入,输入 su 和密码,现在在 vi 编辑器中打开一个新文件,现在它可以工作了。
我们是否需要拥有超级用户权限才能拥有这个?请帮助我。
这是我认为正在发生的事情:
vi
实际上是.vim
的现代版本的链接或别名vi
。.vimrc
文件,vim
如果存在而不是.exrc
.vi
不是指向 的链接vim
,并且会忽略.vimrc
并读取.exrc
.检查输出
$ which vi
$ ls -l `which vi`
$ ls ~/.vimrc
解决方案是使用.vimrc
而不是.exrc
.
首先,确保你是可读的,并且通过在 vi 中~/.exrc
运行它实际上可以工作。:source $HOME/.exrc
如果您使用的是更“传统”的 vi(不是 Vim),可能是由于额外的权限问题。关于ex的 POSIX 文档说:
从历史上看,如果 $HOME 和本地 .exrc 文件归用户的真实 ID 所有,或者设置了 sourceany 选项,则 4 BSD ex 和 vi 会读取这些文件,而不管其他考虑。这是一个安全问题,因为可以将普通的 UNIX 系统命令放在 .exrc 文件中。POSIX.1-2017 未指定 sourceany 选项,鼓励历史实现将其删除。
确保您是以下设备的所有者~/.exrc
:chown <your-username> ~/.exrc
此外,如果您碰巧使用的是ex-vi(“传统 vi”),~/.exrc
则不能是组可写或全局可写的。运行chmod go-w ~/.exrc
以确保这一点。来自 09/23/00 版本的变更日志的参考:
- POSIX.2:如果 .exrc 文件是世界或组可写的,除非设置了“sourceany”,否则它们将被忽略。