转载:简书 vim环境配置 作者 fromradio 留作备忘 如侵权请联系删除

为Python创建Vim环境

作者 fromradio

2016.08.04 11:36* 字数 1766 阅读 504评论 0喜欢 12

大部分Python使用者可能习惯使用Sublime Text 3等笔记本式的编辑器。然而实际工作环境中有可能遇到需要在无GUI环境下工作的情况,比如需要登录到虚机上进行调试等。此时vim成为了常用的编辑器选择,所以如何使得vim变得心应手成为一个重要的问题。

第一个问题是vim版本的问题,笔者工作环境中的red hat 6版本的默认vim为7.2,不能支持后面需要用到的YouCompleMe插件。因此,我们需要安装vim7.4版本。首先卸载当前vim

yum erase vim-common

这会连同相关的vim-enhance一同卸载,然后前往下载vim7.4的相关rpm:

上载到服务器后使用

yum install -y

指令分别安装三个包即可,此时vim的版本为7.4了。

vim界面.png

现在开始配置所需要的vim插件,检查vim是否支持Python,在vim环境下输入

:echo has(‘python‘) || has(‘python3‘)

如果结果为1则表明支持,否则需要检查当前Python是否正确安装。

vim拥有很强的可扩展性,因此很多开发者为方便自己的代码编写开发了很多小工具,使得vim像一个现代ide一样工作。所以,首先我们需要一个插件管理器。

Vundle

vim有一些插件管理器,这里推荐使用Vundle作为插件管理器。可以将其想象成Python中间的pip包管理器,让包的安装和更新更加简单。

使用如下命令安装:

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

这个命令将Vundle插件管理器下载到vim的bundles目录下,现在可以通过编辑~/.vimrc配置文件来扩展vim了。(一般使用用户的配置文件即可,整个vim的配置文件在目录/etc/vimrc里面)

首先创建这个文件

touch ~/.vimrc

然后编辑进行配置,以下是一些必须的配置项

" 必须项(由于简书不支持vim环境,会在注释末添加一个双引号,真实环境只需句首即可)"
set nocompatible
filetype off

" 在运行目录中添加Vundle "
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" 首先让Vundle管理Vundle,必须 "
Plugin ‘gmarik/Vundle.vim‘

" 在这里添加你需要的插件 "

call vundle#end()
filetype plugin indent on

然后保存关闭配置文件,随便用vim打开一个文件,输入指令

:PluginInstall

这是Vundle会自动下载,安装,更新所有配置文件里面的插件。

丰富vim功能

学习vim的组合件

vim最重要的一个特性就是完全抛弃了鼠标,所以有很多快捷键帮助程序员快速编写代码,所以第一步是去熟悉组合键

分割当前窗口

使用指令:sv <filename>会水平分割当前窗口,并将新文件打开在当前文件的下方,类似的,使用指令:vs <filename>会竖直分割窗口并在右侧打开新文件。

快捷键默认为Ctrl-w+Ctrl-j,k,l,h,我将其remap到没有Ctrl-w的情形

nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>

快捷键变为:

  • Ctrl-j 跳到下方窗口
  • Ctrl-k 跳到上方窗口
  • Ctrl-l 跳到右方窗口
  • Ctrl-h 跳到左方窗口

代码折叠

大多数IDE支持用户折叠函数或者类定义,首先开启这个功能

" 开启折叠功能 "
set foldmethod=indent
set foldlevel=99

折叠的快捷键为za,如果觉得不方便,可以将其对应到其他键位。

注意vim自带的折叠功能是根据缩进来的,有时候不那么好使,推荐使用插件SimpylFold

Plugin ‘tmhedberg/SimpylFold‘

Python缩进

在实现部分我们希望有两点,一是遵从PEP8标准,二是更好地自动缩进。在vimrc中添加:

au BufNewFile,BufRead *.py
        \ set tabstop=4 |
        \ set tabstop=4 |
        \ set softtabstop=4 |
        \ set shiftwidth=4 |
        \ set textwidth=79 |
        \ set expandtab |
        \ set autoindent |
        \ set fileformat=unix

这让*.py文件的缩进为标准的四个空格,单行不会超过80个字符,文件储存为unix格式,不会产生转换的问题。

针对其他文件,我们可以定义其格式,比如javascript中习惯两个空格为缩进,因此有

au BufNewFile,BufRead *.js, *.html, *.css
        \ set tabstop=2 |
        \ set softtabstop=2 |
        \ set shiftwidth=2

自动缩进功能我们使用插件indentpython.vim

Plugin ‘vim-scripts/indentpython`

标记不必要的空格

有时候我们需要避免一些额外的空格,希望编辑器能对其有一些显示,首先安装插件vim-bad-whitespace

Plugin ‘bitc/vim-bad-whitespace‘

将被认为是坏空格的地方标记出来

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

UTF8支持

这个中文编辑的时候比较重要,添加

set encoding=utf-8

语法检查和高亮

安装语法检测插件和PEP8检查工具

Plugin ‘scrooloose/syntastic‘
Plugin ‘nvie/vim-flake8‘

开启Python的代码高亮策略

let python_highlight_all=1
syntax on

颜色方案

这里我使用的是solarizedZenburn

Plugin ‘jnurmine/Zenburn‘
Plugin ‘altercation/vim-colors-solarized‘

超级搜索

ctrlP工具可以帮助用户在vim环境里面搜索几乎所有东西

Plugin ‘kien/ctrlp.vim‘

现在可以通过快捷键Ctrl-p来开启搜索,会把和你输入最相似的返回给你,其次这个工具还会搜索标记。

Git集成

插件vim-fugitive帮助用户可以在vim环境里面执行git命令,具体参见VIMcasts

总结

笔者这几天为了以后有个更好用的线上代码编辑环境测试了好久,当前的这套流程是现在使用的一套,比较好用,但是由于线上机的各种问题,最好的一个插件YouCompletMe没有安装成功,暂时放弃了,有兴趣的读者在自己的机器上面一定要安装这个插件,相当好用。

资源集合

  1. VIM Tutor
  2. VIMcasts
  3. Official Vim docs
  4. Open Vim
  5. Learn Vimscript the Hard Way
时间: 2024-10-12 11:04:10

转载:简书 vim环境配置 作者 fromradio 留作备忘 如侵权请联系删除的相关文章

【vim环境配置】详细实录

[写在前面] 以下的所有内容主要参照: https://github.com/yangyangwithgnu/use_vim_as_ide . 原blog作者写的非常用心,建议大家都去看看.(个人觉得通过这个blog大大提升了学习vim配置环境的效率,因此给作者捐了顿外卖的钱)这个随笔就是学习上述blog内容的辅助记录,并不能代替学习原著:把学习过程中遇到的一些坑列出来,初步做一下知识沉淀. 以前我个人的学习理念是“重剑无锋.大巧不工”,瞧不上这些快捷键之类的“奇技淫巧”.但是,打磨完了vim的

【vim环境配置】解决ubuntu上 由YouCompleteMe插件配置不当引起的 自动补全失效的问题

背景: 由于不可抗拒的原因,学习环境由之前centos的一台机器上,变成了ubuntu的一台机器上.因此,需要在新的ubuntu的机器上再配置一次vim环境.算起来这已经是第三次配置vim环境了(mac上配过一次,centos上配过一次,ubuntu上再配置一次).这次配置大体上比较顺利,还是沿用之前日志用的方法(http://www.cnblogs.com/xbf9xbf/p/4860484.html),用pathogen管理插件:而且这次ubuntu机器能联网,比之前在centos上无网的情

Python 2.7_发送简书关注的专题作者最新一篇文章及连接到邮件_20161218

最近看简书文章关注了几个专题作者,写的文章都不错,对爬虫和数据分析都写的挺好,因此想到能不能获取最新的文章推送到Ipad网易邮箱大师.邮件发送代码封装成一个函数,从廖雪峰大神那里学的  http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832745198026a685614e7462fb57dbf733cc9f3ad000 网页源码获取和解析获取文章标题和url依然是用

[转载] 高效 MacBook 工作环境配置

原文: http://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=208231200&idx=1&sn=8a76ddc56c1fe8e627fddf67c3a1b338&scene=1&srcid=0920lzISV8EmrHMNPUrPPgN3&key=dffc561732c226517f07ceeed1b09b0a3a872f0dce2376a4249849acf7a328eecd984eaf6c9ba5c

[转载] 高效MacBook工作环境配置

原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手MacBook和觉得MacBook比较难用的同学参考. 1. 硬件提升 笔记本电脑的特点是携带方便,缺点是屏幕太小,因此你首先需要再申请领用一个外接显示器,多一个屏幕会大大减少你切换应用程序的次数,显著提升你的工作效率,别忘了同时申请一个Mini DP转VGA的转接头用于连接显示器.为了配合多显示器,

(转载)Go语言开发环境配置

一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014年,Go项目拥有了上百的核心贡献者,其生态圈中拥有了数不尽的第三方库和工具(https://godoc.org/),更有很多大公司开始或迁移到go语言,一些重量级的开源云项目,诸如Docker和Kubernetes 都是用Go语言实现的,一些运作基础设置的公司,诸如Google.CloudFlare

Vim环境配置和教程

Vim目录说明,plugin和fplugin的区别 http://www.ajucs.com/archives/478.html Vim在Windows配置python http://blog.csdn.net/zhuxiaoyang2000/article/details/6665729 教程 保存和退出教程 http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html Vim保存是有自动备份的 http://zhidao.baidu.com/lin

PHP与apache环境配置

最近想了解一些网页后台的东西,在看Luke Welling,laura Thomson的<php与mysql web开发>,书中环境配置的部分很庞杂,网上的各种教程也很乱,搞了一下午终于成功了!在这里记录一下. 一.简介 首先介绍一下PHP:PHP是一种服务器端脚本语言,专门为web设计,在一个html页面中,可以嵌入PHP代码,这些代码会在每次页面被访问时执行.实现了动态网页的执行.你可能会问,javascript不也能将html的静态网页变成动态交互吗?两者的作用不同,php在每次刷新网页

从零开始学爬虫(一)------环境配置

前言: 本系列文章是对爬虫的简单介绍,以及教你如何用简单的方法爬取网站上的内容. 需要阅读者对html语言及python语言有基本的了解. (本系列文章也是我在学习爬虫过程中的学习笔记,随着学习的深入会不断地更新) 爬虫简介: 网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分. 网络爬虫先获取某网站的源代码,通过源码解析(如<a><p>标签等)来获得想要的内容. 环境配置: ubuntu系统(安装方法请自行百度.由于在ubuntu系统下对以下所需的软件安装及运行比wi