文件:.config#nvim#init.vim

"文件:.config/nvim/init.vim
"--------v20201230-----------
"---注意首次运行如果出错
"---在nvim命令行:
"PlugInstall
":UpdateRemotePlugins
"----------------------------
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree'

" 主题
"Plug 'morhetz/gruvbox'

"好看的状态栏
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
let g:airline#extensions#hunks#enabled = 0
" 语法检查
Plug 'neomake/neomake'

" 括号匹配
Plug 'jiangmiao/auto-pairs'
" 自动补全
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" 主要为vimspector提供调试模板文件列表(.vim/vimspector_json/):cpp.json python.json shell.json 
" File navigation
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'

"F10键 终端 编辑/首选项/常规/(取消)启用菜单快捷键 
"F11键 终端 快捷键/(取消)启用快捷键
Plug 'puremourning/vimspector',{'do':'./install_gadget.py --force-enable-rust -enable-python --enable-go --enable-bash --enable-c'}


call plug#end()

"vim 与 系统共享粘贴板
set clipboard=unnamedplus

let g:airline#extensions#hunks#enabled = 0

" 主题
"colorscheme gruvbox
"set background=dark " 或者 set background=light
" 语法检查 忽视警告
let g:neomake_python_enabled_makers = ['pyflakes']
call neomake#configure#automake('nrwi', 500)	" 自动检查
" 代码补充的键位替换
"inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"

map ,q :call CompileRunGcc()<CR>
" 一键执行
func! CompileRunGcc()
    exec "w"
    if &filetype == 'c'
        exec '!g++ % -g -o %<'
        exec '!time ./%<'
    elseif &filetype == 'cpp'
        exec '!g++ % -g -o %<'
        exec '!time ./%<'
    elseif &filetype == 'python'
        exec '!python %'
    elseif &filetype == 'sh'
        :!time bash %
		endif
endfunc<Paste>

map ,m :call Make()<CR>
func! Make()
	exec "w"
	exec '!cd %:p:h && make'
endfunc<Paste>

" 键位的映射
map ,n :call ShowNumberToggle()<CR>
func! ShowNumberToggle()
	if &nu
		set nonu
		set mouse=v
	else
		set nu
		set mouse=a
	endif
endfunc<Paste>
noremap <F2> :NERDTreeToggle<CR>
noremap <C-x> :q<CR>
noremap <C-s> :w<CR>
inoremap <C-x> <Esc>:q<CR>
inoremap <C-s> <Esc>:w<CR>
noremap ,l :sp<CR><C-w>j:term ipython<CR> i %run 

set guifont=Courier/20
set foldenable      " 允许折叠  
set showcmd         " 输入的命令显示出来,看的清楚些 
set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示 
" 语法高亮
set syntax=on
" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=2
set shiftwidth=2
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  
set nocompatible  
"设置编码
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
" 括号匹配
set showmatch
" 鼠标
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 显示行号
set number
" 高亮当前行
set cursorline
highlight CursorLine   cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
highlight CursorColumn cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
" 设置空白字符的视觉提示
set list listchars=extends:❯,precedes:❮,tab:▸\ ,trail:˽
"autocmd vimenter * NERDTree "启动时打开插件
"退出编辑窗口就直接关闭目录树窗口
autocmd BufEnter * if 0 == len(filter(range(1, winnr('$')), 'empty(getbufvar(winbufnr(v:val), "&bt"))')) | qa! | endif

" ===
" === vimspector
" ===
let g:vimspector_enable_mappings = 'HUMAN'
function! s:read_template_into_buffer(template)
    " has to be a function to avoid the extra space fzf#run insers otherwise
    execute '0r ~/.vim/vimspector_json/'.a:template
endfunction
command! -bang -nargs=* LoadVimSpectorJsonTemplate call fzf#run({
            \   'source': 'ls -1 ~/.vim/vimspector_json',
            \   'down': 20,
            \   'sink': function('<sid>read_template_into_buffer')
            \ })
" %:p:h返回当前调试源文件所在的目录
" 如果没有%:p:h时.vimspector.json会被默认存到vim/nvim启动目录
" ~$nvim test/main.cpp  没有%:p:h时则返回~/.vimspector.json 如果有 %:p:h/.vimspector.json返回~/test/.vimspector.json
noremap <leader>vs :tabe %:p:h/.vimspector.json<CR>:LoadVimSpectorJsonTemplate<CR>
sign define vimspectorBP text=🛑 texthl=Normal
sign define vimspectorBPDisabled text=🚫 texthl=Normal
sign define vimspectorPC text=👉 texthl=SpellBad

" ===
" === youcompleteme
" ===
".ycm_extra_conf.py 是否提示加载1确认 0不需要确认
let g:ycm_confirm_extra_conf = 0

" 除~/Documents/目录之外拒绝加载~/目录内的.ycm_extra_conf.py文件
" 在例表前面的优先级高
let g:ycm_extra_conf_globlist = ['~/Documents/*','!~/*']
" 跳转快捷键
nnoremap <c-k> :YcmCompleter GoToDeclaration<CR>|
nnoremap <c-h> :YcmCompleter GoToDefinition<CR>| 
nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值