Jest moja część ~/.bashrc
, która ustawia $ EDITOR na gvim. Działa dobrze, gdy jestem w oknie X. Jednak jeśli ssh do mojej stacji roboczej (z innej stacji roboczej) gvim zaczyna narzekać „nie można otworzyć wyświetlacza”.
Dlatego chciałbym umieścić if
oświadczenie w bashrc, że jeśli okno X jest dostępne, użyj gvim, w przeciwnym razie niech będzie vim.
Jak mogłem to osiągnąć?
if [[ $DISPLAY ]]
dla miłośników podwójnego przedziału …$DISPLAY
Zmienna środowiskowa powinna być ustawiona na coś, jeśli jesteś w X i rozbrojony, jeśli nie są podłączone do wyświetlacza.Możesz więc użyć tego:
Ale jest inne rozwiązanie. Nazywa się to przekazywaniem ssh X.
Biegać
wtedy możesz uruchomić vima na komputerze, na którym jesteś ssh'd, i wyświetli się na komputerze, na którym używasz X.
źródło
Umieść to w swoim .bashrc:
źródło
Chociaż nie jest to odpowiedź na twoje pytanie, pomyślałem, że użyteczne może być wskazanie, że jeśli sshingujesz z jednej stacji roboczej z X * na inną stację roboczą, tak naprawdę możesz użyć gvim, jeśli skonfigurujesz przekazywanie X z ssh. Informacje o oknie zostaną po prostu wysłane przez sieć, a gvim wyskoczy tak, jakby był uruchomiony lokalnie.
Dodaj następujące w ~ / .ssh / config
Teraz będziesz mógł uruchomić gvima.
Jeśli twoją stacją roboczą jest system Windows i nie korzystasz z X, faktycznie możesz uruchomić serwer X lokalnie za pomocą Cygwin. Po skonfigurowaniu możesz skonfigurować popularnych klientów ssh, takich jak PuTTy, do przesyłania dalej X11, a następnie gvim wyskoczy w czymś, co wygląda jak natywne okno ozdobione oknami.
źródło
Wystarczy sprawdzić jedną ze zmiennych środowiskowych, które Xorg ustawia podczas uruchamiania, np. XLOCAL, która zawiera informacje o bieżącej sesji X11.
źródło
Podobała mi się odpowiedź garyjohna przy użyciu RunningX, ponieważ jest mądra o złych, ale niepustych zmiennych DISPLAY.
Ale .. Chciałbym wybrać jedną lepszą. Często używam sesji ekranowych. Mogę rozpocząć sesję ekranową w domu, DISPLAY jest zdefiniowany. Następnie wysyłam wiadomość z innego miejsca, WYŚWIETLACZ jest nadal zdefiniowany i faktycznie wyświetla ... w domu! Więc .. wtedy „wyeksportuję $ DISPLAY =”. Jest w porządku, ale ponieważ ta odpowiedź jest już sprawdzona i znalazła prawidłową zmienną DISPLAY w momencie, gdy .bashrc początkowo uruchomił EDYTOR, nadal byłby ustawiony na gvim.
Przybyłem tutaj, szukając rozwiązania podobnego problemu, chciałem użyć yelp do przeglądania strony X-GUI, ale automatycznie zejdę do tradycyjnego polecenia man, gdy nie używam X. Na podstawie tego, co tu przeczytałem, wymyśliłem:
Myślę, że w przypadku problemu EDYTORA można zrobić coś takiego:
Właśnie opublikowałbym tę historię bez długiej historii, ale jej nie przetestowałem. Uważam się za nowicjusza. Przetestowałem moją „komendę człowieka”, która działa! Używam emacsa do mojego edytora, sam sprawdza X. Nie mam nawet zainstalowanego gvima.
źródło