Linux: Como detectar automaticamente a exibição e configurar o editor padrão de acordo

1

Eu sou relativamente novo no Linux. Eu estou conectando a uma máquina Linux remota, por vezes via telnet e, por vezes, via cliente NX para windows. Quando me conecto via telent, eu gostaria que o editor padrão fosse o vim e, quando eu me conectasse via NX, eu gostaria que o editor padrão fosse o gvim. Existe uma maneira de detectar automaticamente qual conexão eu estou usando quando o arquivo de alias é originado? No momento, tenho o seguinte no meu arquivo de alias:

alias usevim 'setenv CSCOPE_EDITOR vim; setenv EDITOR vim'
alias usegvim 'setenv CSCOPE_EDITOR gvim; setenv EDITOR gvim'
echo 'using vim'
usevim

Isso define o editor padrão para o vim. Quando me conecto via NX, a primeira coisa que vou fazer é digitar 'usegvim'. Eu não gostaria de ter que fazer isso toda vez! Existe uma maneira de detectar se uma exibição está presente ou não?

Obrigado!

UPDATE: if ($? DISPLAY) não funciona porque meu arquivo .cshrci tem uma linha com "setenv DISPLAY ..."

UPDATE: Agora estou usando cygwin para ssh na caixa remota e usando o Cygwin XWin Server para exibir meus aplicativos de gui. Agora não preciso me preocupar com qual editor usar porque o gvim está sempre disponível. Eu provavelmente vou abandonar o cliente NX porque tudo que eu preciso agora pode ser lançado diretamente da linha de comando e os aplicativos gui funcionam como aplicativos nativos do Windows.

    
por derekswanson08 19.10.2012 / 23:55

2 respostas

2

A variável DISPLAY é definida quando um display X11 (gráfico) está em uso. Ao usar o telnet, DISPLAY não será definido.

Parece que você está usando um derivativo csh que eu realmente não conheço, mas acho que você poderia adicionar algo assim ao seu arquivo .tcshrc:

if ($DISPLAY) then
    setenv CSCOPE_EDITOR gvim
    setenv EDITOR gvim
else
    setenv CSCOPE_EDITOR vim
    setenv EDITOR vim
endif
    
por 20.10.2012 / 00:04
1

Use sempre "gvim" ou "vim -g". Ele irá reclamar se a tela X não estiver disponível, mas ainda assim iniciará a versão do console.

    
por 20.10.2012 / 04:08

Tags