web-dev-qa-db-ja.com

MacターミナルVimは行末にあるときのみバックスペースを使用します

私の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または^?を送信しましたが、違いはありません。

65
cflewis

おそらく、表示されている「問題」は、現在の挿入モードセッション中に入力されなかったものを削除できないことです。これは 'backspace' オプションのデフォルト設定によるものです。 set backspace=indent,eol,start~/.vimrcに追加するのは、おそらく望ましい動作です。

152
jamessan

これは、私の構成にある唯一の明示的なバックスペースマッピングです。それがあなたの問題に役立つかどうかはわかりませんが、試してみる価値はありますか?

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