.exrc无法正常工作

时间:2013-02-04 21:45:28

标签: bash unix vi

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

此外,我通过输入su和密码以超级用户身份进入,现在在vi编辑器中打开了一个新文件,现在它正在运行。

我们需要拥有超级用户权限吗?请帮帮我。

2 个答案:

答案 0 :(得分:4)

以下是我的想法:

  1. vi实际上是vim的链接或别名,vi的现代版本。
  2. 您有.vimrc个文件,vim会在不存在.exrc的情况下读取该文件。
  3. 作为超级用户,vi不是指向vim的链接,而忽略.vimrc并读取.exrc
  4. 检查

    的输出
    $ which vi
    $ ls -l `which vi`
    $ ls ~/.vimrc
    

    解决方案是使用.vimrc代替.exrc

答案 1 :(得分:0)

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

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

<块引用>

历史上,4 BSD ex 和 vi 读取 $HOME 和本地 .exrc 文件,如果它们由用户的真实 ID 拥有,或者设置了 sourceany 选项,不管其他考虑。这是一个安全问题,因为可以将普通的 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”。