ubuntu16.04制作vim和python3的开发环境


Posted in Python onSeptember 23, 2018

1. 安装vim:

# apt-get install  -y vim-gnome

2. 安装ctags,ctags用于支持taglist

# apt-get install ctags

3. 安装taglist

# apt-get install vim-scripts vim-addon-manager
# vim-addons install taglist

4. 安装pydiction 实现代码补全:

#wget  https://www.vim.org/scripts/script.php?script_id=850/pydiction-1.2.3.zip
# unzip pydiction-1.2.3.zip
# cd pydiction/after/ftplugin/
# mkdir /usr/share/vim/vim74/pydiction
# cp  -rp python_pydiction.vim  /usr/share/vim/vim74/ftplugin/
# cp complete-dict pydiction.py  /usr/share/vim/vim74/pydiction/

5.安装python_fold自动折叠插件

    下载python_fold.vim:
 https://www.vim.org/scripts/script.php?script_id=515
 
 # mv python_fold.vim /usr/share/vim/vim74/plugin/
 
  #vim /root/.vimrc
 set foldmethod=indent

6. 生成ctag序列:

 进入到python脚本所在的目录,在该目录下执行:
  # ctags -R *
  生成一个 ctags 文件,该文件记录了程序/项目的函数、类等的分析序列记录.

7. 安装taglist插件:

 下载插件:
  https://www.vim.org/scripts/script.php?script_id=273
 # unzip taglist_46.zip
 # cp plugin/taglist.vim  /usr/share/vim/vim74/plugin/
 # cp doc/taglist.txt  /usr/share/vim/vim74/doc/
 #vim
 :helptags /usr/share/vim/vim74/doc        "生成taglist帮助文件列表。
 : help taglist.txt        “查看taglist帮助信息。

8. 安装vim  plug:

 # mkdir ~/.vim/autoload/
 # cd ~/.vim/autoload/
 # wget https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

 配置vim plug:

#vim /root/.vimrc
 call plug#begin('~/.vim/autoload')          
 Plug 'Valloric/YouCompleteMe'             
 call plug#end() 

#vim /root/.vimrc
filetype off         " required
 
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/vundle
call vundle#begin()
 
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'vim-scripts/indentpython.vim'
Bundle 'Valloric/YouCompleteMe'

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

call plug#begin('~/.vim/autoload')
Plug 'Valloric/YouCompleteMe'

call plug#end()

set nocompatible "关闭与vi的兼容模式
set number "显示行号
set nowrap  "不自动折行
set showmatch  "显示匹配的括号
set scrolloff=3    "距离顶部和底部3行"
set encoding=utf-8 "编码
set fenc=utf-8   "编码
"set mouse=a    "启用鼠标
set hlsearch    "搜索高亮
syntax on  "语法高亮
set helplang=cn
set encoding=utf-8

"au BufNewFile,BufRead *.py
set tabstop=4
set softtabstop=4
set shiftwidth=4
set textwidth=79
set expandtab
set autoindent
set fileformat=unix
set foldmethod=indent
set autoindent " 实现自动缩进
set foldmethod=indent
set shiftwidth=4
set expandtab
set number

"Flagging Unnecessary Whitespace
highlight BadWhitespace ctermbg=red guibg=darkred

let Tlist_Auto_Highlight_Tag=1
let Tlist_Auto_Open=1
let Tlist_Auto_Update=1
let Tlist_Display_Tag_Scope=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Enable_Dold_Column=1
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_One_File=1
let Tlist_Use_Right_Window=1
let Tlist_Use_SingleClick=1
filetype plugin on

let g:pydiction_location = '/usr/share/vim/vim74/pydiction/complete-dict' 
let g:pydiction_menu_height = 20
autocmd FileType python set omnifunc=pythoncomplete#Complete


let Tlist_Show_One_File = 1  "不同时显示多个文件的tag,只显示当前文件的    
let Tlist_Exit_OnlyWindow = 1 "如果 taglist 窗口是最后一个窗口,则退出 vim     
let Tlist_Use_Right_Window = 1 "在右侧窗口中显示 taglist 窗口   
"let Tlist_Auto_Open=1  "在启动 vim 后,自动打开 taglist 窗口
"let Tlist_File_Fold_Auto_Close=1 "只显示当前文件 tag,其它文件的tag折叠 

let Tlist_Auto_Highlight_Tag=1
let Tlist_Auto_Open=1
let Tlist_Auto_Update=1
let Tlist_Display_Tag_Scope=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Enable_Dold_Column=1
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_One_File=1
let Tlist_Use_Right_Window=1
let Tlist_Use_SingleClick=1
nnoremap <silent> <F8> :TlistToggle<CR>
filetype plugin on
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascrīpt 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
autocmd FileType python set omnifunc=pythoncomplete#Complete

插件安装:

    切换到命令行模式,依次输入
    PlugStatus
    PlugInstall
    就可以安装插件了
    使用vim plug可以方便的管理插件
    查看插件类型:
    :PlugStatus
    安装插件:
    :PlugInstall
    更新插件::PlugUpdate
    vim-plug本身更新::PlugUpgrade

Python 相关文章推荐
python解析模块(ConfigParser)使用方法
Dec 10 Python
Python导入模块时遇到的错误分析
Aug 30 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
python 实现视频 图像帧提取
Dec 10 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
Python基础之元编程知识总结
May 23 Python
实例讲解Python中sys.argv[]的用法
Jun 03 Python
Python实现注册、登录小程序功能
Sep 21 #Python
用于业余项目的8个优秀Python库
Sep 21 #Python
Python 经典面试题 21 道【不可错过】
Sep 21 #Python
python使用folium库绘制地图点击框
Sep 21 #Python
在python中安装basemap的教程
Sep 20 #Python
python编程使用协程并发的优缺点
Sep 20 #Python
详解Numpy中的广播原则/机制
Sep 20 #Python
You might like
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
js判断节假日实例代码
2017/12/27 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
python 判断网络连通的实现方法
2018/04/22 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
Linux如何压缩可执行文件
2014/03/27 面试题
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
初婚初育证明范本
2014/11/24 职场文书
导师鉴定意见
2015/06/05 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers