Среда: debian9 + vim7.4.
cat .bashrc
add(){
echo $(expr $1 + $2)
}
Теперь отредактируйте файл в vim
add 1 5
Запустите его в командном режиме :w !bash
, произойдет ошибка.
bash: line 1: add: command not found
shell returned 127
1.add set shellcmdflag=-ic
в обоих файлах /etc/vim/vimrc и .bashrc и .vimrc.
2.reboot
3.vim test.sh
войти в командный режим
: verbose set shellcmdflag
shellcmdflag=-ic
Last set from ~/.vimrc
4.Введите две строки в test.sh
ls
add 5 6
:w !bash
a1.sh test.py
bash: line 2: add: command not found
shell returned 127
Как сделать обе две строки выполнены?
:execute '! source ~/.bashrc; source '.expand('%:p')
может выполнять обе команды: ls
и add
.
После перезагрузки,
Функция 1.add не может быть вызвана из sh test.sh
?
sh test.sh
test.sh #it means that ls command executed
test.sh: 2: test.sh: add: not found #it means that add function can't be called from /etc/vim/vimrc or .bashrc or .vimrc.
Функция 2.add не может быть вызвана из vim !bash %
?
test.sh #it means that ls command executed
test.sh: line 2: add: command not found #it means that add function can't be called from /etc/vim/vimrc or .bashrc or .vimrc.
[4]+ Stopped vim test.sh