And strictly I use Pycharm from the IntelliJ suite.
If you mount the remote FS locally (I use NFS) you can even stop writing locally and continue on your server's Jupyter web interface.