相信大家多次被推荐用vim作为编辑程序,知道vim编辑有很多优点,但是vim初始界面太原始了,安装了之后只能用来编辑,如果要运行就需要退出去运行,麻烦死了。回想用现成的IDE是多么的舒服。但是为了更好的学习,所以要对vim进行设置、安装一系列插件满足我们的需求。
作者 | 陈颖/言有三
编辑 | 陈颖/言有三
在群里言有三老师多次推荐用vim作为编辑程序,作为经验丰富的AI程序员,我想一定有其道理,所以决定好好学习vim。知道vim编辑有很多优点,大家可以在网上搜,我认为最重要的一点就是看起来很牛啊~。但是vim初始界面太原始了,看得我想哭,安装了之后只能用来编辑,如果要运行就需要退出去,通过Python test.py来运行,麻烦死了。回想用现成的IDE是多么的舒服。来来来,看一看界面有多简单。
切换normal模式和插入模式还好,但是全部代码靠手打,很容易出错,所以智能补全、运行和断点调试总不能没有。因此我们要对vim进行设置安装一系列插件满足我们的需求。
按照以前的经验在网上搜了一大堆的配置方法,总想着直接一下就配置好,直接拷贝粘贴,结果有的插件根本没有作用。想一键运行程序,结果根本不行,不能用,作为小白,完全不知道问题在哪,花了大概两三天都没配成功。按照以前的习惯,就放弃了,换了个别人弄的现成的叫Spacevim,这个也还挺有名的。于是按照网上搜的方法配置也超麻烦,快捷键也是自己不习惯的。于是又放弃了…… 这两天又重新安装了ubuntu、anaconda、tensorflow、vim,最后还是决定要再挑战一次,于是将自己安装过程分享。
本文默认大家理解了vim的normal模式和插入模式、基本的打开保存文件方法、github安装完成。
下面主要内容包括:
1、vim安装及基本设置
2、插件安装及设置
3、快捷键设置
下面内容包括:
1、vim安装
2、查看对python支持
3、基本设置
2.1 vim安装
sudo apt-get install vim-gtk
2.2 查看对python支持
vim --version | grep python
红色的+python3说明vim支持python3,-号表明不支持。如果没有加入Python支持,如果使用YouCompleteMe(补全插件)就会出现警告。
2.3 基本设置
vim ~/.vimrc
打开文件(没有的这个文件话,会自动新建),添加如下代码:(一定要看每一行的意思)
#基本设置 filetype on "开启文件类型侦测 filetype indent on "适应不同语言的智能缩进 syntax enable "开启语法高亮功能 syntax on "允许用定制语法高亮配色方案替换默认方案 "说明:以上这个我也不知道有没有用,因为看不出来 #显示设置 set laststatus=2 "总是显示状态栏 set ruler "显示光标位置 set number "显示行号 set cursorline "高亮显示当前行 “说明:可以单个设置,保存后,再打开看效果,很有成就感 #编辑设置 set expandtab "扩展制表符号为空格 set tabstop=4 "制表符占空格数 set softtabstop=4 "将连续数量的空格视为一个制表符 set shiftwidth=4 "自动缩进所使用的空白数 set textwidth=79 "编辑器每行字符数 set autoindent "打开自动缩进 set wildmenu "vim命令自动补全 按键ESC,进入normal模式下输入命令 :wq 保存退出vim vim ~/.vimrc 打开
基础设置后的界面如下:
本小节内容包括:
1、安装Vundle(管理插件的插件)
2、安装Solarized(主题方案的插件)
3、安装vim-powerline(状态栏主题插件)
4、安装nerdcommenter(注释的插件)、auto-pairs(自动配对括号插件)
5、安装YouCompleteMe(自动补全插件)
6、安装nerdtree(树形目录插件)
7、安装indentLine(自动缩进指示)
3.1 安装Vundle(管理插件的插件)
用github下载Vundle:
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Vundle是用来管理插件的插件,用github下载到
~/.vim/bundle/Vundle.vim文件夹下。
注:安装前需要提前安装github,参考言有三老师公众号白身境
在/home根目录下,通过(Ctrl+h)显示隐藏文件:
vim ~/.vimrc
打开,输入以下代码:
"**************************************************** set nocompatible "关闭兼容模式 filetype off "文件类型侦测关闭 "设置运行时路径,包括vundle和初始化 set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() "需要配置的插件都放在begin和end中间 Plugin 'VundleVim/Vundle.vim' call vundle#end() "**************************************************** 说明:Plugin 后插件的名称如'VundleVim/Vundle.vim'(作者+插件名),可从https://github.com/VundleVim/Vundle.vim查看说明,以下插件可以同样方法查看。 按键ESC,进入normal模式下输入命令 :wq 保存退出vim vim ~/.vimrc 打开 :PluginInstall 安装插件(如下图界面) :exit (看到左下角状态栏下Done)退出安装插件 :wq 保存退出vim vim ~/.vimrc 打开文件
3.2 安装Solarized(主题方案的插件)
在.vimrc文件内添加如下红色框代码: Plugin 'vim-scripts/Solarized.git' "主题方案插件 set background=dark colorscheme solarized "素雅 按键ESC,进入normal模式下输入命令 :wq 保存退出vim vim ~/.vimrc 打开 :PluginInstall 安装插件 :exit (看到左下角状态栏下Done)退出安装插件 :wq 保存退出vim vim ~/.vimrc 打开文件(打开之后的效果如下图)
3.3 安装vim-powerline(状态栏主题插件)
在.vimrc文件内添加如下代码,添加插件,设置插件
Plugin 'Lokaltog/vim-powerline' "状态栏主题 let g:Powerline_colorscheme='solarized256' "设置状态栏主题风格
如上操作,即可看见如下效果(插入模式为白蓝色,normal模式为绿灰)
3.4 安装nerdcommenter)、auto-pairs
nerdcommenter是一款注释插件,auto-pairs是一款自动配对括号插件。
输入以下代码,如上操作,安装插件。
Plugin 'scrooloose/nerdcommenter' "多行注释 Plugin 'jiangmiao/auto-pairs' "括号、引号自动补全
不用设置,可以自己尝试一下功能。
3.5 安装YouCompleteMe自动补全插件
1、安装CMake:
sudo apt-get install build-essential cmake
2、安装python-dev:
sudo apt-get install python-dev python3-dev
说明:linux发行版通常会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el)包. (pkg=package)
python-dev或者其他*.devel软件一般都是C语言编写的一些头文件或cpp文件,往往是其他模块或这我们自己写的模块在编译时,需要依赖这些*-devel软件包。
安装使用YouCompleteMe库需要python-dev
1和2都是为了完成YouCompleteMe的安装
3、.vimrc文件添加插件YouCompleteMe:
输入以下代码:
Plugin 'Villoric/YouCompleteMe'
按如上操作安装插件
因为YouCompleteMe安装很慢,需要自己下载后再进行安装。
输入”:exit”,退出插件管理
4、先下载YouCompleteMe再配置安装
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe cd ~/.vim/bundle/YouCompleteMe git submodule update --init –recursive
说明:
将YouCompleteMe下载到bundle文件下
文件定位到YouCompleteMe文件夹下
添加YouCompleteMe附加文件
这样下载完成后,再执行命令:PluginInstall安装(等待的时间其实也挺长的,多等会)
5、切换到YouCompleteMe目录, 利用Anaconda中的python3执行python3 ./install.py文件
如下图所示,默认状态下的python3为Anaconda的python3
如果需要vim自动补齐Anaconda自带环境下的site-packages则在.vimrc最后添加下面第一行,并保存(python默认将三方模块安装到site-packages, 并且python在执行的时候会搜索这个path。)
如果需要vim自动补齐Anaconda虚拟环境envs(tensorflow为其中的虚拟环境)下的site-packages则在.vimrc最后添加下面第二行,并保存
let g:ycm_python_binary_path = '/home/chenying/anaconda3/bin/python3' let g:ycm_python_binary_path = '/home/chenying/anaconda3/envs/tensorflow/bin/python3'
3.6 安装nerdtree(树形目录插件)
.vimrc文件中添加如下代码安装、设置:
Plugin 'scrooloose/nerdtree' map <F2> :NERDTreeToggle<CR> let NERDTreeWinSize=25
如上边的操作,安装完成插件。
基本操作:
快捷键F2打开关闭目录树。
通过键盘上下移动,按enter键可以展开目录、打开文件
ctrl+w 左右窗口(目录窗口和文件窗口)切换
:q 回车,关闭光标所在窗口
3.7 安装indentLine(自动缩进指示)
vimrc文件中添加如下代码安装、设置:
Plugin 'Yggdroot/indentLine' let g:indentLine_char='┆' "缩进指示线符 let g:indentLine_enabled = 1 "开启缩进指示
如上边的操作,安装完成插件。效果如下:
输入以下代码就能F5一键运行程序啦~