Reputation: 57194
I program with eclipse and sometimes use GUI text editors like SciTE or vim. However, I'm at a point in a project that requires me to edit files over a ssh connection in a 80 column SSH window.
Since I have to (* shiver*) sudo vim
before I can open the file I'm not sure how to open the file in an editor outside the terminal (that would allow me to see the text wider than 80 columns). If the command line was larger then I guess using straight vim wouldn't be a problem.
I'm at a loss of how to deal with this situation and how I could turn this nightmare into a manageable coding environment.
Upvotes: 80
Views: 145716
Reputation: 11
My vim solution:
File: $HOME/.vim/autoload/redit.vim
export def Redit(server: string, f: string)
exec ":e scp://" .. server .. f
enddef
File: $HOME/.vimrc
command! -nargs=* Redit :vspl | :call redit#Redit(<f-args>)
If you have vim open:
:Redit $USER@$HOSTNAME //path/to/file
Upvotes: 0
Reputation: 486
i wrote a simple shell script to do so get it form https://github.com/KTBsomen/sshedit.git
basically it copy the whole file structure in your local mechine with current date so version controll and backup is automagically done and then runs a watcher for file changes as you change your files it will updated on the server realtime steps to run
sudo ./sshedit.sh
it will install some programm if not found,
then it will ask for host of the ssh connection in a GUI window like 3.23.253.5,
then it will ask for the hostname like ubuntu,
then it will ask for the .pem file it will open a file chooser to select ,
then it will ask for the file path to connect to like /home/ubuntu/,
then it will ask for short code of your code editor like code (for vs code) subl (for sublime text)
change the code as your need and add a pull request
Upvotes: 0
Reputation: 841
If you work in IntelliJ IDEA, you can use Friendly Terminal plugin instead of the native terminal. It allows to open and edit remote files in IntelliJ IDEA editor. Video
Upvotes: 0
Reputation: 2647
Since sshfs is not supported in WSL at the moment, the tool that worked for me is sshfs-win.
Upvotes: 1
Reputation: 3285
If you are more GUI-oriented and use one of the more newbie-friendly Linux distros like Ubuntu or Mint, this is another option and does not require any more installations.
You should have nemo as your default file manager. It may not be called "Nemo" on the menu, so go under Help > About
of your file manager ("Files" app) to see.
In nemo, go to File > Connect to server
, enter your remote machine's details (SSH's default port is 22), and then open the files just like any file on your local machine, with whatever editor you prefer. You can even close Nemo and continue working in your editor.
From the address bar, it seems to be using the sftp
protcol.
Just be aware that if your remote host has an inactivity timeout for the SSH connection, this will also prevent you from saving changes in the editor after the timeout has dropped the connection...
Upvotes: 1
Reputation: 478
FileZilla did the trick for me. Notepad++ can be used with it which is awesome.
Upvotes: 2
Reputation: 7344
Maybe you should simply mount the remote filesystem to your local machine and then use whatever editor you like. If running a Debian derivative, install sshfs
sudo apt-get install sshfs
and then mount the remote filesystem ( issue on your local machine )
mkdir ~/remote_code
sshfs [email protected]:/home/$USER/code ~/remote_code
Once this is done you can access the code in ~/remote_code w/ any of your GUI tools and without the bandwidth overhead of using ssh -X (however you still need a good connection w/ a low ping time).
PS: When using ssh I can make the terminal as wide as it fits my screen and then use its full width, so I fear I don't completely understand your issue.
Upvotes: 117
Reputation: 11
Recent versions of ultraedit do exactly what the OP is asking for elegantly (IDM software, v10 and up support SSH iirc). I do most of my coding remotely like that, been using it for years, works great with no intermediate files etc. Obviously it also does FTP etc too if you're so inclined.
I actually found this page whilst looking for a linux equivalent of ultraedit..
Upvotes: 1
Reputation: 6049
Notepad ++
has a plugin for editing files remotely over ssh. I've used it before, but I definitely prefer Kate on KDE using the fish
protocol.
http://www.inmotionhosting.com/support/website/ftp-client-setup/connect-ftp-notepad-plus
Upvotes: 5
Reputation: 600
On Windows, you can use MobaXterm ( http://mobaxterm.mobatek.net ): it has a built-in SSH client with a very useful "SFTP browser".
As soon as you connect to your remote server using SSH, you will see your remote files displayed in this graphical SFTP browser. Just double-click on your files and you will be able to edit them directly on your remote server through SFTP.
Upvotes: 3
Reputation: 5487
If you're on Ubuntu, go to Nautilus (file explorer), connect to server (adding sftp:// to the hostname), then voila! You can easily launch gedit to edit your files now.
Upvotes: 3
Reputation: 6621
WinSCP is a SSH client ftp-like. The default editor is primitive but can be change.
Upvotes: 29
Reputation: 21563
You might try the Komodo editor. It has a feature to load a 'remote file' over ssh. It's really convenient.
Upvotes: 3
Reputation: 71
I'm not 100% sure if this works for files owned by root, but if your desktop is KDE & your remote system is Linux (or pretty much any form of *nix), you can get konqueror to access the remote machine using the "fish://" protocol. From there you can open the file from konqueror using kate, or your preferred editor, and konqueror will take care of copying the file to your local machine and copying it back when you save.
Failing which the X11 forward is a good option, but X11 over ssh to remote sites can be slow. "ssh -X -C" compresses the data stream and can give better performance.
Upvotes: 7
Reputation: 1401
If you using windows, try Editplus. It's not free but allows you to open files directly over scp. Custom syntax files are coming really handy, too.
Upvotes: 1
Reputation: 7009
There are various options.
You can make the terminal larger. ;)
If you have a graphical environment installed on the machine you are ssh'ing into, you can login with ssh -X
(or xdeep-putty if you are on Windows) to enable window forwarding. You can then run your favourite editor on the remote machine, whose graphical output is forwarded.
Finally, you can mount the ssh connection into your file system, using for example fuse (similar options might exist for non-linux operating systems). That allows you to access any file on the remote machine as if it were in your filesystem, with your favourite editor, locally.
Upvotes: 10
Reputation: 5190
Forward your X11 session to your terminal.
http://dragonwall.net/xdeep-putty.html
This probably belongs on superuser.com.
Upvotes: 3