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
15 answers
Są trzy sposoby:
Użyj wtyczki SFTP (komercyjnej) http://wbond.net/sublime_packages/sftp - osobiście polecam, ponieważ po Ustawieniach publicznych klawiszy SSH z hasłem jest bezpieczny, łatwy i wart każdego grosza http://opensourcehacker.com/2012/10/24/ssh-key-and-passwordless-login-basics-for-developers/
Zamontuj zdalny jako lokalny system plików za pomocą
osxfuse
isshfs
, Jak wspomniano w komentarzach. To może być trochę trudne., w zależności od wersji OSX i Twoich umiejętności z UNIKSOWYMI systemami plików.Zhakuj razem coś takiego jak rmate, który edytuje pliki przez zdalne tunelowanie za pomocą jakiegoś lokalnego demona (bardzo trudnego, kłopotliwego, ale kompatybilnego z sudo) http://blog.macromates.com/2011/mate-and-rmate/
Ponadto teoretycznie można zainstalować X11 na zdalnym serwerze i uruchomić tam sublime przez VNC lub X11 forwarding, ale nie ma sensu tego robić.
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ć.
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
- instalacja MobaXterm w systemie Windows
- SSH do Twojego Linuksa z MobaXterm
- na Twoim Linuksie zainstaluj Sublime Text 3. Oto Jak na Ubuntu
- w wierszu polecenia Uruchom sublime za pomocą
subl
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.
- Utwórz nowy folder
- Otwórz go jako wysublimowany projekt tekstowy.
- na pasku bocznym kliknij prawym przyciskiem myszy folder i wybierz opcję map Remote.
- edycja sftp-config.plik json
- Kliknij prawym przyciskiem myszy folder w kroku 1 Wybierz Pobierz.
- 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
- Zainstaluj i uruchom WinSCP
- przejdź do Preferences (Ctrl+Alt+P) i kliknij Transfer, a następnie dodaj. Nazwij preset.
- Ustaw tryb transferu na binarny (nie chcesz konwersji linii)
- Ustaw modyfikację pliku Na "bez zmian"
- 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).
- Kliknij OK
- Połącz się ze zdalnym serwerem i przejdź do interesującego folderu
- wybierz pusty folder na komputerze lokalnym.
- wybierz nowo utworzone Ustawienia transferu.
- 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.
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:
- [Local ] zainstaluj pakiet
rsub
w Sublime Text za pomocą menedżera pakietów Sublime Package Manager -
[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
-
[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
Można otworzyć przykładowy plik w Sublime Text z serwera czymś w rodzaju subl ~/test.txt
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.
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.
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.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
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 ... ).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.
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.-
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śnieszStart
, w polu z napisemNew console split
Wybierz przycisk radiowyto right
i ustaw wartość procentową. Zazwyczaj wybieram 75%, ale możesz dostosować to do swoich upodobań i można to zmienić później.- 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.
- Teraz zobaczysz Sublime w tym samym oknie biegnącym po prawej stronie WinSCP. W Sublime, z menu Widok, wybierz
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:
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
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.
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:
- 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.
- Działa z każdym edytorem tekstu.
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.
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
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/
-
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>
-
W oknie terminala run
launchctl load ~/Library/LaunchAgents/filesynchronizer.plist
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.
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.
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.
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