Existe uma parte no meu ~/.bashrc
, que define $ EDITOR como gvim. Funciona bem quando estou na janela X. No entanto, se eu ssh na minha estação de trabalho (de outra estação de trabalho), o gvim começa a reclamar "não é possível abrir a tela".
Portanto, desejo colocar uma if
declaração no bashrc, de que, se a janela X estiver disponível, use gvim, caso contrário, deixe-o vim.
Como eu consegui isso?
if [[ $DISPLAY ]]
para os aficionados por colchete duplo …A
$DISPLAY
variável de ambiente deve ser definida como algo se você estiver no X e desabilitada se não estiver conectado a um monitor.Então você pode usar isso:
Mas existe outra solução. Chama-se ssh X forwarding.
Corre
então você pode executar o vim em uma máquina na qual você está com ssh e ele será exibido na máquina em que você está executando o X.
fonte
Coloque isso no seu .bashrc:
fonte
Embora essa não seja uma resposta para sua pergunta, achei útil ressaltar que, se você estiver executando o ssh de uma estação de trabalho executando o X * para outra, você poderá usar o gvim se configurar o encaminhamento do X com o ssh. As informações da janela serão enviadas pela rede e o gvim aparecerá como se fosse executado localmente.
Adicione o seguinte em ~ / .ssh / config
Agora você poderá executar o gvim.
Se sua estação de trabalho de origem é o Windows e não está executando o X, você realmente pode inicializar um servidor X localmente usando o Cygwin. Uma vez configurada, você pode configurar clientes ssh populares como o PuTTy para encaminhar o X11 e o gvim aparecerá no que parece ser uma janela nativa decorada com janelas.
fonte
Basta verificar uma das variáveis de ambiente que o Xorg define na inicialização, como o XLOCAL, que contém informações sobre a sessão atual do X11.
fonte
Gostei da resposta de garyjohn usando o RunningX, pois é inteligente em relação a variáveis de exibição ruins, mas não vazias.
Mas .. eu gostaria de ir um melhor. Costumo usar sessões de tela. Posso iniciar uma sessão de tela em casa, DISPLAY está definido. Então, eu ssh de outro lugar, DISPLAY ainda está definido e na verdade é exibido ... em casa! Então .. então irei 'exportar $ DISPLAY ='. Isso é bom, mas como essa resposta já foi verificada e encontrou uma variável DISPLAY válida no momento.
Eu vim aqui procurando uma solução para um problema semelhante. Queria usar o yelp para navegar na página de manual do X-GUI, mas desative automaticamente o comando man tradicional quando não estiver usando o X. Com base no que li aqui, vim com isso:
Estou pensando que, para o problema do EDITOR, alguém poderia fazer algo como segue:
Eu teria acabado de postar que sem a longa história, mas ainda não a testei. Eu me considero um novato bash. Eu testei o meu 'comando man', que funciona! No entanto, estou usando o emacs para o meu editor, ele faz sua própria verificação para o X. Eu nem tenho o gvim instalado.
fonte