简体   繁体   中英

How to disable tab completion in vim?

From this morning I'm searching for a solution without any lucks. Can you please tell me how to disable this thing who appears when I press TAB?

在此处输入图片说明

This is my .vimrc file:

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

" This is the Vundle package, which can be found on GitHub.
" For GitHub repos, you specify plugins using the
" 'user/repository' format
Plugin 'gmarik/vundle'

" We could also add repositories with a ".git" extension
Plugin 'scrooloose/nerdtree.git'

" To get plugins from Vim Scripts, you can reference the plugin
" by name as it appears on the site
Plugin 'Buffergator'

" Syntax hihgler
Plugin 'scrooloose/syntastic'


" Pluginper gli snippet
Plugin 'msanders/snipmate.vim'

" Plugin per la gestione delle parentesi, per maggiori informazioni: https://github.com/jiangmiao/auto-pairs
 Plugin 'jiangmiao/auto-pairs'


" Now we can turn our filetype functionality back on
filetype plugin indent on

" Enable syntax high.
syntax on

" Set the default charset
set encoding=utf-8 nobomb

" Enable line number
set number

" Highligth cursor line
set cursorline

" Set tab as 2 white space
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab


" Enable mouse in all mode
set mouse=a

" Show the cursor position
set ruler

" Show the filename inside the titlebar
set title


" Strip trailing whitespace (,ss)
function! StripWhitespace()
    let save_cursor = getpos(".")
    let old_query = getreg('/')
    :%s/\s\+$//e
    call setpos('.', save_cursor)
    call setreg('/', old_query)
endfunction



" Map CTRL+n to toggle nerdtree
map <C-n> :NERDTreeToggle<CR>

"  close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif

filetype plugin on


" More Common Settings.
 set scrolloff=3
 set autoindent
 set showmode
 set hidden
 set visualbell

It seems you have typed CTRL N CTRL P as mentioned at the bottom of your screenshot.

This is the default key for keyword completion. You might try to find out why and where TAB was remaped to completion with :verbose imap <Tab> it will show you the last place where it has been redefined.

I would have suspected something like SuperTab which use TAB for every kind of completion but I don't see it in your .vimrc.

Completion can be stopped via <cy> to stop and accept the current completion or via <ce> which stops completion and restores the text as it was before the completion. However the most common way to stop completing is to type a non-keyword character like space or a symbol.

It should be noted that Vim does not complete on <tab> in insert mode by default. Instead it uses <cn> and <cp> . If completion is happening on <tab> then you may want to track down the mapping via :verbose imap <tab> as @FDinoff suggested.

For more help see:

:h ins-completion

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM