O comando não pode ser executado no ambiente vim

0

O mycommand é uma função no meu arquivo lib / work.sh.

cat .bashrc
source /home/lib/work.sh

Isso significa que mycommand foi originado automaticamente.
mycommand pode executar no terminal.
Agora, para editar um arquivo com vim test.txt , shift+" para entrar no modo de comando do vim, insira !mycommand ,

/bin/bash: mycommand: command not found

shell returned 127

Press ENTER or type command to continue

Por que mycommand não pode ser encontrado no vim?

    
por scrapy 03.08.2018 / 10:24

1 resposta

1

Existem diferentes tipos de shells - Diferença entre o Login Shell e Non-Login Shell? (procure a .bashrc part)

Nem todos eles estão obtendo .bashrc , portanto, work.sh não é originado.

Para resolver seu problema, você precisa exportar sua função para disponibilizá-la para um subshell.

Posso "exportar" funções no bash?

myfun() {
    echo "Hello!"
}

export -f myfun

-

vim
:!myfun

funciona!

    
por 03.08.2018 / 11:08

Tags