在Vim中执行Bash功能 - 我该怎么做?

8 vim bash

可能重复:
从vim执行的命令无法识别bash命令别名

我的〜/ .bashrc文件中有以下函数(在我的Ubunut框中)

# convert tex to pdf, no bib 
function t2p {
    latex $1 && latex $1 && dvips $1 -o $1.ps && ps2pdf $1.ps && rm -f $1.dvi }

# convert tex to pdf, with bib 
function tb2p {
    latex $1 && bibtex $1 && latex $1 && latex $1 && dvips $1 -o $1.ps && ps2pdf $1.ps && rm -f $1.dvi }
Run Code Online (Sandbox Code Playgroud)

例如,要将tex文件f.tex转换为pdf文件并以正确的顺序bibtex,我调用tb2p f.如果我在Bash终端,这非常有效.但是,要从Vim内部进入Bash提示符,我实际上必须执行命令:sh first.

为了简化上述过程,我尝试通过以下方式在Vim中执行函数t2ptb2p :!t2p f.然后Vim告诉我它找不到函数t2p.我做了一些谷歌搜索,并读到我应该将这些函数放入文件/etc/bash.bashrc中,以使它们对Vim可见.不幸的是,这在我的情况下不起作用.Vim仍然不知道这个功能.

在一天结束时,我希望能够使用键盘快捷键从Vim中调用我的函数.因此,我的问题如下:

  1. 我怎样才能让Vim知道〜/ .bashrc函数?
  2. 如何在〜/ .bimrc中〜/ .bashrc中的函数设置键盘快捷键?

非常非常感谢你.

Ada*_*tek 5

尝试:!bash -c t2p在 Vim 中使用。如果您的别名仅限于交互式 shell,还请添加该-i标志。