【问题标题】:vi (vim) to read an exrc file other than ~/.exrcvi (vim) 读取 ~/.exrc 以外的 exrc 文件
【发布时间】:2012-07-16 15:35:03
【问题描述】:

我们希望能够使用替代的 ex 初始化文件启动 vi(或 vim)。默认是 ~/.exrc。

不幸的是 vim(1),在这个系统上也是为“man ex”而提出的,没有提到 .exrc。

任何提供等效行为的解决方法也将不胜感激。

【问题讨论】:

  • 听起来您正在处理古老版本的 vi。你用的是什么版本(vi --version)?
  • 刚刚尝试strace Vims ex:它没有触及 .exrc 之类的东西
  • glts:VIM - Vi IMproved 7.2(2008 年 8 月 9 日,2010 年 7 月 12 日 12:49:33 编译)。
  • fork0:在我的 Debian 6.0 系统上,带有指向 vim.basic 的 ex 符号链接,“strace ex 2>&1 | grep exrc”会在 ~/.exrc 上产生一个统计信息和一个打开状态
  • 如果.vimrc 不存在,我认为vim 会读取.exrc

标签: unix vim vi ex


【解决方案1】:

我期待普通的-u conf_file 可以工作,但在这里失败了。一种解决方法是使用-u NONE 不加载任何配置文件,然后使用-c 获取所需的配置文件:

ex -u NONE -c 'source your_local_exrc'

【讨论】:

  • 谢谢雷神。这足以找到我所追求的信息,即“vi -u NONE -S your_local_exrc”。因为 -c 用于命令,而 -S 用于获取文件。我现在还看到在 vim 中运行 ":help init" 可以获得详细的文档。我最初在手册页中搜索 exrc 是不够的。
  • 我的意思是-c 'source your_local_exrc'(现在已修复),但-S 更好:)。
【解决方案2】:

传统vi/ex的某些版本使用EXINIT环境变量作为启动时执行的命令字符串,如果没有设置则执行$HOME/.exrc。如果您正在运行这样的版本,您可以将 EXINIT 设置为 so /other/file/to/execute 以获取备用启动文件。

【讨论】:

  • 谢谢。现在我在 vim 中找到了 ":help init",我看到 EXINIT 环境变量,以及它对 ~/.exrc 的优先级,确实记录在那里。
【解决方案3】:

在您的 ~/.exrc(对于 vi)文件中,在开始时添加以下行

set exrc   " Dangerous
set secure " Disables shell and write commands in .exrc/.vimrc

这将确保当前目录中的.exrc 文件存在时会被加载。

【讨论】:

    猜你喜欢
    • 2013-01-19
    • 2012-09-29
    • 2015-02-14
    • 2010-11-27
    • 2013-06-19
    • 2010-11-30
    • 2012-03-30
    • 2017-02-01
    • 2012-04-30
    相关资源
    最近更新 更多