que aplicação possui a variável $ EDITOR e / ou $ VISUAL?

0

Estou arrumando meu arquivo de exportações bash e categorizando variáveis dependendo do ambiente ao qual elas pertencem.

por exemplo, o HISTIGNORE , PATH , PS1 , etc. estão na "Seção Bash" e MANPAGER na "Seção Man" ..

Eu só estou querendo saber como cerca de $ EDITOR e / ou $ VISUAL? Eu não consigo encontrá-los na página man do bash.

    
por cevhyruz 25.10.2018 / 16:44

2 respostas

6

Você classificou com erro PATH e os dois EDITOR e VISUAL pertencem a ele.

A ideia de que essas variáveis pertencem a aplicativos específicos está errada. Eles são padronizados e podem ser usados por qualquer qualquer aplicativo que precise deles.

  • Se qualquer aplicativo quiser pesquisar um caminho para programas executáveis, ele poderá usar PATH . (E, de fato, esse é o caso de qualquer aplicativo que chame execvp() .)
  • Se qualquer aplicativo quiser invocar um shell, ele poderá usar SHELL para localizar o arquivo de imagem do programa.
  • Se qualquer aplicativo quiser invocar um editor de linha, ele poderá usar EDITOR
  • .
  • Se qualquer aplicativo quiser invocar um editor visual, ele poderá usar VISUAL .
  • Se qualquer aplicativo quiser invocar um pager, ele poderá usar PAGER .
  • Se qualquer aplicativo quiser saber onde o diretório base está, ele poderá usar HOME .

E assim por diante.

Por outro lado, HISTIGNORE e PS1 nem precisam ser realmente variáveis de ambiente; e somente este último é mencionado (embora sem explicação) no padrão. Um pode defini-los como variáveis de ambiente, em um processo de líder de sessão ou em algum outro pai de nível superior, e confiar na herança de ambiente para importá-los por shells.

Mas é possível definir como variáveis shell , em um script executado automaticamente por cada shell (os específicos que dependem do shell) e não exportá-los para o ambiente. Por exemplo: eu tenho minhas variáveis ~/.zshrc set PS1 e RPROMPT as shell , e elas não são exportadas para ambiente variáveis em tudo.

Leitura adicional

por 25.10.2018 / 17:37
1

man bash menciona ambas as variáveis em edit-and-execute-command :

Invoke an editor on the current command line, and execute the result as shell commands. Bash attempts to invoke $VISUAL, $EDITOR, and emacs as the editor, in that order.

Outros programas geralmente usam as variáveis também.

    
por 25.10.2018 / 17:07