J'essaie d'utiliser Sublime Text 2 en tant qu'éditeur lorsque je me connecte à mon serveur de travail, et je suis perplexe. J'ai trouvé ceci http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (parmi beaucoup d'autres articles) qui pourrait aider, mais je ne le fais pas Ne le suivez pas exactement, en particulier avec les valeurs que je devrais mettre dans la variable distante de la ligne 5. J'ai placé "/ Users/path/to/local/copy" dans mon répertoire racine local, mais je ne sais pas si c'est vrai ou s'il y a plus à faire. Des pensées? Je suis sur OSX10.8
Il y a trois façons:
Utiliser le plug-in SFTP (commercial) http://wbond.net/sublime_packages/sftp - Personnellement, je le recommande, car après la configuration des clés SSH publiques avec phrase secrète, il est sûr, facile et vaut chaque centime http: // opensourcehacker.com/2012/10/24/ssh-key-and-passwordless-login-basics-for-developers/
Montez la télécommande en tant que système de fichiers local en utilisant osxfuse
et sshfs
comme indiqué dans les commentaires. Cela peut être un peu difficile, selon la version OSX et vos compétences avec les systèmes de fichiers UNIX.
Entaillez ensemble quelque chose comme rmate qui édite des fichiers via un tunneling distant en utilisant une sorte de démon local (très difficile, fastidieux, mais compatible Sudo) http://blog.macromates.com/2011/mate-and-rmate/
En outre, en théorie, vous pouvez installer X11 sur le serveur distant et y exécuter Sublime sur un transfert VNC ou X11, mais cela ne servirait à rien.
Vous pouvez utiliser rsub , inspiré de la variable rmate
de TextMate. De la description:
Rsub est une implémentation de la fonctionnalité "rmate" de TextMate 2 pour Sublime Text 2, permettant la modification de fichiers sur un serveur distant à l'aide du transfert/tunneling de port SSH.
Voici un bon tutoriel sur la façon de le configurer correctement.
Je suis sous Windows et ai utilisé 4 méthodes: SFTP, WinSCP, Unison et Sublime Text sur Linux avec X11 transféré de SSH à Windows (oui, vous pouvez faites-le sans configs et en utilisant un outil gratuit).
La quatrième méthode est la meilleure si vous pouvez installer un logiciel sur votre machine Linux.
La quatrième façon:
MobaXterm
subl
Remarque: Lorsque vous appelez subl s'il se plaint d'une certaine bibliothèque, veillez à les installer pour pouvoir appeler sublimetext à partir de mobaxterm.
Si vous ne pouvez pas installer de logiciel sur votre machine Linux, le meilleur est Unison. Pourquoi?
SFTP
Installation: Installez le package SFTP Sublime Text. Ce paquet nécessite une licence.
Dans le sftp-config, je définis généralement:
"upload_on_save": true,
"sync_down_on_open": true,
Ceci, en plus d’un terminal SSH sur la machine, me donne une expérience d’édition à distance assez transparente.
WinSCP
A partir de ce moment, WinSCP conservera vos modifications synchronisées.
Travaillez dans le dossier local avec SublimeText. Assurez-vous simplement que Sublime Text est configuré pour deviner les fins de ligne du fichier en cours de modification.
Unison
J'ai constaté que si l'arborescence source est massive (quelques centaines de Mo avec une hiérarchie profonde), la méthode WinSCP décrite ci-dessus risque d'être un peu lente. Vous pouvez obtenir de bien meilleures performances en utilisant Unison . L'inconvénient est que Unison n'est pas automatique (vous devez le déclencher par une pression sur une touche) et nécessite qu'un composant serveur soit exécuté sur votre machine Linux. Le côté positif est que les transferts sont incroyablement rapides, très fiables et qu’ignorer les fichiers, les dossiers et les extensions est incroyablement facile à configurer.
Pour faire suite à la réponse de @ ubik, voici les trois étapes simples (uniques) permettant à la commande 'subl' de fonctionner sur votre serveur distant:
rsub
dans Sublime Text à l'aide de Sublime Package Manager[Local] Exécutez la commande Bash suivante (cela créera un tunnel SSH , qui est la sauce secrète de rsub):
printf "Host *\n RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
[Server] Exécutez la commande Bash suivante sur votre serveur distant (cela installera la commande 'subl' Shell):
Sudo wget -O /usr/local/bin/subl https://raw.github.com/aurora/rmate/master/rmate; Sudo chmod +x /usr/local/bin/subl
Et le tour est joué! Vous utilisez maintenant Sublime Text sur SSH.
Vous pouvez ouvrir un exemple de fichier dans Sublime Text à partir du serveur avec quelque chose comme subl ~/test.txt
Je suis sur MaxOS, et le moyen le plus pratique pour moi est d’utiliser CyberDuck , qui est gratuit (également disponible pour Windows). Vous pouvez vous connecter à votre système de fichiers SSH distant et éditer votre fichier à l'aide de votre éditeur local. CyberDuck télécharge le fichier dans un emplacement temporaire sur votre système d'exploitation local et l'ouvre avec votre éditeur. Une fois le fichier sauvegardé, CyberDuck le télécharge automatiquement sur votre système distant. Cela semble transparent, comme si vous éditiez votre fichier distant en utilisant votre éditeur local.
Vous pouvez essayer quelque chose sur lequel j'ai travaillé et qui s'appelle ' xeno '. Cela vous permettra d'ouvrir des fichiers/dossiers dans Sublime Text (ou tout éditeur local réellement) via une connexion SSH et de synchroniser automatiquement les modifications apportées à la machine distante. Cela devrait fonctionner sur presque tous les systèmes POSIX (je l’utilise moi-même sous OS X pour me connecter à des machines Linux et éditer des fichiers au format Sublime Text). C'est gratuit et open source. J'aimerais des commentaires.
Pour plus d'informations: il s'agit essentiellement d'un mashup Git/SSH écrit en Python qui vous permet de modifier des fichiers et des dossiers sur une machine distante dans un éditeur local. Vous n'avez pas besoin de configurer les modules du noyau, vous n'avez pas besoin d'avoir une connexion persistante, c'est tout automatique, et cela n'interférera pas avec le contrôle de source existant, car il utilise un référentiel Git en dehors de la structure de travail. En outre, comme il est construit sur Git, il est extrêmement rapide et prend en charge la fusion automatique des fichiers susceptibles de changer des deux côtés, contrairement à SSHFS/SFTP qui ne fera que masquer tous les fichiers avec des horodatages plus anciens.
C’est le moyen le plus simple d’éditer localement des fichiers stockés sur un hôte distant sur lequel vous avez déjà configuré ssh en IP distant.
# 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
Terminé !!!
Maintenant, sur l'hôte local, commencez simplement à modifier les fichiers ... lorsque vous répertoriez le répertoire en local, il est possible que rien ne soit répertorié tant que vous n'avez pas inséré un répertoire dans un répertoire spécifique ou un fichier spécifique ... Chargement paresseux ... cela n'a aucune incidence sur la modification des fichiers
subl /your/local/dir/magnum_opus.go # local file edit using sublime text
donc ci-dessus est en train de modifier le fichier distant à
/your/remote/dir/magnum_opus.go # remote file on box $REMOTE_IP
Pour OSX ou Windows, voyez ce tut du gentilhomme de Digital Ocean
Je sais que c'est bien vieux, mais j'ai une façon très cool de le faire qui mérite d'être partagée.
Ce qui est requis dans Conemu et WinSCP . Ce sont des instructions simples
Ouvrez WinSCP.exe et connectez-vous au serveur distant souhaité (j’ai
trouve qu'il est important de se connecter avant de joindre ...).
Dans les préférences de WinSCP, vous devez modifier deux paramètres. Choisissez une interface de type Explorer plutôt que Commander - pour ne pas voir les fichiers locaux. À moins que vous ne le vouliez (mais ça a l'air d'être nul ici). Configurez Sublime comme éditeur par défaut.
ConEmu étant ouvert, cliquez avec le bouton droit sur la barre d’onglet et sélectionnez l’option Attach to...
. Une boîte de dialogue s'ouvrira avec vos applications en cours d'exécution. Choisissez WinSCP, puis sélectionnez OK. ConEmu aura maintenant un onglet ouvert avec WinSCP affichant vos fichiers distants.
Faites un clic droit sur l'onglet WinSCP et choisissez New console...
. Lorsque la boîte de dialogue s'ouvre, entrez le chemin d'accès à l'exécutable Sublime sur votre système. Avant d’appuyer sur Start
, dans la case New console split
, sélectionnez le bouton radio to right
et définissez le pourcentage. Je choisis généralement 75%, mais vous pouvez le personnaliser à votre guise et le modifier ultérieurement.
Sidebar->Hide Sidebar
, et bam, vous avez maintenant des fichiers distants de la même manière que vous le feriez localement - avec quelques mises en garde bien entendu que vous devez modifier quoi que ce soit à distance. WinSCP est rapide comme l'éclair.J'ai deux moniteurs: le navigateur Chrome de l'écran gauche, l'éditeur de code des écrans droits. Également dans ConEmu
, je crée un autre onglet et ssh sur le site sur lequel je travaille, afin de pouvoir exécuter des opérations comme exécuter gulp
ou grunt
à distance et manipuler des fichiers à partir de la ligne de commande. Sérieusement accéléré le développement.
Voici une capture d'écran:
Une autre solution mac similaire à osxfuse consiste simplement à utiliser le client FTP Transmit de Panic Software, qui vous permet de monter un dossier distant en tant que disque local. Il supporte SFTP, qui est très sécurisé.
Vous pouvez utiliser sftp pour monter le répertoire distant sur votre machine de localisation, puis ouvrez simplement les fichiers en utilisant du texte Sublime comme vous le feriez normalement.
Pour monter un répertoire distant à l’aide de sftp, entrez les informations suivantes dans votre gestionnaire de fichiers Linux;
sftp://user@remote_box.com:22/home/user/code_directory
Cela peut sembler lent en fonction de votre vitesse Internet. Mais cela a fonctionné pour moi.
Je travaille sur un projet appelé GiySync . Il faut encore du travail, mais il est open source et je l’utilise tous les jours depuis quelques années. Je travaille également sur une version native d'OS X que j'ai appelée GitSyncApp
Pour l'instant, il s'agit uniquement d'OS X, mais il devrait être facile d'ajouter un support pour Linux et éventuellement aussi pour Windows.
Cela fonctionne en regardant les événements du système de fichiers et en utilisant git pour synchroniser un dossier de projet sur votre machine locale et un serveur.
J'ai essayé d'autres solutions telles que osx Fuse, Expand Drive, Transmit, plusieurs solutions utilisant rsync, etc. Elles fonctionnent toutes correctement pour les petits projets, mais si vous travaillez avec beaucoup de code, elles ne fonctionnent pas pour moi.
De nombreuses options du système de fichiers utilisent la mise en cache pour améliorer les performances, ce qui est bien, jusqu'à ce que ce ne soit pas le cas. Par exemple, si vous travaillez avec d'autres personnes et que quelqu'un d'autre modifie les fichiers sur le serveur.
J'ai également rencontré des problèmes si j'étais sur un réseau instable ou lent où je me retrouverais avec des fichiers vides. Ou un fichier qui n'a pas été synchronisé, la mise en cache est devenue bizarre; j'espère que vous avez commis récemment. Utiliser git résout ce problème car il vérifie l'intégrité de chaque commit.
Deux fonctionnalités bonus:
Une solution qui a très bien fonctionné pour moi: éditez localement sur Mac et synchronisez automatiquement le fichier sur un ordinateur distant.
Assurez-vous que vous avez une connexion sans mot de passe à la machine distante. Sinon, suivez ces étapes http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/
créez un fichier dans ~/Library/LaunchAgents/filesynchronizer.plist, avec le contenu suivant:
<?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>
Dans une fenêtre de terminal
launchctl load ~/Library/LaunchAgents/filesynchronizer.plist
C'est tout. Toute modification des fichiers dans ~/SyncDirectory sera synchronisée avec ~/SyncDirectory sur la machine distante. Les modifications locales remplaceront toutes les modifications distantes.
Cela crée un travail launchd qui surveille SyncDirectory et chaque fois que quelque chose change, il exécute rsync pour synchroniser le répertoire sur la machine distante.
Ceci s’applique aux utilisateurs Mac et Windows (j’utilise sur Mac). J'ai utilisé plusieurs des réponses énumérées au fil des ans et j'ai constaté que FileZilla répond bien à mes besoins lors de l'édition de fichiers sur un hôte distant auquel j'ai accès à SSH. C'est aussi rapide à installer.
View/Edit
.Cela ouvre mon éditeur par défaut (Sublime) mais cela fonctionnera avec n’importe quel éditeur que vous avez installé.
En fonction de vos besoins, vous pouvez envisager d’utiliser BitTorrent Sync. Créez un dossier partagé sur votre PC à la maison et votre PC de travail. Modifiez les fichiers sur votre ordinateur personnel (à l’aide de Sublime ou de ce que vous voulez) et ils se synchroniseront automatiquement lorsque vous enregistrez. BitTorrent Sync ne repose pas sur un serveur central qui stocke les fichiers (comme Dropbox, etc.), vous devez donc théoriquement éviter tout problème dû à un tiers qui stocke des informations sensibles.
lsyncd semble être une bonne alternative à l’approche sshfs. Si vous utilisez "-delay 0", cela fonctionne en temps réel.