python号称人工智能语言,现在可算大热,这篇博客将介绍如何用vim打造一款自己专属的python编程环境。

step1

由于安装YouCompleteMe需要vim8.0及以上版本,所以得安装使用vim的8.0及以上版本,使用vim --version查看自己的vim版本,如果没达到要求可以参考我的另一篇博客vim8.0安装教程进行安装。接着使用git安装vim的包管理工具Vundle

git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

然后在vim的配置文件~/.vimrc中添加如下内容

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)

" All of your Plugins must be added before the following line

call vundle#end() " required

filetype plugin indent on " required

配置好之后执行vim命令打开编辑窗口,输入命令PluginList若能显示已安装的插件则表明Vundle已安装成功,命令PluginInstall可用于安装插件,PluginClean可用于卸载插件,不过需要先在~/.vimrc中将不要下载的插件注释掉或者去除。

step2

在~/.vimrc中添加让vundle安装的插件并且对插件进行配置,这里直接贴出我~/vim.rc的全部内容

set nocompatible " required

filetype off " required

"设置Vundle的运行路径

set rtp+=/home/brooksj/.vim/bundle/Vundle.vim

"设置插件的安装路径,vundle插件起始标志

call vundle#begin('/home/brooksj/.vim/bundle')

"让vundle管理插件版本

Plugin 'VundleVim/Vundle.vim'

"添加nerdtree插件

Plugin 'scrooloose/nerdtree'

"使用tab键切换窗口与目录树

Plugin 'jistr/vim-nerdtree-tabs'

"添加jedi-vim代码补全插件

"Plugin 'davidhalter/jedi-vim'

Plugin 'Valloric/YouCompleteMe'

"添加PEP8代码风格检查

Plugin 'nvie/vim-flake8'

"配色方案

Plugin 'jnurmine/Zenburn'

Plugin 'altercation/vim-colors-solarized'

Plugin 'tomasr/molokai'

"代码折叠插件

Plugin 'tmhedberg/SimpylFold'

"自动缩进

Plugin 'vim-scripts/indentpython.vim'

"在vim的normal模式下搜索文件

Plugin 'kien/ctrlp.vim'

"Powerline状态栏

Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}

"你的所有插件需要在下面这行之前

call vundle#end()

"设置显示powerline

set laststatus=2

"设置分割窗口

set splitbelow

set splitright

"设置窗口移动快捷键

nnoremap

nnoremap

nnoremap

nnoremap

"设置按F2启动NerdTree

map :NERDTreeToggle

"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

"force recomile with syntastic

nnoremap :YcmForceCompileAndDiagnostics

"nnoremap lo :lopen "open locationlist

"nnoremap lc :lclose "close locationlist

inoremap

"在注释输入中也能补全

let g:ycm_complete_in_comments = 1

"在字符串输入中也能补全

let g:ycm_complete_in_strings = 1

"注释和字符串中的文字也会被收入补全

let g:ycm_collect_identifiers_from_comments_and_strings = 0

"let g:ycm_autoclose_preview_window_after_completion=1

"隐藏目录树种的.pyc文件

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

"设置主题颜色,以及设置快捷键F5

set t_Co=256

set background=dark

if has('gui_running')

colorscheme solarized

else

colorscheme molokai

"let g:molokai_original=1

endif

call togglebg#map("")

if &diff

colors blue

endif

"开启代码折叠

set foldmethod=indent

set foldlevel=99

"设置快捷键为空格

nnoremap za

"显示折叠代码的文档字符串

let g:SimpylFold_docstring_preview=1

"python代码缩进PEP8风格

au BufNewFile,BufRead *.py,*.pyw set tabstop=4

au BufNewFile,BufRead *.py,*.pyw set softtabstop=4

au BufNewFile,BufRead *.py,*.pyw set shiftwidth=4

au BufNewFile,BufRead *.py,*.pyw set expandtab

au BufNewFile,BufRead *.py,*.pyw set textwidth=79

au BufNewFile,BufRead *.py,*.pyw set autoindent

au BufNewFile,BufRead *.py,*.pyw set fileformat=unix

"对其他文件类型设置au命令

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

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

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

"高亮显示行伟不必要的空白字符

highlight Whitespace ctermbg=red guibg=red

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

"设置行号显示

set nu

"设置utf-8编码

set encoding=utf-8

let python_highlight_all=1

syntax on

filetype plugin indent on

set backspace=indent,eol,start

set cursorline

set history=1000

set fileencodings=utf-8,gb18030,utf-16,big5

set hlsearch

set clipboard=unnamed

set expandtab

set softtabstop=4

set tabstop=4

set shiftwidth=4

对安装的几个插件作一个简要的介绍:

nerdtree可用于在vim窗口下查看文件的数形结构

YouCompleteMe可提供语法高亮以及代码提示等,打造IDE必备

vim-flake8支持python PEP8代码风格检查

indentpython.vim用于写python时自动缩进

SimpylFold用于代码折叠(我配置了快捷键space或者za来折叠代码)

ctrlp用于查找文件(按下ctrl+p即进入文件查找功能)

powerline是一款比较炫酷的状态栏工具,显示vim状态及其打开文件的一些信息(我安装powerline时提示我powerline只兼容python2.7以及python3.2版本,所以得注意你所使用的python版本)

vim-colors-solarized、Zenburn以及molokai是三款好看的配色方案,可以自己在~/.vimrc中配置时使用哪种颜色方案

step3

终端执行vim命令打开vim,然后输入命令PLuginInstall对上面配置的插件进行安装,下面是我安装好之后插件截图

step4

YouCompleteMe的安装比较特殊,使用Vundle安装好之后还需要进入到~/.vim/bundle/YouCompleteMe目录下安装一次才能正常使用YouCompleteMe的全部功能。执行下面命令之前确保已安装cmake

./install.py --clang-completer

如果还想支持go和node.js的自动补全可以

./install.py --clang-completer --gocode-completer --tern-completer

后期需要其他的语言补全可以上网查一下对应的安装选项然后附加在./install.py之后执行即可。

到此vim的python配置就全部完成了,且看vim的效果图

参考:

vim-python使用教程_vim配置python编程环境及YouCompleteMe的安装教程相关推荐

  1. 远程配置深度学习服务器详细教程,配置Conda+PyTorch环境

    进入实验室以后,大家就会用实验室的服务器跑一些深度学习模型.如何连接服务器,以及连接服务器后如何配置conda和PyTorch深度学习框架,在此进行详细的介绍. 首先,在连接服务器之前,需要向服务器的 ...

  2. ArduinoYun教程之配置Arduino Yun环境

    ArduinoYun教程之配置Arduino Yun环境 配置Arduino Yun 无论你使用前面介绍的哪种方式连接Arduino Yun,现在都可以配置你的Arduino Yun了.首先需要的是使 ...

  3. arduino yun 京东_ArduinoYun教程之配置Arduino Yun环境

    ArduinoYun教程之配置Arduino Yun环境 配置Arduino Yun 不管你使用前面介绍的哪种方式连接Arduino Yun.如今都能够配置你的Arduino Yun了.首先须要的是使 ...

  4. verilog 编程环境搭建1 —— Quartus 安装与配置

    verilog 编程环境搭建1 -- Quartus 安装与配置 Quartus 下载 官方下载地址:Intel® Quartus® Prime Pro Edition Design Software ...

  5. 【关于Citespace和JRE(JAVA运行环境)的详细安装教程】

    关于Citespace和JRE(JAVA运行环境)的详细安装教程 想要运行Citespace, 先搭建JRE运行环境 1. JRE运行环境 1.Java中JDK包含JRE(即占内存更多),若只用Cit ...

  6. vscode使用教程python-用VScode配置Python开发环境

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...

  7. 独家 | 手把手教你用Python 3创建用于机器学习开发的Linux虚拟机(附安装教程代码)

    原文标题:How to Create a Linux Virtual Machine For Machine Learning Development With Python 3 作者:Jason B ...

  8. 独家 | 手把手教你用Python 3创建用于机器学习开发的Linux虚拟机(附安装教程代码)...

    Linux是使用Python进行机器学习开发的极佳环境.这些工具能够被简便快捷地安装,并且您可以直接开发和运行大型模型. 在本教程中,您将了解如何使用Python创建和安装用于机器学习的Linux虚拟 ...

  9. python下载安装教程3.7.3-【最新】Python-3.7.0安装教程及下载链接

    [名称]:Python-3.7.0 [大小]:49 MB [语言]:英文 [安装环境]:Win7/Win8/Win10 软件介绍 Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大 ...

最新文章

  1. LeetCode简单题之二进制矩阵中的特殊位置
  2. 深入Java虚拟机读书笔记第五章Java虚拟机
  3. 服务器删除网站文章,如何一次性删除wordpress所有文章
  4. 基于语义嵌入模型与交易信息的智能合约自动分类系统
  5. springboot 整合mybats问题
  6. 详解协同感知数据集OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with V2V Communication
  7. Windows 10 移动版正式结束支持
  8. 其他转成十进制,十进制转其他进制
  9. 怎么把组件挂载到body上_Vue2和Vue3使用上的区别在这,耗子尾汁!
  10. 渗透测试流程信息收集
  11. 财务有必要学python吗-8年老财务:财务分析学python就能提高效率?一半人是骗子...
  12. 哈工大计算机非全日制调剂,哈尔滨工业大学计算学部2021年非全日制专业学位硕士调剂...
  13. 30 个 ElasticSearch 调优知识点,都给你整理好了!
  14. 2017年全国大学生电子设计竞赛报告(F题)调幅信号处理实验电路
  15. 计算器程序java开方运算_模拟计算器java程序
  16. 工作中遇到的小技巧 一(暂停更新)
  17. Excel删除文本中任意位置所有空格的3种方法比较
  18. 操作系统真实的虚拟内存是什么样的(一)
  19. 2020湖南省技能竞赛获奖名单_雄安新区网络安全技能竞赛举办!9人获奖!
  20. 腾讯物联TencentOS tiny上云初探

热门文章

  1. AES算法的实现与分析
  2. java转发和重定向
  3. 小马哥---高仿苹果6sp 主板型号z18机型 6582刷机拆机主板图与开机界面图
  4. Unity 移动端禁止多点触摸,禁止多点操作
  5. python实现QQ背景墙自动点赞
  6. php读取excel中文匹配_PHP根据Excel表头指定的字段,自动匹配数据
  7. 关于easyExcel中读取Excel表头的说明
  8. 2019-11-29-程序猿修养-日志应该如何写
  9. vue绑定div鼠标移入移出事件
  10. Linux访问外网(内含简单方法)