2011-02-07 3 views
7

、私は<?ph(g)Vimのオムニコンプリートポップアップの最初の単語を簡単に選択するヒントやヒントはありますか?例えば

次の単語がポップアップして(とPHPがメニューで強調表示が、コードに表示されていない)書いた場合:私はタブをヒットした場合

php 
phrase 
phrases 

またはCTRL +N私はShiftキーを押すと、それだけで"Back at original."

を行く + タブまたはCTRL + phraseになります。

phpがメニューで強調表示されている間に、Enterを押すとphが完了しません。

私は、これはVimの中に通常の行動や私の.vimrcに何か問題あるのかはわからない:

" SHORTCUTS 

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 [email protected]"<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> 

" 
set completeopt=menu,preview,longest 

" 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 

" 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=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 

" Improve completion popup menu 
inoremap <expr> <Esc>  pumvisible() ? "\<C-e>" : "\<Esc>" 
inoremap <expr> <CR>  pumvisible() ? "\<C-y>" : "\<CR>" 
inoremap <expr> <Down>  pumvisible() ? "\<C-n>" : "\<Down>" 
inoremap <expr> <Up>  pumvisible() ? "\<C-p>" : "\<Up>" 
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>" 
inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>" 

" 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 

すぐに最初の単語を選択する方法はありますか?

EDIT:あなたの.vimrcあなたがcompleteoptオプションに "最長" を追加しているで

:map <c-y> says: 

n <C-Y>A  <Plug>ZenCodingAnchorizeSummary 
n <C-Y>a  <Plug>ZenCodingAnchorizeURL 
n <C-Y>k  <Plug>ZenCodingRemoveTag 
n <C-Y>j  <Plug>ZenCodingSplitJoinTagNormal 
n <C-Y>/  <Plug>ZenCodingToggleComment 
n <C-Y>i  <Plug>ZenCodingImageSize 
n <C-Y>N  <Plug>ZenCodingPrev 
n <C-Y>n  <Plug>ZenCodingNext 
v <C-Y>D  <Plug>ZenCodingBalanceTagOutwardVisual 
n <C-Y>D  <Plug>ZenCodingBalanceTagOutwardNormal 
v <C-Y>d  <Plug>ZenCodingBalanceTagInwardVisual 
n <C-Y>d  <Plug>ZenCodingBalanceTagInwardNormal 
n <C-Y>;  <Plug>ZenCodingExpandWord 
n <C-Y>,  <Plug>ZenCodingExpandNormal 
v <C-Y>,  <Plug>ZenCodingExpandVisual   

答えて

6

ctrl-yを使用すると、リスト内で現在強調表示されているオプションを選択できます。 ctrl-nとpはnext/previousのリストを通過しますが、yは現在のものを選択します。

+0

これは私が探していたものです(しかし、なぜVimが単語を挿入するのを遅らせるのですか?) – alexchenco

+0

@janoChen:ctrl-yで始まるマッピングがあるようです。あなたは ':map 'と言うことができますか? – Benoit

+0

@Benoitありがとう!それが問題でした。 – alexchenco

3

set completeopt=menu,preview,longest 

これはオムニ補完が唯一の最長共通部分を埋めることができることを意味しすべての可能なマッチ。 :set completeopt=menu,previewだけを使用している場合、vimはオムニコンプリートを使用するときに最初の一致を選択する必要があります。

関連する問題