1、安装 python

Ubuntu 18.04 默认安装 python。

2、安装 VIM

Ubuntu 18.04 Desktop初始安装自带了vi,未带 vim 需要安装,已安装的略过。

sudo apt install vim

3、配置 vim

编辑 ~/.vimrc 文件,填入以下内容:

" 开启文件类型侦测filetype on" 根据侦测到的不同类型加载对应的插件filetype plugin on" 开启语法高亮功能syntax enable" 允许用指定语法高亮配色方案替换默认方案syntax on" 开启实时搜索功能set incsearch" 关闭兼容模式(去掉vi一致性, 可以使用更多vim功能)set nocompatible" vim 自身命令行模式智能补全set wildmenu" 总是显示状态栏set laststatus=2" 显示光标当前位置set ruler" 开启行号显示set number" 高亮显示当前行/列"set cursorline"set cursorcolumn"增量式搜索set incsearch " 高亮显示搜索结果set hlsearch"文件自动检测外部更改set autoread"tab缩进"制表符占4个空格set tabstop=4"编辑模式输入 Tab 时,插入字符数(可能是 Tab 和空格的混合宽度,"比如 "tabstop=4,softtabstop=10,那么插入 Tab 时会将光标移动 10 个字符,"可能会是两个 tab 加两个空格,这对 backspace 也有效。)set softtabstop=4"默认缩进4个空格大小set shiftwidth=4"用空格键替换制表符"set expandtab"在行首输入 Tab 时插入宽度为 shiftwidth 的空白,"在其他地方按 tabstop 和 softtabstop 处理"解决 shiftwidth 和 tabstop 不等时的问题set smarttab"c文件自动缩进set cindent"自动对齐set autoindent""智能缩进set smartindent"配色方案 colorscheme elflord"浅色显示当前行"autocmd InsertLeave * se nocul"用浅色高亮当前行"autocmd InsertEnter * se culau BufNewFile,BufRead *.pyset tabstop=4 | set softtabstop=4 | set shiftwidth=4 | set textwidth=79 | set expandtab | set autoindent | set fileformat=unix "au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match Error /s+$/"设置中文编码set fileencodings=utf-8,ucs-bom,gb2312,gbk,gb18030,cp936set termencoding=utf-8set fileformats=unixset encoding=utf-8

4、安装 vim 插件管理器 Vundle

需要安装git,如果没安装的要安装。

vim 折叠 python 代码 vim python-mode_vim 折叠 python 代码

vim 折叠 python 代码 vim python-mode_缩进_02

5、配置 vundle

在~/.vimrc 中添加如下内容

set nocompatible " 去除VI一致性,必须filetype off " 必须 " 设置包括vundle和初始化相关的runtime path set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " 另一种选择, 指定一个vundle安装插件的路径 "call vundle#begin('~/some/path/here') " 让vundle管理插件版本,必须 Plugin 'VundleVim/Vundle.vim' " 以下范例用来支持不同格式的插件安装. " 请将安装插件的命令放在vundle#begin和vundle#end之间. " 你的所有插件需要在下面这行之前 call vundle#end() " 必须 filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本 " 忽视插件改变缩进,可以使用以下替代: "filetype plugin on " 简要帮助文档 " :PluginList - 列出所有已配置的插件 " :PluginInstall - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate " :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存 " :PluginClean - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件 " " 查阅 :h vundle 获取更多细节和wiki以及FAQ " 将你自己对非插件片段放在这行之后

6、使用 vundle 安装插件方法

把要安装的插件以合法格式添加到 ~/.vimrc 文件中,要装的插件命令放在vundle#begin和vundle#end之间。

然后使用 : :PluginInstall 命令安装插件

.vimrc 中具体安装插件的命令格式如下:

Github上的插件格式为: Plugin '用户名/插件仓库名',如:

Plugin 'tpope/vim-fugitive'

vim 折叠 python 代码 vim python-mode_vim 折叠 python 代码_03

插件在仓库的子目录中.正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下

Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}

如:安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突

Plugin 'ascenator/L9', {'name': 'newL9'}

7、使用 vundle 清除插件

在~/.vimrc 文件中清除对应的 Plugin 项

在 vim 中执行 :PluginClean

8、安装自动补全插件

需要 cmake、g++、make python3-devel (build-essential cmake python3-dev)

在 ~/.vimrc 中添加:(添加到 vundle#begin和vundle#end之间.)

Plugin 'Valloric/YouCompleteMe'

vim 中执行: :PluginInstall

:PluginInstall

时间有点长,等待下载完成后,编译 YouCompleteMe。

命令行执行:其中 --clang-completer 可选。

(如果系统安装两个Python版本,可以修改install.py使用的Python版本)

cd ~/.vim/bundle/YouCompleteMe

./install.py --clang-completer

编译时间也较长,请耐心等待。

vim 折叠 python 代码 vim python-mode_ubuntu vim python_04

在~/.vimrc 文件中加入如下配置

" YouCompleteMe配置let g:SimpylFold_docstring_preview=1let g:ycm_min_num_of_chars_for_completion=2 "开始补全的字符数"let g:ycm_python_binary_path='python3' "jedi模块所在python解释器路径"let g:ycm_seed_identifiers_with_syntax=1 "开启使用语言的一些关键字查询"let g:ycm_autoclose_preview_window_after_completion=1 "补全后自动关闭预览窗>

vim 折叠 python 代码 vim python-mode_python_05

9、安装 Python 自动补全插件 jedi-vim

安装 jedi-vim 插件实现Python自动补全

更新 jedi

pip3 install jedi

安装jedi-vim

vim 折叠 python 代码 vim python-mode_缩进_06

添加如下语句到~/.vimrc

Plugin 'davidhalter/jedi-vim'

vim 中执行 :PluginInstall

10、安装python pep8自动格式化插件

首先安装autopep8:

pip3 install autopep8或者pip install autopep8

安装 vim-autopep8 插件

~/.vimrc 在 添加:

Plugin 'tell-k/vim-autopep8'

vim 中执行 :PluginInstall

11、安装 python flake8-vim 插件

pip3 install flake8

在 ~/.vimrc 中添加:

Plugin 'andviro/flake8-vim'let python_highlight_all=1

vim 中执行 :PluginInstall

12、安装 vimpdb

pip3 install vimpdb

在 ~/.vimrc 中添加

Plugin 'gotcha/vimpdb'

13、安装 bufexplorer 插件

vim-scripts/bufexplorer.vim

下载 bufexplorer.zip

解压 bufexplorer.zip

复制 bufexplorer.vim 到 /usr/share/vim/vim80/plugin

复制 bufexplorer.txt 到 /usr/share/vim/vim80/doc

vim 折叠 python 代码 vim python-mode_ubuntu vim python_07

14、安装 ctags、cscope 和 taglist 插件

安装 ctags 和 cscope

sudo apt install ctags cscope````taglist 插件在 ~/.vimrc 中添加:```vimPlugin 'vim-scripts/taglist.vim'

vim 中执行: :PluginInstall

:PluginInstall

15、安装插件

编辑 ~/.vimrc 文件,在vundle#begin和vundle#end之间,加入如下内容:

"自动缩进插件Plugin 'vim-scripts/indentpython.vim'"PEP8 缩进Plugin 'Vimjas/vim-python-pep8-indent'"缩进指示线 indentLinePlugin 'Yggdroot/indentLine'"自动补全括号,引号等:auto-pairsPlugin 'jiangmiao/auto-pairs'"git 集成插件 vim-fugitivePlugin 'tpope/vim-fugitive'"目录树(文件管理)Plugin 'scrooloose/nerdtree'"状态栏Plugin 'vim-airline/vim-airline'"ctrlP 模糊查找Plugin 'kien/ctrlp.vim'"每次保存文件时Vim都会检查代码的语法Plugin 'scrooloose/syntastic'"语法高亮,文档查阅,语法检查,自动修正错误和重构等功能Plugin 'python-mode/python-mode'let g:pymode_python = 'python3'" 插入模式、正常模式输入法自动切换插件Plugin 'lilydjwg/fcitx.vim'"python 自动补全插件(使用Tab)Plugin 'rkulla/pydiction'let g:pydiction_location = '~/.vim/bundle/pydiction/complete-dict'"vim-vebugger 调试插件Plugin 'idanarye/vim-vebugger'

在 vim 中使用 :PluginInstall

或者命令行使用 vim +PluginInstall +qall 安装以上插件。

16、安装 Markdown 插件

安装依赖软件和库

pip3 install markdownsudo npm -g install instant-markdown-dsudo npm -g install mdmath"Markdown 插件(语法高亮)Plugin 'gabrielelana/vim-markdown'"为 Markdown 生成 TOC 的 Vim 插件Plugin 'mzlogin/vim-markdown-toc'"Markdown 公式支持Plugin 'iamcco/mathjax-support-for-mkdp'"Markdown 预览 依赖 markdownPlugin 'iamcco/markdown-preview.vim'"pandoc vim 插件Plugin 'vim-pandoc/vim-pandoc'"实时预览的插件 vim-instant-markdown 需要 Node.js 和 instant-makrdown-dPlugin 'suan/vim-instant-markdown'

在 vim 中使用 :PluginInstall

17、目录插件:vim-makrdown-toc 用法记录:

插件 vim-markdown-toc 使用方法

生成目录

将光标移动到想在后面插入目录的那一行,然后运行下面的某个命令:

:GenTocGFM生成 GFM 链接风格的目录。

适用于 GitHub 仓库里的 Markdown 文件,比如 README.md,也适用用于生成 GitBook 的 Markdown 文件。

:GenTocRedcarpet生成 Redcarpet 链接风格的目录。

适用于使用 Redcarpet 作为 Markdown 引擎的 Jekyll 项目或其它地方。

:GenTocGitLab生成 GitLab link 风格的目录.

:GenTocMarked生成 iamcco/markdown-preview.vim 风格的目录

更新已存在的目录通常不需要手动做这件事,保存文件时会自动更新已经存在的目录。

除非是在配置里关闭了保存时自动更新,并且维持插入目录 前后的 ,此时可使用。

:UpdateToc 命令手动更新。

删除目录:RemoveToc 命令可以帮你删除本插件生成的目录