Mac终端Vim仅在一行结束时使用退格

时间:2010-08-20 19:02:43

标签: macos vim terminal

我的Mac 10.6终端或我的.vimrc似乎有点奇怪。

当我在笔记本电脑的键盘上键入 backspace 时,它仅在光标位于行尾时才有效。试图从一行内删除什么都不做。 MacVim正常运行。谷歌没有帮助,因为我甚至无法弄清楚这种行为的名称。

我的终端中的所有其他退格命令都按预期工作,所以我倾向于它是特定于Vim的。

这是我的〜/ .vimrc映射的输出,我看不到任何会让终端中的Vim以这种方式运行的东西:

cflewis@coral-reef ~> egrep ".*map.*" ~/.vimrc 
"inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
let mapleader = ","
map Q gq
nmap <silent> <leader>s :set nolist!<CR>
" extended '%' mapping for if/then/else/end etc
map <S-Insert> <MiddleMouse>
map! <S-Insert> <MiddleMouse>
nmap <silent> <C-N> :silent noh<CR>
nmap <C-E> :b#<CR>
nmap <C-P> :NERDTreeToggle<CR>
nmap <leader>p :NERDTreeFind<CR>
nmap <leader>/ :call NERDComment(0, "invert")<cr>
vmap <leader>/ :call NERDComment(0, "invert")<cr>
nmap <leader>t :TlistToggle<CR>
nmap <leader>e :e **/
nmap <Leader>b :MiniBufExplorer<cr>
nmap <Leader>sh :ConqueSplit bash<cr>
nmap <Leader>r :ConqueSplit 
" map ,y to show the yankring
nmap <leader>y :YRShow<cr>
imap <silent> <Down> <C-o>gj
imap <silent> <Up> <C-o>gk
nmap <silent> <Down> gj
nmap <silent> <Up> gk
cmap w!! %!sudo tee > /dev/null %
inoremap jj <Esc>
nnoremap JJJJ <Nop>

任何想法都将不胜感激。我尝试翻转删除键以发送^ H或^?,没有区别。

2 个答案:

答案 0 :(得分:147)

最有可能的是,您遇到的“问题”是您无法删除当前插入模式会话期间未键入的任何内容。这是由'backspace'选项的默认设置引起的。将set backspace=indent,eol,start添加到~/.vimrc是您可能想要的行为。

答案 1 :(得分:14)

这是我配置中唯一的显式退格映射。我不知道它是否对你的问题有帮助,但值得一试?

" allow backspacing over everything in insert mode
set backspace=indent,eol,start