#vim
#vim
Вопрос:
Я установил плагин YCM. И я хочу, чтобы YCM завершал левую, правую скобки.
Я создал простой исходный файл cpp. В основной функции я объявил
vector<int> v(10, 0);
когда я нажал точку (.), были показаны векторные функции-члены.
Затем я нажал клавишу со стрелкой вниз и достиг empty()
функции.
Каждый раз, когда я нажимаю клавишу со стрелкой, YCM автоматически завершает название функции. Когда я перемещаю меню рекомендаций, YCM заполняет ТОЛЬКО название функции. не завершает скобки. Это разумно.
Наконец, я нажал клавишу ввода (я выбрал empty()
функцию). Однако YCM не завершил скобки.
v.пустой
Итак, мне нужно вручную ввести левую и правую скобки.
Я ожидал, что когда я нажму enter, YCM также завершит скобки.
Возможно ли сделать YCM полной скобкой?
ниже приведена моя ~/.vimrc
конфигурация.
let g:neocomplcache_enable_at_startup = 1
set completeopt-=preview
let g:ycm_add_preview_to_completeopt = 0
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp =~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
Plugin 'delimitMate.vim'
Plugin 'VundleVim/Vundle.vim'
Plugin 'AutoComplPop'
Plugin 'Valloric/YouCompleteMe'
Plugin 'tpope/vim-fugitive'
Plugin 'L9'
Plugin 'git://git.wincent.com/command-t.git'
call vundle#end() " required
filetype plugin indent on " required
let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf = 0
"To avoid conflict snippets
let g:ycm_key_list_select_completion = ['<C-j>', '<Down>']
let g:ycm_key_list_previous_completion = ['<C-k>', '<Up>']
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_autoclose_preview_window_after_insertion = 1
let g:ycm_show_diagnostics_ui = 0
let g:ycm_enable_diagnostic_signs = 0
let g:ycm_echo_current_diagnostic = 0
let g:ycm_collect_identifiers_from_tags_files = 1
set backspace=2
if has("syntax")
syntax on
endif
set nu
set nuw=9
set magic
set ls=2
set sc
set cursorline
"set autoindent
set ts=4
set shiftwidth=4
set laststatus=2
set statusline= %<%l:%v [%P]%=%a %h%m%r %F
set hlsearch
set scrolloff=2
set showmatch
set showmode
set smarttab
set smartindent
set softtabstop=4
set tabstop=4
set ruler
set incsearch
set title
set wrap
set scrollbind
set background=dark
hi Comment term=bold cterm=bold ctermfg=green
syntax enable
" AutoComplPop customizing
function! InsertTabWrapper()
let col = col('.')-1
if !col||getline('.')[col-1]!~'k'
return "<TAB>"
else
if pumvisible()
return "<C-N>"
else
return "<C-N><C-P>"
end
endif
endfunction
" AutoComplPop end
inoremap <TAB> <c-r>=InsertTabWrapper()<cr>
hi Pmenu ctermbg=blue
hi PmenuSel ctermfg=yellow ctermbg=black
hi PmenuSbar ctermbg=red
"DelimitMate customizing
"BreakLine: Return TRUE if in the middle of {} or () in INSERT mode
fun BreakLine()
if (mode() == 'i')
return ((getline(".")[col(".")-2] == '{' amp;amp; getline(".")[col(".")-1] == '}') ||
(getline(".")[col(".")-2] == '(' amp;amp; getline(".")[col(".")-1] == ')'))
else
return 0
endif
endfun
" Remap <Enter> to split the line and insert a new line in between if
" BreakLine return True
inoremap <expr> <CR> BreakLine() ? "<CR><ESC>O" : "<CR>"
"DelimitMate end
Комментарии:
1. Возможно, вам больше повезет в vi.stackexchange.com
2. 1) C — это не C — это не C! 2) Это не связано с языком C. 3) Это также не связано с Linux. 4) Не спамите тегами.
3. Прошу прощения. Я буду более осторожен.