2014-04-30 87 views
1

當我使用hjkl移動鍵(hnei對我來說,因爲我已經映射這些鍵與Colemak鍵盤佈局工作)在正常模式下,他們移動完全正常,沒有任何明顯的延遲。然而,在視覺模式下,與右移相對應的鍵(「我」)會導致非常令人討厭的滯後。我有一種感覺,我安裝的插件之一可能已經將命令映射爲「我」和另一個鍵的組合,但是我無法在任何地方找到它。爲什麼這種滯後發生?更具體地說,我是否在我的vimrc或插件中丟失了可能與我的移動映射衝突的內容?滯後響應

set nocompatible 
filetype off 
set rtp+=~/.vim/bundle/vundle/ 
call vundle#rc() 

Plugin 'gmarik/vundle' 
Plugin 'scrooloose/nerdtree' 
Plugin 'tpope/vim-surround' 
Plugin 'Lokaltog/vim-easymotion' 
Plugin 'jistr/vim-nerdtree-tabs' 
Plugin 'kchmck/vim-coffee-script' 
Plugin 'tpope/vim-repeat' 
Plugin 'kien/ctrlp.vim' 
Plugin 'tomtom/tcomment_vim' 
Plugin 'bling/vim-airline' 
Plugin 'godlygeek/tabular' 
Plugin 'tomasr/molokai' 
Plugin 'ervandew/supertab' 
Plugin 'kien/rainbow_parentheses.vim' 
Plugin 'docunext/closetag.vim' 
Plugin 'mattn/emmet-vim' 

" HNEI arrows. Swap 'gn'/'ge' and 'n'/'e'. 
noremap n gj|noremap e gk|noremap i l|noremap gn j|noremap ge k 
nnoremap <silent> jj :noh<CR> 
let g:mapleader="," 
noremap <space> i 
" Last search. 
nnoremap k n 
nnoremap K N 
" BOL/EOL/Join Lines. 
noremap l ^|noremap L $|noremap <C-l> J 
" _r_ = inneR text objects. 
onoremap r i 
" Switch tabs. 
nnoremap <C-i> <C-PageDown>|nnoremap <C-h> <C-PageUp> 
" SwiS1S1tch panes. 
noremap H <C-w>h|noremap I <C-w>l|noremap N <C-w>j|noremap E <C-w>k 
" Scroll up/down. 
noremap = <C-y>|noremap - <C-e> 
nnoremap ; : 
nnoremap : ; 
inoremap jj <Esc> 
noremap U <C-r> 
nnoremap + <C-a>|nnoremap - <C-x> 
noremap ' `|noremap ` ' 
vnoremap s S 
nnoremap <CR> o<Esc> 
noremap _ <c-_><c-_> 
vnoremap <Leader>a :Tabularize /:<CR> 
" Vim Display. 
set t_Co=256      
set shortmess+=I 
set display+=lastline 
set showtabline=1 
set backspace=2 
set textwidth=0 
" Text Display. 
syntax on 
set number 
set guicursor+=a:blinkon0 
set hlsearch 
set wrap 
set lbr 
set showbreak=···\ 
" Two-space tabs. 
set expandtab 
set smarttab 
" Editing. 
set autoindent 
set whichwrap+=<,>,h,l,b,s,[,] 
set splitbelow|set splitright 
" Searching and matching. 
set incsearch 
set ignorecase|set smartcase 
set gdefault 
set showmatch 
" System. 
filetype plugin indent on 
set mouse=a 
set t_RV=1 
set history=1000 
set wildmenu 
set wildmode=longest,full 
au BufEnter * set ignorecase 
set nohidden 
set laststatus=2 
let g:EasyMotion_do_mapping = 0 
nmap f <Plug>(easymotion-s) 
let g:EasyMotion_smartcase = 1 
nnoremap <silent> <Leader><Leader> :NERDTreeTabsToggle<CR> 

回答

3
:verbose vmap i 

會告訴你所有的視覺模式映射開始i(以及它得到了定義,這樣你就可以識別插件)。由於大多數「內部」文本對象以i開頭,並且在視覺模式下也可用,所以這種衝突確實是可能的。

+0

非常感謝!我能解決這個問題。你說的「我」是內部文本對象修飾符是正確的,但':verbose vmap i'是一個有用的命令! –