如何让vim找到/home/lib/work.sh中的函数?
How to make vim find the function in /home/lib/work.sh?
我的/home/lib/work.sh
里面有个函数
test(){
echo "it is a test"
}
在我的 .bashrc 中
source /home/lib/work.sh
现在我可以在终端中调用测试功能了。
vim 无法调用测试函数。
:!test
/bin/bash: test: command not found
shell returned 127
如何让vim找到/home/lib/work.sh中的函数?
test
是内置命令的名称(参见:help test
)。我建议将您的函数重命名为 mytest
并将其添加到 /home/lib/work.sh
:
中的函数之后
export -f mytest
参见:help export
您可以在 bash 个启动文件中定义 shell 个函数。
假设你以图形模式登录,相关文件是~/.bashrc:
new_test() {
echo "it is a test."
}
export -f new_test
(正如其他人已经指出的,使用 "test" 关键字作为名称是个坏主意)。
开始新的 shell 或执行
source ~/.bashrc
在您当前的 shell 中启用新功能。
如果您 运行 printenv 命令,您将看到 new_test 现在已在您的用户环境中定义,它可以被其他程序访问,例如 vim。
BASH_FUNC_new_test%%=() { echo "it is a test."
}
我的/home/lib/work.sh
里面有个函数test(){
echo "it is a test"
}
在我的 .bashrc 中
source /home/lib/work.sh
现在我可以在终端中调用测试功能了。
vim 无法调用测试函数。
:!test
/bin/bash: test: command not found
shell returned 127
如何让vim找到/home/lib/work.sh中的函数?
test
是内置命令的名称(参见:help test
)。我建议将您的函数重命名为 mytest
并将其添加到 /home/lib/work.sh
:
export -f mytest
参见:help export
您可以在 bash 个启动文件中定义 shell 个函数。 假设你以图形模式登录,相关文件是~/.bashrc:
new_test() {
echo "it is a test."
}
export -f new_test
(正如其他人已经指出的,使用 "test" 关键字作为名称是个坏主意)。
开始新的 shell 或执行
source ~/.bashrc
在您当前的 shell 中启用新功能。
如果您 运行 printenv 命令,您将看到 new_test 现在已在您的用户环境中定义,它可以被其他程序访问,例如 vim。
BASH_FUNC_new_test%%=() { echo "it is a test."
}