Vim忽略别名


11

如果我使用类似以下内容在vim中映射命令

map <f4> :! pdflatex %<cr>

Vim会忽略我的pdflatex别名(类似别名pdflatex ='pdflatex --temp-dir = something')。是否有可能使vim不忽略它?


您的vim shell或shelltype是否可能与您的登录shell不匹配?
DaveParillo

Answers:


16

Vim“忽略”您的别名,因为您的shell不在解析您的别名的“心情”中.bash_profile/.bashrc(您未指定别名的定义位置),因为它不是作为登录/交互shell启动的(在此处了解更多信息)什么时候以及出于什么原因阅读什么)。

因此,您有几种选择:

  1. 将您在pdflatex别名中使用的代码放入脚本中并调用
  2. vimrc:,'set shell=/bin/bash\ -l'将您的别名放入.bash_profile
  3. 将您的外壳称为交互式/登录外壳: :! bash -l -i -e 'pdflatex .'

2
登录/非登录无关紧要~/.bashrc-只有交互式/非交互式才有意义。
user1686

我的别名在.bash_profile中。我希望它在当前shell中运行。您的第二个解决方案似乎是最“可接受的”方法,但是它会使%变量无用,因为打开新外壳程序通常从主文件夹开始。
vonhogen

这是一个了不起的彻底答案。谢谢!
亚伯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.