即使从.vimrc中删除,Vim映射仍然存在

时间:2013-07-18 16:51:40

标签: vim

这是一个非常奇怪的问题,它让我疯狂。有一次,在我的.vimrc文件中,我有一行如下所示:

nnoremap <tab> gg=G''

我曾经重新缩进我的整个文件。时间继续,我决定我想使用像%这样的标签,在打开/关闭标签/ parens /等之间移动。所以我删除上面的行,并将命令重新映射到control-i(如Eclipse)并将其替换为

nnoremap <tab> %
vnoremap <tab> %

我保存文件,获取文件,关闭vim,重新启动计算机,执行任何操作,但无论我做什么,按Tab键仍会缩进整个文件。当我用

检查映射时
:verbose map <tab>

我得到的输出是:

v  <Tab>       * %
    Last set from ~/.vimrc
n  <Tab>       * gg=G''
    Last set from ~/.vimrc

同样,如果我尝试

:verbose nnoremap <tab>

我明白了:

n  <Tab>       * gg=G''
    Last set from ~/.vimrc

我真的不确定这里发生了什么,映射肯定不再存在了。这是我的.vimrc:

set nocompatible               " be iMproved
filetype off                   " required!
let mapleader = ","
nnoremap <leader><space> :noh<cr>
nnoremap ; :
nnoremap <leader>v <C-w>v<C-w>l
nnoremap <leader>h <C-w>s<C-w>j
nnoremap <leader>f :CtrlP<CR>
nnoremap <tab> %
vnoremap <tab> %
inoremap jk <ESC>l
nnoremap <C-i> gg=G''
nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
syntax enable
set t_Co=16
set background=dark
set tabstop=2
set shiftwidth=2
set softtabstop=2
set smarttab
set expandtab
set number
set ignorecase
set smartcase
set gdefault
set incsearch
set showmatch
set hlsearch
set nobackup
set noswapfile
set smartindent
set hidden
set wildmenu
set nonumber
set nowrap
set relativenumber
set timeoutlen=100
set backspace=indent,eol,start
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required! 
Bundle 'gmarik/vundle'

" My Bundles here:
"
" original repos on github
Bundle 'tpope/vim-rails.git'
Bundle 'tpope/vim-endwise.git'
Bundle 'tpope/vim-surround.git'
Bundle 'scrooloose/nerdcommenter.git'
Bundle 'scrooloose/syntastic.git'
Bundle 'jiangmiao/auto-pairs.git'
Bundle 'kien/ctrlp.vim'
Bundle 'altercation/vim-colors-solarized.git'
colorscheme solarized
" vim-scripts repos
Bundle 'bufexplorer.zip'
Bundle 'HTML-AutoCloseTag'
Bundle 'matchit.zip'
Bundle 'ruby-matchit'
Bundle 'Rename2'

filetype plugin indent on     " required!
filetype indent on
"
" Brief help
" :BundleList          - list configured bundles
" :BundleInstall(!)    - install(update) bundles
" :BundleSearch(!) foo - search(or refresh cache first) for foo
" :BundleClean(!)      - confirm(or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle command are not allowed..

1 个答案:

答案 0 :(得分:4)

<c-i><tab>共享相同的密钥代码,因此无法相互区分。

使用与<c-i>不同的映射。我建议你使用领导者,例如nnoremap <leader>i gg=G''

如需更多帮助,请参阅:

:h keycodes
:h mapleader