3

我是 unix 新手。我在我的主文件夹中创建了一个 .exrc 文件。我刚刚输入 set nu 并在 .exrc 中设置 ai 进行检查。但是每当我打开 vi 编辑器时,这不起作用。

此外,我以超级用户身份输入,输入 su 和密码,现在在 vi 编辑器中打开一个新文件,现在它可以工作了。

我们是否需要拥有超级用户权限才能拥有这个?请帮助我。

4

2 回答 2

5

这是我认为正在发生的事情:

  1. vi实际上是.vim的现代版本的链接或别名vi
  2. 您有一个.vimrc文件,vim如果存在而不是.exrc.
  3. 作为超级用户,vi不是指向 的链接vim,并且会忽略.vimrc并读取.exrc.

检查输出

$ which vi
$ ls -l `which vi`
$ ls ~/.vimrc

解决方案是使用.vimrc而不是.exrc.

于 2013-02-04T21:53:12.353 回答
0

首先,确保你是可读的,并且通过在 vi 中~/.exrc运行它实际上可以工作。:source $HOME/.exrc

如果您使用的是更“传统”的 vi(不是 Vim),可能是由于额外的权限问题。关于ex的 POSIX 文档说:

从历史上看,如果 $HOME 和本地 .exrc 文件归用户的真实 ID 所有,或者设置了 sourceany 选项,则 4 BSD ex 和 vi 会读取这些文件,而不管其他考虑。这是一个安全问题,因为可以将普通的 UNIX 系统命令放在 .exrc 文件中。POSIX.1-2017 未指定 sourceany 选项,鼓励历史实现将其删除。

确保您是以下设备的所有者~/.exrcchown <your-username> ~/.exrc

此外,如果您碰巧使用的是ex-vi(“传统 vi”),~/.exrc则不能是组可写或全局可写的。运行chmod go-w ~/.exrc以确保这一点。来自 09/23/00 版本的变更日志的参考:

  • POSIX.2:如果 .exrc 文件是世界或组可写的,除非设置了“sourceany”,否则它们将被忽略。
于 2021-03-10T16:19:37.460 回答