Remote Edititng and Development
Editing files through an SSH shell can be cumbersome (unless you are a vim or emacs guru). There are several options to have a editor natively running on your host machine, while editing files remotely. This gives you the convenience of a local editor (with graphical responsiveness) and the convenience of having the compiler on the COE systems. It basically emulates working on a remote file system (retrieve, edit and save file). You will still need to compile and debug code remotely through SSH.
Visual Studio Code
Microsoft has released a cross language cross platform code editor, vscode, with advanced features packaged into a command-based system (fewer menus, more commands). It has a C/C++ (instructions) module which supports Intellisense for easy code navigation and auto completion.
See separate page for VS Code.
Notepad++
Windows users may want to consider Notepad++. It comes automatically with a plugin NppFTP. This allows remotely editing files. After installation of Notepad++, just open Plugins -> NppFTP -> Show NppFTP Window. In the appearing side window under “Settings” select “Profile Settings”, and add a new connection to your Linux server. Notepad++ offers a simple Function List to navigate to symbols in a file.
Emacs
GNU Emacs has a software module for remote file editing called Tramp. It requires an SSH access to your file system. Remote compilation works transparently with Tramp. The pre-compiled Emacs binary for Windows (available here) already contains the Tramp module. Open a remote file by:
C-x C-f /<UserName>@<HostName>:<Path>
If putty with pagent is installed on Windows, use the plink method instead to avoid the password request.
C-x C-f /plink:<UserName>@<HostName>:<Path>
Eclipse
Eclipse CDT (for C/C++ development) already comes packaged with all necessary plugins. Download it here. See this simple tutorial for setup instructions.