加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

用~/.vimrc打造一个完整python环境

发布时间:2020-12-15 16:16:45 所属栏目:安全 来源:网络整理
导读:set nocompatible " requiredfiletype off " required" set the runtime path to include Vundle and initializeset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()" alternatively,pass a path where Vundle should install plugins"call vundle#begin(
set nocompatible              " 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')

" let Vundle manage Vundle,required
Plugin 'gmarik/Vundle.vim'


" Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)

" Split navigations
set splitbelow
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>

" Enable folding
Plugin 'tmhedberg/SimpylFold'
let g:SimpylFold_docstring_preview=1

" PEP8  auto indent
hi BadWhitespace guifg=gray guibg=red ctermfg=gray ctermbg=red
au BufNewFile,BufRead *.py
			 set tabstop=4 |
			 set softtabstop=4 |
			 set shiftwidth=4 |
			 set textwidth=79 |
			 set expandtab |
			 set autoindent |
			 set fileformat=unix

au BufNewFile,BufRead *.js,*.html,*.css
			 set tabstop=2 |
			 set softtabstop=2 |
			 set shiftwidth=2

Plugin 'vim-scripts/indentpython.vim'

au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /s+$/


set encoding=utf-8

Bundle 'Valloric/YouCompleteMe'


let g:ycm_autoclose_preview_window_after_completion=1
map <leader>g  :YcmCompleter GoToDefinitionElseDeclaration<CR>


"python with virtualenv support
"py << EOF
"import os
"import sys
"if 'VIRTUAL_ENV' in os.environ:
"  project_base_dir = os.environ['VIRTUAL_ENV']
"    activate_this = os.path.join(project_base_dir,'bin/activate_this.py')
"      execfile(activate_this,dict(__file__=activate_this))
"      EOF


Plugin 'scrooloose/syntastic'
Plugin 'nvie/vim-flake8'


let python_highlight_all=1
syntax on


Plugin 'jnurmine/Zenburn'
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'

let NERDTreeIgnore=['.pyc$','~$'] "ignore files in NERDTree

Plugin 'kien/ctrlp.vim'
set nu

Plugin 'Lokaltog/powerline',{'rtp': 'powerline/bindings/vim/'}
set clipboard=unnamed


"""""""""""""""""""""""""
" Quickly Run
"""""""""""""""""""""""""
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
	exec "w"
	if &filetype == 'c'
		exec "!g++ % -o %<"
		exec "!time ./%<"
	elseif &filetype == 'cpp'
		exec "!g++ % -o %<"
		exec "!time ./%<"
	elseif &filetype == 'sh'
		:!time bash %
	elseif &filetype == 'python'
		exec "!time python2.7 %"
	endif
endfunc

map lv 0v$

Plugin 'tpope/vim-fugitive'

" YouCompleteMe
set runtimepath+=~/.vim/bundle/YouCompleteMe
let g:ycm_collect_identifiers_from_tags_files = 1           " 开启 YCM 基于标签引擎
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释与字符串中的内容也用于补全
let g:syntastic_ignore_files=[".*.py$"]
let g:ycm_seed_identifiers_with_syntax = 1                  " 语法关键字补全
let g:ycm_complete_in_comments = 1
let g:ycm_confirm_extra_conf = 0
let g:ycm_key_list_select_completion = ['<c-n>','<Down>']  " 映射按键,没有这个会拦截掉tab,导致其他插件的tab不能用.
let g:ycm_key_list_previous_completion = ['<c-p>','<Up>']
let g:ycm_complete_in_comments = 1                          " 在注释输入中也能补全
let g:ycm_complete_in_strings = 1                           " 在字符串输入中也能补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_show_diagnostics_ui = 0                           " 禁用语法检查
inoremap <expr> <CR> pumvisible() ? "&;C-y>" : "&;CR>" |            " 回车即选中当前项
nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|     " 跳转到定义处
"let g:ycm_min_num_of_chars_for_completion=2                 "
"从第2个键入字符就开始罗列匹配项


" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读