配置vim作为python、php开发环境

来源:互联网 发布:淘宝店铺招牌全屏代码 编辑:程序博客网 时间:2024/05/15 23:44

配置vim作为python、php开发环境
使用vim编辑器开发的意义,大家自行补脑,这里直接上干货,配置vim作为php、python编辑器。
实现集成功能:自动补全、一键折叠、一键检查语法并格式化代码、文件管理
1.代码折叠效果,space键一键折叠/打开
代码折叠效果
2.语法检查效果,错误处标红
语法检查效果
3.代码补全效果第一张为youcompleteme补全,按上下键或ctrl+n/p即可,第二张为ultisnips补全,按tab键即可
youcompleteme补全效果
ultisnips补全效果
4.代码格式化及语法检测
代码格式化及语法检测效果
1.安装vim-youcompleteme自动补全补全代码:
sudo apt install vim-youcompleteme
vam install youcompleteme
2.安装vim-ultisnips快速补全if、function、for等代码结构及html、js、css等
sudo apt install vim-ultisnips
3.安装vim-syntastic做语法检查
sudo apt install vim-syntastic
vam install syntastic
4.安装astyle格式化代码
sudo apt install astyle
5.安装autopep8格式化python代码
pip3 install autopep8
sudo apt install vim-autopep8
6.安装pathogen管理vim插件
pip3 install vim-pathogen
7.安装nerdtree管理文件
在~/.vim下新建文件夹bundle并进入,之后
git clone git://github.com/scrooloose/nerdtree.git
修改配置文件,在/etc/vim/vimrc中添加execute pathogen#infect()
8.安装python-jedi补全python
pip3 install jedi
sudo apt install vim-python-jedi
9.修改配置文件.vimrc,个人配置添加如下
“设置当前行颜色区分
set cursorline
highlight CursorLine cterm=NONE ctermbg=black guibg=NONE guifg=NONE
“设置自动缩进
set autoindent
“设置tab长度
set tabstop=4
set shiftwidth=4
“显示行号
set number
“设置渐进式搜索
set incsearch
“设置自动保存
set autowrite
“隐藏缓冲区
set hidden
“设置自动折叠
set foldmethod=indent
” 启动vim时不要自动折叠代码
set foldlevel=100
” 设置折叠栏宽度
set foldcolumn=5
“设置保存折叠
au BufWinLeave * silent mkview
au BufWinEnter * silent loadview
“映射space打开/关闭折叠
:nnoremap za
“使pathogen生效
execute pathogen#infect()

“youcompleteme 默认tab s-tab 和自动补全冲突
“let g:ycm_key_list_select_completion=[‘’]
let g:ycm_key_list_select_completion = [‘’]
“let g:ycm_key_list_previous_completion=[‘’]
let g:ycm_key_list_previous_completion = [‘’]
“关闭加载.ycm_extra_conf.py提示
let g:ycm_confirm_extra_conf=0

” 开启 YCM 基于标签引擎
let g:ycm_collect_identifiers_from_tags_files=1

” 从第2个键入字符就开始罗列匹配项
let g:ycm_min_num_of_chars_for_completion=2

” 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_cache_omnifunc=0

” 语法关键字补全
let g:ycm_seed_identifiers_with_syntax=1

“在注释输入中也能补全
let g:ycm_complete_in_comments = 1
“在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
“注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0

“快捷键打开NerdTree
map :NERDTreeToggle
map :NERDTreeFind
let NERDTreeChDirMode=2 “选中root即设置为当前目录
let NERDTreeQuitOnOpen=1 “打开文件时关闭树
let NERDTreeShowBookmarks=1 “显示书签
let NERDTreeMinimalUI=1 “不显示帮助面板
let NERDTreeDirArrows=1 “目录箭头 1 显示箭头 0传统+-|号

“格式化代码”
map :call FormartSrc()
“定义FormartSrc()
func FormartSrc()
exec “w”
if &filetype == ‘c’
exec “r !astyle –style=ansi –one-line=keep-statements -a –suffix=none %”
elseif &filetype == ‘cpp’ || &filetype == ‘hpp’
exec “r !astyle –style=ansi –one-line=keep-statements -a –suffix=none % > /dev/null 2>&1”
elseif &filetype == ‘perl’
exec “r !astyle –style=gnu –suffix=none %”
elseif &filetype == ‘py’ || &filetype == ‘python’
exec “r !autopep8 -i –aggressive %”
elseif &filetype == ‘java’
exec “r !astyle –style=java –suffix=none %”
elseif &filetype == ‘jsp’
exec “r !astyle –style=java –suffix=none %”
elseif &filetype == ‘xml’
exec “r !astyle –style=gnu –suffix=none %”
elseif &filetype == ‘php’
exec “r !astyle –style=java –suffix=none %”
elseif &filetype == ‘html’ || $filetype == ‘htm’
exec “r !tidy % > %”
endif
exec “e! %”
endfunc
“结束定义FormartSrc

“自动补全括号”
inoremap ( ()i
inoremap [ []i
inoremap { {}i
inoremap < <>i
“回到上次编辑位置”
if has(“autocmd”)
au BufReadPost * if line(“’\”“) > 1 && line(“’\”“) <= line(“$”) | exe “normal! g’\”” | endif
endif

0 0
原创粉丝点击