In general, directly editing on a live/production server is not good practice. You should always have a local copy of your projects (preferably managed via a version control system) so that you'll be able to modify/test/debug changes before deploying them to a live/production webserver.
For testing during development, you should run a (local) web server with a configuration that matches the online webserver as closely as possible.
Also, a proper IDE will index/analyse the source code of your entire project so that it can give code-assist/auto completion on your code (not just standard php functions). Although technically possible, indexing/analysing all source files on a remote server causes huge delays and is therefore not supported by most IDEs. (https://stackoverflow.com/questions/14310339/using-remote-server-in-phpstorm)
However, there are some options, via a slightly different approach.
Many IDEs have a option to upload/deploy changes when saving a file, effectively keeping the 'remote' files in sync with your local copy. Basically; you have a local copy of the website on your computer and every time you make changes in a file, the IDE will automatically upload those to the (remote) webserver.
Here's some information on how to configure PhpStorm (my IDE of choice) for automatically uploading changes via FTP;
http://maffelu.net/phpstorm-upload-to-ftp-on-save/
http://www.jetbrains.com/phpstorm/webhelp/deployment-connection-tab.html