vim - 如何在Vim的自动完成系统中预览第一个单词?

标签 vim

我在.vimrc中添加了以下内容:

" fill in the all possible matches
set completeopt=menu,preview


但是我仍然不能让Vim预览第一个单词(我正在使用AutoComplPop插件)。



(我知道按CTRL + Y会选择第一个出现的单词,但由于某些原因,它会延迟大约0.5秒插入单词)。

我整个.vimrc:

nnoremap <C-N><C-P> <C-Y>

nnoremap <F4> :set filetype=html<CR>
nnoremap <F5> :set filetype=php<CR>

nnoremap <F3> :TlistToggle<CR>

" press space to turn off highlighting and clear any message already displayed.
nnoremap <silent> <Space> :nohlsearch<Bar>:echo<CR>

" set buffers commands
nnoremap <silent> <M-F8> :BufExplorer<CR>
nnoremap <silent> <F8> :bn<CR>
nnoremap <silent> <S-F8> :bp<CR>

" open NERDTree with start directory: D:\wamp\www
nnoremap <F9> :NERDTree /home/alex/www<CR>

" open MRU
nnoremap <F10> :MRU<CR>

" open current file (silently)
nnoremap <silent> <F11> :let old_reg=@"<CR>:let @"=substitute(expand("%:p"), "/", "\\", "g")<CR>:silent!!cmd /cstart <C-R><C-R>"<CR><CR>:let @"=old_reg<CR>

" open current file in localhost (default browser)
nnoremap <F12> :! start "http://localhost" file:///"%:p""<CR>

" open Vim's default Explorer
nnoremap <silent> <F2> :Explore<CR>

nnoremap <C-F2> :%s/\.html/.php/g<CR>

" fill in the all possible matches
set completeopt=menu,preview

" REMAPPING
" map leader to ,
let mapleader = ","

" remap ` to '
nnoremap ' `
nnoremap ` '

" remap increment numbers
nnoremap <C-kPlus> <C-A>

" COMPRESSION

function Js_css_compress ()
  let cwd = expand('<afile>:p:h')
  let nam = expand('<afile>:t:r')
  let ext = expand('<afile>:e')
  if -1 == match(nam, "[\._]src$")
    let minfname = nam.".min.".ext
  else
    let minfname = substitute(nam, "[\._]src$", "", "g").".".ext
  endif
  if ext == 'less'
    if executable('lessc')
      cal system( 'lessc '.cwd.'/'.nam.'.'.ext.' &')
    endif
  else
    if filewritable(cwd.'/'.minfname)
      if ext == 'js' && executable('closure-compiler')
        cal system( 'closure-compiler --js '.cwd.'/'.nam.'.'.ext.' > '.cwd.'/'.minfname.' &')
      elseif executable('yuicompressor')
        cal system( 'yuicompressor '.cwd.'/'.nam.'.'.ext.' > '.cwd.'/'.minfname.' &')
      endif
    endif
  endif
endfunction
autocmd FileWritePost,BufWritePost *.js :call Js_css_compress()
autocmd FileWritePost,BufWritePost *.css :call Js_css_compress()
autocmd FileWritePost,BufWritePost *.less :call Js_css_compress()

" GUI
" taglist right side
let Tlist_Use_Right_Window = 1

" hide tool bar
set guioptions-=T

"remove scroll bars
set guioptions+=LlRrb
set guioptions-=LlRrb

" set the initial size of window
set lines=46 columns=180

" set default font
set guifont=Monospace
" set guifont=Monospace\ 10

" show line number
set number

" set default theme
colorscheme ir_dark

" encoding
set encoding=utf-8
setglobal fileencoding=utf-8 bomb
set fileencodings=ucs-bom,utf-8,latin1

" SCSS syntax highlight
au BufRead,BufNewFile *.scss set filetype=scss

" LESS syntax highlight
syntax on
au BufNewFile,BufRead *.less set filetype=less

" Haml syntax highlight
"au! BufRead,BufNewFile *.haml
"setfiletype haml

" Sass syntax highlight
"au! BufRead,BufNewFile *.sass
"setfiletype sass

" set filetype indent
filetype indent on

" set other indenting preferences
set autoindent

" for snipMate to work
filetype plugin on

" show breaks
set showbreak=----->

" coding format
set tabstop=4
set shiftwidth=4
set linespace=1

" CONFIG

" keep the buffer around when left
set hidden

" enable matchit plugin
source $VIMRUNTIME/macros/matchit.vim

" folding
set foldmethod=indent

"set foldmethod=marker
"set foldmarker={,}
"let g:FoldMethod = 0
"map <leader>ff :call ToggleFold()<cr>
"fun! ToggleFold()
    "if g:FoldMethod == 0
        "exe 'set foldmethod=indent'
        "let g:FoldMethod = 1
    "else
        "exe 'set foldmethod=marker'
        "let g:FoldMethod = 0
    "endif
"endfun

" save and restore folds when a file is closed and re-opened
"au BufWrite ?* mkview
"au BufRead ?* silent loadview

" auto-open NERDTree everytime Vim is invoked
au VimEnter * NERDTree /home/alex/www

" set omnicomplete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete

" Remove trailing white-space once the file is saved
au BufWritePre * silent g/\s\+$/s///

" Use CTRL-S for saving, also in Insert mode
noremap <C-S> :update!<CR>
vnoremap <C-S> <C-C>:update!<CR>
inoremap <C-S> <C-O>:update!<CR>

" DEFAULT
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
"source $VIMRUNTIME/mswin.vim
"behave mswin

" disable creation of swap files
set noswapfile

" no back ups wwhile editing
set nowritebackup

" disable creation of backups
set nobackup

" no file change pop up warning
autocmd FileChangedShell * echohl WarningMsg | echo "File changed shell." | echohl None

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

最佳答案

试试这个插件:neocomplcache

第三个字符(您可以在.vimrc中设置此字符)后出现全功能,并使用Tab键在列表中移动。

您可以在我的dotfiles at github中查看插件配置。

关于vim - 如何在Vim的自动完成系统中预览第一个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4929865/

相关文章:

vim - 如何在 :Ex 之后返回编辑文件

python - vim中的Rope自动补全(RopeCodeAssist)能不能自动插入结果?

vim - 使用 == 时保留光标位置

c - Vim:缩进/对齐问题

vim - 使用 <tab> 和 <s-tab> 在 Vim 窗口之间移动

vim 突出显示到屏幕的右边缘

bash - 如何将文本从一个 Vim 文件复制/粘贴到另一个 shell 选项卡中的另一个 Vim 文件?

python - 有没有办法让 vim 以 79 个字符自动包装 python 字符串?

windows - 你如何在 Windows 中运行 Vim?

vim - 为什么大多数 vim 配色方案在我使用时看起来不像屏幕截图那么漂亮?