Il y a une partie dans my ~/.bashrc
, qui définit $ EDITOR comme gvim. Cela fonctionne bien lorsque je suis dans la fenêtre X. Cependant, si je ssh vers mon poste de travail (à partir d'un autre poste de travail), gvim commence à se plaindre "ne peut pas ouvrir l'affichage".
Par conséquent, je souhaite mettre une if
déclaration dans bashrc, que si la fenêtre X est disponible, utilisez alors gvim, sinon laissez-le être vim.
Comment pourrais-je y parvenir?
if [[ $DISPLAY ]]
pour les aficionados du double bracket …La
$DISPLAY
variable d'environnement doit être définie sur quelque chose si vous êtes dans X et désactivée si vous n'êtes pas connecté à un écran.Vous pouvez donc utiliser ceci:
Mais il y a une autre solution. Cela s'appelle le transfert ssh X.
Courir
vous pouvez ensuite exécuter vim sur une machine sur laquelle vous êtes connecté, et il s'affichera sur la machine sur laquelle vous exécutez X.
la source
Mettez ceci dans votre .bashrc:
la source
Bien que ce ne soit pas une réponse à votre question, j'ai pensé qu'il serait peut-être utile de souligner que si vous utilisez un poste de travail exécutant X * vers un autre poste de travail, vous pouvez réellement utiliser gvim si vous configurez le transfert X avec ssh. Les informations de la fenêtre seront simplement envoyées sur le réseau et gvim s'affichera comme s'il était exécuté localement.
Ajoutez ce qui suit dans ~ / .ssh / config
Maintenant, vous pourrez simplement exécuter gvim.
Si votre poste de travail d'origine est Windows et n'exécute pas X, vous pouvez réellement démarrer un serveur X localement à l'aide de Cygwin. Une fois cette configuration effectuée, vous pouvez configurer des clients ssh populaires comme PuTTy pour effectuer le transfert X11, puis gvim apparaîtra dans ce qui semble être une fenêtre native décorée pour Windows.
la source
Vérifiez simplement l'une des variables d'environnement que Xorg définit au démarrage, comme XLOCAL qui contient des informations sur la session X11 en cours.
la source
J'ai aimé la réponse de garyjohn en utilisant RunningX car il est intelligent sur les variables DISPLAY mauvaises mais non vides.
Mais .. j'aimerais aller mieux. J'utilise souvent des sessions d'écran. Je peux démarrer une session d'écran à la maison, DISPLAY est défini. Ensuite, je viens d'ailleurs, DISPLAY est toujours défini et il s'affiche effectivement ... à la maison! Alors .. alors je vais «exporter $ DISPLAY =». C'est très bien mais puisque cette réponse a déjà été vérifiée et a trouvé une variable DISPLAY valide au moment où .bashrc a initialement exécuté EDITOR serait toujours défini sur gvim.
Je suis venu ici à la recherche d'une solution à un problème similaire, je voulais utiliser yelp pour la navigation dans les pages de manuel X-GUI mais je suis automatiquement redirigé vers la commande man traditionnelle lorsque je n'utilise pas X. D'après ce que j'ai lu ici, j'ai trouvé ceci:
Je pense que pour le problème EDITOR, on pourrait faire quelque chose comme ceci:
J'aurais juste posté ça sans la longue histoire mais je ne l'ai pas testée. Je me considère comme un débutant bash. J'ai testé ma 'commande man', ça marche! J'utilise emacs pour mon éditeur, il fait sa propre vérification pour X. Je n'ai même pas installé gvim.
la source