我刚刚开始使用vim,并且非常有趣地添加了大量有用的插件.问题是,在设置我的所有插件的某个时刻,我没有注意到enter键的映射停止正常工作.在插入模式下,当我按回车键时,如果当前没有自动完成菜单,则不会创建换行符,而是打印:
pumvisible() ? "\" : "\"
这是我的vimrc:
"{{{Auto Commands " Improve python indentation and higlighting autocmd FileType python set complete+=k~/.vim/syntax/python.vim isk+=.,( " Automatically cd into the directory that the file is in autocmd BufEnter * execute "chdir ".escape(expand("%:p:h"), ' ') " Remove any trailing whitespace that is in the file autocmd BufRead,BufWrite * if ! &bin | silent! %s/\s\+$//ge | endif " Restore cursor position to where it was before augroup JumpCursorOnEdit au! autocmd BufReadPost * \ if expand(":p:h") !=? $TEMP | \ if line("'\"") > 1 && line("'\"") <= line("$") | \ let JumpCursorOnEdit_foo = line("'\"") | \ let b:doopenfold = 1 | \ if (foldlevel(JumpCursorOnEdit_foo) > foldlevel(JumpCursorOnEdit_foo - 1)) | \ let JumpCursorOnEdit_foo = JumpCursorOnEdit_foo - 1 | \ let b:doopenfold = 2 | \ endif | \ exe JumpCursorOnEdit_foo | \ endif | \ endif " Need to postpone using "zv" until after reading the modelines. autocmd BufWinEnter * \ if exists("b:doopenfold") | \ exe "normal zv" | \ if(b:doopenfold > 1) | \ exe "+".1 | \ endif | \ unlet b:doopenfold | \ endif augroup END "}}} "{{{Misc Settings " Necesary for lots of cool vim things set nocompatible " This shows what you are typing as a command. I love this! set showcmd " Folding Stuffs set foldmethod=marker " Needed for Syntax Highlighting and stuff filetype on filetype plugin on syntax enable set grepprg=grep\ -nH\ $* " Who doesn't like autoindent? set autoindent " Spaces are better than a tab character set expandtab set smarttab " Who wants an 8 character tab? Not me! set shiftwidth=4 set softtabstop=4 " Use english for spellchecking, but don't spellcheck by default if version >= 700 set spl=en spell set nospell endif " Real men use gcc "compiler gcc " Cool tab completion stuff set wildmenu set wildmode=list:longest,full " Enable mouse support in console set mouse=a " Got backspace? set backspace=2 " Line Numbers PWN! set number " Ignoring case is a fun trick set ignorecase " And so is Artificial Intellegence! set smartcase " This is totally awesome - remap jj to escape in insert mode. You'll never type jj anyway, so it's great! inoremap jj nnoremap JJJJ " Incremental searching is sexy set incsearch " Highlight things that we find with the search set hlsearch " Since I use linux, I want this let g:clipbrdDefaultReg = '+' " When I close a tab, remove the buffer set nohidden " Set off the other paren highlight MatchParen ctermbg=4 " }}} "{{{Look and Feel " Favorite Color Scheme if has("gui_running") colorscheme desert " Remove Toolbar set guioptions-=T "Terminus is AWESOME set guifont=Terminus\ 9 set lines=999 columns=999 else colorscheme desert endif "Status line gnarliness set laststatus=2 set statusline=%F%m%r%h%w\ (%{&ff}){%Y}\ [%l,%v][%p%%] " }}} "{{{ Functions "{{{ Open URL in browser function! Browser () let line = getline (".") let line = matchstr (line, "http[^ ]*") exec "!konqueror ".line endfunction "}}} "{{{Theme Rotating let themeindex=0 function! RotateColorTheme() let y = -1 while y == -1 let colorstring = "inkpot#ron#blue#elflord#evening#koehler#murphy#pablo#desert#torte#" let x = match( colorstring, "#", g:themeindex ) let y = match( colorstring, "#", x + 1 ) let g:themeindex = x + 1 if y == -1 let g:themeindex = 0 else let themestring = strpart(colorstring, x + 1, y - x - 1) return ":colorscheme ".themestring endif endwhile endfunction " }}} "{{{ Paste Toggle let paste_mode = 0 " 0 = normal, 1 = paste func! Paste_on_off() if g:paste_mode == 0 set paste let g:paste_mode = 1 else set nopaste let g:paste_mode = 0 endif return endfunc "}}} "{{{ Todo List Mode function! TodoListMode() e ~/.todo.otl Calendar wincmd l set foldlevel=1 tabnew ~/.notes.txt tabfirst " or 'norm! zMzr' endfunction "}}} "}}} "{{{ Mappings " Toggle line numbers and fold column for easy copying nnoremap :set nonumber! :set foldcolumn=0 " Open the Project Plugin nnoremap pal :Project .vimproject " TODO Mode nnoremap todo :execute TodoListMode() " Open the TagList Plugin nnoremap :Tlist " Open the Fuf Plugin nnoremap :FufFile " Open the MRU Plugin nnoremap :MRU " Next Tab nnoremap :tabnext " Previous Tab nnoremap :tabprevious " New Tab nnoremap :tabnew " Rotate Color Scheme nnoremap :execute RotateColorTheme() " DOS is for fools. nnoremap :%s/$//g :%s// /g " Paste Mode! Dang! nnoremap :call Paste_on_off() set pastetoggle= " Execute python file being edited with + e: map :w :!/usr/bin/env python % " Edit vimrc \ev nnoremap ev :tabnew :e ~/.vimrc " Edit gvimrc \gv nnoremap gv :tabnew :e ~/.gvimrc " Up and down are more logical with g.. nnoremap k gk nnoremap j gj inoremap gka inoremap gja " Good call Benjie (r for i) nnoremap i r nnoremap a r " Create Blank Newlines and stay in Normal mode nnoremap zj o nnoremap zk O " Space will toggle folds! nnoremap za " Search mappings: These will make it so that going to the next one in a " search will center on the line it's found in. map N Nzz map n nzz " Testing set completeopt=longest,menuone,preview inoremap pumvisible() ? "\ " : "\ u\ " inoremap pumvisible() ? "\ c-n>" : "\ c-n>\ c-r>=pumvisible() ? \"\\ down>\" : \"\"\ cr>" inoremap pumvisible() ? "\ c-n>" : "\ c-x>\ c-o>\ c-n>\ c-p>\ c-r>=pumvisible() ? \"\\ down>\" : \"\"\ cr>" " Swap ; and : Convenient. nnoremap ; : nnoremap : ; " Fix email paragraphs nnoremap par :%s/^>$// "ly$O#{{{ "lpjjj_%A#}}}jjzajj "}}} "{{{Taglist configuration let Tlist_Use_Right_Window = 1 let Tlist_Enable_Fold_Column = 0 let Tlist_Exit_OnlyWindow = 1 let Tlist_Use_SingleClick = 1 let Tlist_Inc_Winwidth = 0 "}}} let g:rct_completion_use_fri = 1 "let g:Tex_DefaultTargetFormat = "pdf" let g:Tex_ViewRule_pdf = "kpdf" let g:pydiction_location = "/home/axilus/.vim/after/ftplugin/python_pydiction/complete-dict" filetype plugin indent on syntax on
我加载的脚本:
1: /usr/share/vim/vimrc 2: /usr/share/vim/vim72/debian.vim 3: /usr/share/vim/vim72/syntax/syntax.vim 4: /usr/share/vim/vim72/syntax/synload.vim 5: /usr/share/vim/vim72/syntax/syncolor.vim 6: /usr/share/vim/vim72/filetype.vim 7: /home/axilus/.vimrc 8: /usr/share/vim/vim72/ftplugin.vim 9: /usr/share/vim/vim72/syntax/nosyntax.vim 10: /usr/share/vim/vim72/colors/desert.vim 11: /usr/share/vim/vim72/indent.vim 12: /home/axilus/.vim/plugin/EasyMotion.vim 13: /home/axilus/.vim/plugin/NERD_tree.vim 14: /home/axilus/.vim/plugin/fuf.vim 15: /home/axilus/.vim/autoload/l9.vim 16: /home/axilus/.vim/autoload/fuf.vim 17: /home/axilus/.vim/autoload/fuf/buffer.vim 18: /home/axilus/.vim/autoload/fuf/file.vim 19: /home/axilus/.vim/autoload/fuf/coveragefile.vim 20: /home/axilus/.vim/autoload/fuf/dir.vim 21: /home/axilus/.vim/autoload/fuf/bookmarkfile.vim 22: /home/axilus/.vim/autoload/fuf/bookmarkdir.vim 23: /home/axilus/.vim/autoload/fuf/tag.vim 24: /home/axilus/.vim/autoload/fuf/buffertag.vim 25: /home/axilus/.vim/autoload/fuf/taggedfile.vim 26: /home/axilus/.vim/autoload/fuf/jumplist.vim 27: /home/axilus/.vim/autoload/fuf/changelist.vim 28: /home/axilus/.vim/autoload/fuf/quickfix.vim 29: /home/axilus/.vim/autoload/fuf/line.vim 30: /home/axilus/.vim/autoload/fuf/help.vim 31: /home/axilus/.vim/autoload/fuf/givenfile.vim 32: /home/axilus/.vim/autoload/fuf/givendir.vim 33: /home/axilus/.vim/autoload/fuf/givencmd.vim 34: /home/axilus/.vim/autoload/fuf/callbackfile.vim 35: /home/axilus/.vim/autoload/fuf/callbackitem.vim 36: /home/axilus/.vim/plugin/l9.vim 37: /home/axilus/.vim/plugin/matchit.vim 38: /home/axilus/.vim/plugin/mru.vim 39: /home/axilus/.vim/plugin/pydoc.vim 40: /home/axilus/.vim/plugin/snipMate.vim 41: /home/axilus/.vim/plugin/supertab.vim 42: /home/axilus/.vim/plugin/surround.vim 43: /home/axilus/.vim/plugin/taglist.vim 44: /home/axilus/.vim/plugin/tcomment.vim 45: /usr/share/vim/vim72/plugin/getscriptPlugin.vim 46: /usr/share/vim/vim72/plugin/gzip.vim 47: /usr/share/vim/vim72/plugin/matchparen.vim 48: /usr/share/vim/vim72/plugin/netrwPlugin.vim 49: /usr/share/vim/vim72/plugin/rrhelper.vim 50: /usr/share/vim/vim72/plugin/spellfile.vim 51: /usr/share/vim/vim72/plugin/tarPlugin.vim 52: /usr/share/vim/vim72/plugin/tohtml.vim 53: /usr/share/vim/vim72/plugin/vimballPlugin.vim 54: /usr/share/vim/vim72/plugin/zipPlugin.vim 55: /home/axilus/.vim/after/plugin/snipMate.vim 56: /home/axilus/.vim/nerdtree_plugin/exec_menuitem.vim 57: /home/axilus/.vim/nerdtree_plugin/fs_menu.vim
我是vim的新手,所以如果还有其他需要请告诉我.
Supertab包含到
您可以在supertab之后通过将它们放在.vim/after/plugin/mappings.vim或类似的内容来进行inoremap映射.