Jak używać Sublime nad SSH

Staram się używać Sublime Text 2 jako edytora, gdy SSH na moim serwerze roboczym, i jestem zakłopotany. Znalazłem to http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (wśród wielu innych postów) wygląda na to, że może pomóc, ale nie śledzę go dokładnie, szczególnie z jakimi wartościami powinienem umieścić dla zmiennej zdalnej w linii 5. Ustawiłem "/ Users / path / to / local / copy" do mojego lokalnego katalogu głównego, ale nie wiem, czy to prawda, czy jest więcej do zrobienia. Jakieś pomysły? Jestem na OSX10. 8

Author: thumbtackthief, 2013-04-11

15 answers

Są trzy sposoby:

Ponadto teoretycznie można zainstalować X11 na zdalnym serwerze i uruchomić tam sublime przez VNC lub X11 forwarding, ale nie ma sensu tego robić.

 164
Author: Mikko Ohtamaa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-07 18:41:56

Możesz użyć rsub , który jest inspirowany rmate TextMate. Z opisu:

Rsub jest implementacją funkcji "rmate" dla programu Sublime Text 2, pozwalającej na edycję plików na zdalnym serwerze za pomocą przekierowania / tunelowania portów SSH.

Oto dobry samouczek , jak go poprawnie skonfigurować.

 103
Author: ubik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-29 16:30:01

Jestem na Windows i użyłem 4 metod: SFTP, WinSCP, Unison and Sublime Text on Linux with X11 forwarding over SSH to Windows (tak można to zrobić bez niechlujnych konfiguracji i za pomocą darmowego narzędzia).

Czwarty sposób jest najlepszy, jeśli możesz zainstalować oprogramowanie na swoim komputerze z Linuksem.

Czwarta droga:

MobaXterm

  1. instalacja MobaXterm w systemie Windows
  2. SSH do Twojego Linuksa z MobaXterm
  3. na Twoim Linuksie zainstaluj Sublime Text 3. Oto Jak na Ubuntu
  4. w wierszu polecenia Uruchom sublime za pomocą subl
  5. To jest to! Teraz masz sublime text uruchomiony na Linuksie, ale z jego oknem działającym na pulpicie Windows. Jest to możliwe, ponieważ MobaXterm obsługuje przekazywanie X11 przez SSH, więc nie musisz robić nic ciekawego, aby to uruchomić. Może wystąpić niewielkie opóźnienie, ale twoje pliki nigdy nie będą Synchronizuj, bo edytujesz je bezpośrednio na komputerze z Linuksem.

Uwaga: Podczas wywoływania subl, jeśli skarży się na określoną bibliotekę - upewnij się, że zainstalujesz je, aby pomyślnie wywołać sublimetext z mobaxterm.

Jeśli nie możesz zainstalować oprogramowania na swoim Linuksie, najlepszym rozwiązaniem jest Unison. Dlaczego?

  • It ' s free
  • It ' s fast
  • Jest niezawodny i nie obchodzi go, którego edytora używasz]}
  • możesz utworzyć niestandardowe ignorowanie listy

SFTP

Setup: Zainstaluj pakiet SFTP Sublime Text. Ten pakiet wymaga licencji.

  1. Utwórz nowy folder
  2. Otwórz go jako wysublimowany projekt tekstowy.
  3. na pasku bocznym kliknij prawym przyciskiem myszy folder i wybierz opcję map Remote.
  4. edycja sftp-config.plik json
  5. Kliknij prawym przyciskiem myszy folder w kroku 1 Wybierz Pobierz.
  6. Pracuj lokalnie.

W sftp-config, Zwykle zestaw:

"upload_on_save": true,
"sync_down_on_open": true,

To, oprócz terminala SSH na maszynie, daje mi dość bezproblemową zdalną edycję.

WinSCP

  1. Zainstaluj i uruchom WinSCP
  2. przejdź do Preferences (Ctrl+Alt+P) i kliknij Transfer, a następnie dodaj. Nazwij preset.
  3. Ustaw tryb transferu na binarny (nie chcesz konwersji linii)
  4. Ustaw modyfikację pliku Na "bez zmian"
  5. Kliknij przycisk Edytuj obok Maski pliku i skonfiguruj Dołącz i wyklucz pliki i foldery (przydatne, gdy masz .git/folder svn obecny lub chcesz wykluczyć produkty build z synchronizacji).
  6. Kliknij OK
  7. Połącz się ze zdalnym serwerem i przejdź do interesującego folderu
  8. wybierz pusty folder na komputerze lokalnym.
  9. wybierz nowo utworzone Ustawienia transferu.
  10. na koniec naciśnij Ctrl + U (polecenia > Aktualizuj zdalny katalog) i upewnij się, że " Synchronize on start " i "Aktualizuj podkatalogi" są zaznaczone.

Od tej pory WinSCP będzie synchronizował twoje zmiany.

Praca w folderze lokalnym przy użyciu SublimeText. Upewnij się tylko, że ustawiony jest Sublime Text, aby odgadnąć zakończenia linii z edytowanego pliku.

Unison

Odkryłem, że jeśli drzewo źródłowe jest masywne (około kilkuset MB z głęboką hierarchią), to opisana powyżej metoda WinSCP może być nieco powolna. Możesz dostać wiele lepsza wydajność przy użyciu Unison . Minusem jest to, że Unison nie jest automatyczny (musisz go uruchomić za pomocą klawiatury) i wymaga komponentu serwerowego do działania na twoim komputerze z Linuksem. W górę strony jest to, że transfery są niewiarygodnie szybkie, są bardzo niezawodne, a ignorowanie plików, folderów i rozszerzeń jest niezwykle łatwe w konfiguracji.

 67
Author: Carl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:22:42

Jako kontynuację odpowiedzi @ ubik, oto trzy proste (jednorazowe) kroki, aby polecenie 'subl' działało na Twoim zdalnym serwerze:

  1. [Local ] zainstaluj pakiet rsub w Sublime Text za pomocą menedżera pakietów Sublime Package Manager
  2. [Local ] wykonaj następujące polecenie Bash (spowoduje to utworzenie SSH tunnel, który jest tajnym sosem rsub):

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
    
  3. [Server ] uruchom następujące polecenie Bash na zdalnym serwerze (spowoduje to zainstalowanie polecenia powłoki 'subl'):

    sudo wget -O /usr/local/bin/subl https://raw.github.com/aurora/rmate/master/rmate; sudo chmod +x /usr/local/bin/subl
    
I voila! używasz teraz Sublime Text nad SSH.

Można otworzyć przykładowy plik w Sublime Text z serwera czymś w rodzaju subl ~/test.txt

 33
Author: user456584,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-14 14:28:50

Jestem na MacOS, a najwygodniejszym dla mnie sposobem jest użycie CyberDuck, który jest bezpłatny (dostępny również Dla Windows). Możesz połączyć się ze zdalnym systemem plików SSH i edytować plik za pomocą lokalnego edytora. To, co robi CyberDuck, to pobranie pliku do tymczasowego miejsca na lokalnym systemie operacyjnym i otwarcie go za pomocą edytora. Po zapisaniu pliku CyberDuck automatycznie przesyła go do zdalnego systemu. Wydaje się przezroczysty, jeśli edytujesz zdalny plik za pomocą redaktor lokalny. Twórcy Cyberduck również tworzą MountainDuck do montażu zdalnych systemów plików.

 10
Author: bizi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-03 07:15:14

Możesz spróbować czegoś, nad czym pracowałem, o nazwie " xeno ". Pozwoli to na otwieranie plików/folderów w Sublime Text (lub dowolnym lokalnym edytorze) przez połączenie SSH i automatyczną synchronizację zmian na zdalnej maszynie. Powinien działać na prawie wszystkich systemach POSIX (sam używam go z OS X do łączenia się z maszynami linuksowymi i edycji plików w Sublime Text). Jest darmowy i open source. Chciałbym usłyszeć jakieś opinie.

Aby uzyskać więcej informacji: jest to w zasadzie Git / SSH mashup napisany w Pythonie, który pozwala na edycję plików i folderów na zdalnym komputerze w edytorze lokalnym. Nie musisz konfigurować modułów jądra, nie musisz mieć stałego połączenia, wszystko jest automatyczne i nie będzie zakłócać istniejącej kontroli źródeł, ponieważ używa out-of-worktree Git repozytorium. Ponadto, ponieważ jest zbudowany na Git, jest niezwykle szybki i obsługuje automatyczne łączenie plików, które mogą się zmieniać na obu końcach, w przeciwieństwie do SSHFS/SFTP, które po prostu zatrzasną wszelkie pliki ze starszymi znacznikami czasu.

 8
Author: havoc-io,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-03 15:34:50

Możesz użyć sftp, aby zamontować zdalny katalog na swojej maszynie lokalizacyjnej, a następnie po prostu otworzyć pliki za pomocą Sublime text tak, jak zwykle.

Aby zamontować zdalny katalog za pomocą sftp, wprowadź następujące polecenie w menedżerze plików systemu Linux;

sftp://user@remote_box.com:22/home/user/code_directory
To może wydawać się powolne w zależności od prędkości internetu. Ale to mi pomogło.
 5
Author: David Okwii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-28 18:57:04

Wiem, że to stare, ale mam naprawdę fajny sposób na robienie tego, który jest wart podzielenia się.

Co jest wymagane w Conemu i WinSCP . Są to proste instrukcje

  1. Otwórz WinSCP.exe i zaloguj się do mojego żądanego serwera zdalnego (mam
    okazało się, że ważne jest, aby zalogować się przed dołączeniem ... ).

  2. W preferencjach dla WinSCP-dwa ustawienia do zmiany. Wybierz Explorer type interface i zamiast Commander-tak nie widzisz plików lokalnych. Chyba, że chcesz (ale wydaje się, że to byłoby do bani tutaj). Skonfiguruj Sublime jako domyślny edytor.

  3. Po otwarciu ConEmu kliknij prawym przyciskiem myszy pasek kart i wybierz opcję Attach to.... Zostanie otwarte okno dialogowe z uruchomionymi aplikacjami. Wybierz, WinSCP i wybierz OK. ConEmu będzie miał teraz otwartą kartę z WinSCP wyświetlającym Twoje zdalne pliki.

  4. Kliknij prawym przyciskiem myszy na karcie WinSCP i wybierz New console.... Po otwarciu okna dialogowego wprowadź ścieżka do pliku wykonywalnego Sublime w Twoim systemie. Zanim naciśniesz Start, w polu z napisem New console split Wybierz przycisk radiowy to right i ustaw wartość procentową. Zazwyczaj wybieram 75%, ale możesz dostosować to do swoich upodobań i można to zmienić później.

    1. Teraz zobaczysz Sublime w tym samym oknie biegnącym po prawej stronie WinSCP. W Sublime, z menu Widok, wybierz Sidebar->Hide Sidebar, i bam, masz teraz zdalne pliki w dokładnie taki sam sposób, jak lokalnie - z kilkoma zastrzeżeniami oczywiście, że pochodzi z edycji czegokolwiek zdalnie. WinSCP szybko się rozjaśnia.

Mam dwa monitory-lewy monitor wyświetla przeglądarkę Chrome, prawy monitor wyświetla edytor kodu. Również w ConEmu, tworzę kolejną kartę i ssh na stronie, nad którą pracuję, więc mogę robić rzeczy takie jak uruchamianie gulp lub grunt zdalnie, a także manipulować plikami z linii poleceń. Poważnie przyspieszył rozwój.

Oto zrzut ekranu:

Konfiguracja Zrzutu Ekranu

 5
Author: dgo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-30 04:59:21

Jest to najprostszy sposób lokalnie edytować pliki, które żyją na zdalnym hoście, gdzie wcześniej skonfigurowano ssh do zdalnego IP

# issue on local box

sudo apt-get install sshfs   # on local host install sshfs ( linux )

# on local box create secure mount of remote directory

export REMOTE_IP=107.170.58.249 # remote host IP

sshfs myremoteuserid@${REMOTE_IP}:/your/remote/dir  /your/local/dir # for example
Zrobione !!!

Teraz na lokalnym komputerze po prostu zacznij edytować pliki ... gdy wypisujesz katalog lokalnie, może on nie wyświetlać niczego, dopóki nie umieścisz go w subdirze lub nie wylistujesz określonego pliku ... leniwe Ładowanie ... nie ma to wpływu na edycję plików

subl /your/local/dir/magnum_opus.go # local file edit using sublime text

Tak więc wyżej jest edytowanie zdalnego pliku w

/your/remote/dir/magnum_opus.go  # remote file on box $REMOTE_IP

Dla OSX lub Windows zobacz ten tut z the kind folk over on Digital Ocean

 5
Author: Scott Stensland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-06 01:32:52

Innym rozwiązaniem dla komputerów mac podobnym do osxfuse jest użycie klienta transmisji FTP z programu Panic, który pozwala zamontować zdalny folder jako dysk lokalny. Obsługuje SFTP, który jest bardzo bezpieczny.

 4
Author: Gavster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-31 19:57:31

Pracowałem nad projektem o nazwie GiySync . Nadal wymaga trochę pracy, ale jest to open source i używam go codziennie od kilku lat. Pracuję również nad natywną wersją OS X, którą nazwałem GitSyncApp

W tej chwili jest to tylko OS X, ale powinno być łatwo dodać wsparcie dla Linuksa, a być może również Windows.

Działa poprzez obserwację zdarzeń systemu plików i używa do git aby zsynchronizować folder projektu na twojej lokalnej maszynie i serwer.

Próbowałem innych rozwiązań, takich jak osx fuse, Expand Drive, Transmit, kilka rozwiązań, które używały rsync, itp. Wszystkie działają " OK " dla małych projektów, ale jeśli pracujesz z dużą ilością kodu, nie działają dla mnie.

Wiele opcji systemu plików wykonuje buforowanie, aby poprawić wydajność, co jest w porządku, dopóki nie jest. Na przykład, jeśli pracujesz z innymi ludźmi, a ktoś inny zmienia pliki na serwerze.

Wpadłem też na problemy, jeśli byłem na flaky lub slow sieć, w której kończę z pustymi plikami. Albo plik, który nie zsynchronizował się, potem buforowanie zrobiło się dziwne; mam nadzieję, że ostatnio popełniłeś błąd. Użycie Gita rozwiązuje ten problem, ponieważ sprawdza integralność każdego commita.

Dwa bonusy:

  1. kończysz z commitem za każdy zapis. To nie jest bardzo przydatne, ale jeśli kiedykolwiek będziesz musiał cofnąć się w czasie, możesz.
  2. Działa z każdym edytorem tekstu.
 3
Author: Jachin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-16 15:46:22

W zależności od twoich dokładnych potrzeb, możesz rozważyć użycie BitTorrent Sync. Utwórz folder udostępniony na komputerze domowym i komputerze służbowym. Edytuj pliki na domowym komputerze (za pomocą Sublime lub cokolwiek chcesz), a zostaną one zsynchronizowane automatycznie po zapisaniu. BitTorrent Sync nie polega na centralnym serwerze przechowującym pliki( a la Dropbox i tym podobne), więc teoretycznie powinieneś być wolny od wszelkich problemów z powodu strony trzeciej przechowującej poufne informacje.

 0
Author: thedudeabides,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-03 05:06:25

Rozwiązanie, które działało świetnie dla mnie-edytuj lokalnie na Macu, a plik zostanie automatycznie zsynchronizowany ze zdalnym komputerem

  1. Upewnij się, że masz hasło bez hasła do zdalnego komputera. Jeśli nie, wykonaj następujące kroki http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/

  2. Utwórz plik w ~ / Library/LaunchAgents / filesynchronizer.plist, o następującej treści:

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>filesynchronizer</string> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>-avz</string> <string>/Users/USERNAME/SyncDirectory</string> <string>USERNAME@REMOTEMACHINE:~</string> </array> <key>WatchPaths</key> <array> <string>/Users/USERNAME/SyncDirectory</string> </array> </dict> </plist>

  3. W oknie terminala run

    launchctl load ~/Library/LaunchAgents/filesynchronizer.plist

  4. To wszystko. Wszelkie zmiany w plikach w ~ / SyncDirectory zostaną zsynchronizowane z ~ / SyncDirectory na zdalnym komputerze. Zmiany lokalne nadpiszą wszelkie zmiany zdalne.

Tworzy to zadanie launchd, które monitoruje Katalog SyncDirectory i gdy coś się zmieni, uruchamia rsync, aby zsynchronizować katalog ze zdalnym komputerem.

 0
Author: Ran Locar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-10 08:58:44

Lsyncd wydaje się być miłą alternatywą dla podejścia sshfs. Jeśli używasz "- delay 0 " to działa w czasie rzeczywistym.

 0
Author: JLarky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-14 07:47:02

Użyj FileZilla

Dotyczy to użytkowników Mac i Windows (używam na Mac). Przez lata korzystałem z kilku wymienionych odpowiedzi i odkryłem, że FileZilla dobrze odpowiada moim potrzebom podczas edycji plików na zdalnym hoście, do którego mam dostęp SSH. Jest również szybki w konfiguracji.

  • konfiguruję nowe połączenie z serwerem
  • połącz się z serwerem
  • kliknij prawym przyciskiem myszy plik, który chcesz edytować i wybierz View/Edit.

To wyświetla mój domyślny edytor (Sublime), ale będzie działał z każdym edytor, który zainstalowałeś.

  • Po zapisaniu pliku program Filezilla automatycznie wyświetla monit, czy chcę "przesłać ten plik z powrotem na serwer", klikam" tak " i jest aktualizowany.
 0
Author: Ben Havilland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-06 20:42:59