# Is there an IDE I could use to edit code from a personal computer over the network in real time?

I know it's possible to use FTP and various version control systems to upload or commit code developed on a full computer to the Raspberry Pi. Another possibility would be to simply use SSH and Vim (or Emacs).

Is there an IDE that supports real-time remote file editing (or is there a better alternative)? Would putting a web server with a page running Ace on the Raspberry Pi and using a browser from another machine be feasible (or sensible)?

• I'm pretty sure Eclipse can be encouraged to do this, but I don't know how! – Alex Chamberlain Jun 27 '12 at 18:00
• Interesting. I'll check into that and post if I find anything (though maybe someone who has done it before will beat me to the punch). – ramblinjan Jun 27 '12 at 18:20
• Eclipse X-forwarding? – Jivings Jun 27 '12 at 18:23
• Or run Emacs on you "full"computer. It has been abel to edit files remotely, in exactly the same way as local, from about -95. Same for edit files directly inside archives like tar and zip. But what is it you want to do? Which workflow do you need to support? – Anders Jun 28 '12 at 15:29
• If you are serious about software development, you really need to look into version controll systems like subversion (svn) or git. About deploying systems, you didn't wrote what it was. That could give you better answers, as there tools that works good with different languages/systems. – Anders Jun 28 '12 at 15:40

The IDE (probably) isn't the right place to be looking at this from. The simplest solution is to work with shared filesystems of some sort.

For exporting from the Rapsberry Pi the easiest way to export to a Linux (or I think Mac) host is to use sshfs. You'll need to install that on the computer you want to work on (there are Debian/Ubuntu packages at least), but you won't need to alter the configuration of the Raspberry Pi itself at all.

You can then mount your home directory on the device on your other computer by simply doing:

sshfs pi@192.168.1.2: /mnt/test


Where 192.168.1.2 is the address of your Raspberry Pi. After that it's just a matter of taking your favorite IDE and making it work in the directory you just mounted.

You could also install and configure Samba on the Raspberry Pi to export the filesystem as something Windows understands natively, or conversely mount a Windows share on the Raspberry Pi itself:

1. aptitude install samba to install Samba
2. smbpasswd -a pi to set a password for Windows file sharing with the pi user
3. On the windows machine navigate to \\192.168.1.2\pi and enter the username/password you just configured.
4. (Optionally) map the drive more permanently to a letter by going to tools->map network drive in explorer

Doing it at the filesystem layer avoids needing to have a customised IDE to support what is otherwise a pretty standard system, so leaves you more choices to work with the tools you're comfortable with.

• Hmm.. Have I been messing around with Samba when I could have been using this? – Jivings Jun 27 '12 at 19:23
• Using ntf is also a lot easier than using Samba. – Anders Jun 28 '12 at 15:34
• While there were lots of really good answers to this question, I accepted this one because it is the closest thing to simply using a default IDE. – ramblinjan Jun 28 '12 at 21:04

If you want to do web development, Aptana Studio can directly edit through FTP, or SSH (SFTP).

Two solutions come to mind:

1. Run emacs on your full computer, it supports remote file editing using a number of protocols, including ssh and telnet. You may argue that emacs is not an IDE, this is a matter of opinion although it certainly looks very different than your normal IDE. It is extremely powerful.

2. You don't specify which language you want to use, but IPython has grown a distributed computing extension recently (release 0.12). This allows you to run python on the host and execute code on the client via shared files and built-in RPC. Spyder is a neat IDE for Python that includes support IPython. Be sure to get a dev snapshot as they are improving the IPython support right now.

Two ssh based solutions (so you need to have sshd running on the RasPi, i.e. remote access enabled):

1. This method assumes your development machine has an X server (any Linux, but Mac and Windows are also possible). Connect using X forwarding: ssh -X pi@192.168.1.2 (replace with your RasPi's IP) and then just start any (preferably lightweight) graphical IDE like Geany - it'll magically run from your RasPi, but the graphical output is forwarded to your dev machine (depending on network speed and latency, there might be some lag, but it should be fine on LAN).
2. If using a decent file browser, like Gnome's Nautilus, you can just use its "Connect to Server..." option, after which you have the RasPi's file system as part of your regular file manager and can open up files in your favourite IDE completely transparently. This is essentially the same as Flexo's method, but no need to tinker with command line here.

Try jEdit. It works on Linux and Windys. Once it is installed, you need to install the ftp plugin. Then you can use ftp or my fave, sftp (over ssh) to navigate the file system on the remote machine. Very handy indeed.

You can make use of the KDE IO slaves to access files over ssh/ftp and many other protocols. I have previously used Kate (the KDE text editor) to edit files over ssh.

Another method I have used in the past, although not as nice, is to install Dropbox on both the pi and your computer, and then edit on the host and have Dropbox sync the file to the pi. As both machines are on the same network, synchronization usually takes only a few seconds. The nice thing is that Dropbox will keep a copy of all the files versions over the last 30 days for you, so if you are not using a VCS, you will have access to previous versions.