How can I fix my delete key in VIM over ssh? (Mac OS X)
When I use VIM in the terminal on my local machine (Mac OS X Snow Leopard), the delete key is really backspace (i.e., destructive backspace).
When I SSH into a particular server, for some reason it's regular delete (i.e., delete the character under the cursor).
How can I change it to be consistent? I've tried a dozen solutions, but nothing seems开发者_运维技巧 to work.
Checking the "Delete sends Ctrl-H" box in Terminal Preferences->Advanced doesn't work -- this is non-destructive backspace.
I've tried about a hundred different key mappings in VIM, to no avail.
Interestingly, the key works as expected when I'm typing commands in VIM (e.g., : <something>
) -- it's only screwed up when I'm editing the actual text. Any ideas?
This worked for me:
:set backspace=indent,eol,start
I'm not sure exactly what it does but it is listed as a possible solution here and here. I found this line in a vimrc file distributed with Ubuntu where the behavior of the mac "delete" key (otherwise known as the "backspace" key) works as expected without any other configuration.
The behavior I was experiencing was a bell sound (no characters deleted) when pressing the mac "delete" key (otherwise known as the "backspace" key) in insert mode. I am using a compiled version of vim 7.3 on "amazon linux" over ssh from a mac. Pressing <ctrl-v><delete>
when in insert mode resulted in ^?.
Couple of ideas to try:
In your
.vimrc
file on the remote server, add this line:set term=linux
In your
.bash_profile
file (or whatever corresponds to your shell of choice) on the remote server:stty erase ^H
Note: to make this work correctly, you must type ctrl-v, then ctrl-h to type the
^H
character.Also, make sure "Delete sends Ctrl-H" is checked in your Terminal prefs.
Try this: http://www.alecjacobson.com/weblog/?p=295
I fixed the problem by changing my Terminal.app settings. Under Terminal > Preferences choose Advanced. Check “Delete sends Ctrl-H”. Now, vi and vim should understand the delete key more intuitively.
Note: Mapping the “delete” key in my vimrc file seemed like probably the correct way to do this, but that’s a lot of trouble. Is there any reason not to do it this way?
Try adding
set <Del>=<C-v><Del>
to the vimrc on the target machine. Here you must type <C-v><Del> while being logged on the target machine. If this does not work, check verbose imap <Del>
: this should tell you whether some plugin has remapped <Del>
in insert mode.
精彩评论