把vim配置成顺手的python轻量级IDE(1)
admin
2023-07-31 00:46:48
0

网上已经有很多很好的vim使用和配置教程。但每个人都有自己的习惯,因此教程仅作参考,只有在使用过程中才能体会到具体的问题,然后解决问题才能把vim调教的顺手。本文不再赘述vim的操作,直接从配置开始。

一、配置文件

  • 基础配置

    vim的所有配置都是在 ~/.vimrc 这个文件中完成。默认是没有的需要自己新建:

    123 cd ~touch .vimrcvim .vimrc

    以下是我个人的.vimrc文件的基础配置部分,双引号内为注释内容:

    1234567891011121314151617181920212223242526272829303132333435363738 \”去掉vi的一致性\”set nocompatible\”显示行号\”set number\” 隐藏滚动条\”    set guioptions-=r set guioptions-=Lset guioptions-=b\”隐藏顶部标签栏\”set showtabline=0\”设置字体\”set guifont=Monaco:h13         syntax on    \”开启语法高亮\”let g:solarized_termcolors=256    \”solarized主题设置在终端下的设置\”set background=dark        \”设置背景色\”colorscheme solarizedset nowrap    \”设置不折行\”set fileformat=unix    \”设置以unix的格式保存文件\”set cindent        \”设置C样式的缩进格式\”set tabstop=4    \”设置table长度\”set shiftwidth=4        \”同上\”set showmatch    \”显示匹配的括号\”set scrolloff=5        \”距离顶部和底部5行\”set laststatus=2    \”命令行为两行\”set fenc=utf8      \”文件编码\”set backspace=2set mouse=a        \”启用鼠标\”set selection=exclusiveset selectmode=mouse,keyset matchtime=5set ignorecase        \”忽略大小写\”set incsearchset hlsearch        \”高亮搜索项\”set noexpandtab        \”不允许扩展table\”set whichwrap+=,h,lset autoreadset cursorline        \”突出显示当前行\”set cursorcolumn        \”突出显示当前列\”

  • 一键执行python代码

    其他常用的编辑器都有很方便的一键执行的功能或插件,例如Sublime Text的command+b、Atom的script插件。vim实现这个功能只需要在.vimrc中添加如下代码就可以实现F5一键执行python代码,而且由于是调用了vim的quickfix功能,因此还支持如果出现错误,跳转到错误行。

    12345678910111213 \”按F5运行python\”map <F5> :Autopep8<CR> :w<CR> :call RunPython()<CR>function RunPython()  let mp = &makeprg  let ef = &errorformat  let exeFile = expand(\”%:t\”)  setlocal makeprg=python\\ u  set efm=%C\\ %.%#,%A\\ \\ File\\ \\\”%f\\\”\\\\,\\ line\\ %l%.%#,%Z%[%^\\ ]%\\\\@=%m  silent make %  copen  let &makeprg = mp  let &errorformat = efendfunction

    但是这个一键执行有一个小问题,由于quickfix的原因,不支持标准输入input()和raw_input(),只要代码中有这两个函数,100%卡死,目前这个问题貌似还无解。如果不用quickfix就可以支持输入,但是在终端中使用的话就是跳回终端输入和输出;使用macvim的话又会出现输出数据很多时就无法查看全部。由于我在写python是标准输入用的较少,就决定放使用quickfix来保证实用和美观。

二、插件

先上我的插件目录,本文只着重介绍Vundle和YouCompleteMe两个插件因为这两个插件的安装过程比较复杂一些,而其他插件的安装几乎可以算是傻瓜式的:

12345678 Plugin \’VundleVim/Vundle.vim\’Plugin \’Valloric/YouCompleteMe\’Plugin \’Lokaltog/vim-powerline\’Plugin \’scrooloose/nerdtree\’Plugin \’Yggdroot/indentLine\’Plugin \’jiangmiao/auto-pairs\’Plugin \’tell-k/vim-autopep8\’Plugin \’scrooloose/nerdcommenter\’

Vundle

杀手级插件。这是唯一一个需要手动安装的插件。有了这个,安装其他插件就方便很多。

  • 1、安装
    首先需要从github上得到项目的源码,在终端下的命令如下(请自备git):

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



    若提醒目录不存在请先自行新建目录:

    1234 cd ~mkdir .vimcd .vimmkdir bundle



    然后需要在.vimrc文件中添加一些配置才能生效:

    1234567 filetype offset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()Plugin \’VundleVim/Vundle.vim\’Plugin \’你的插件\’call vundle#end()filetype plugin indent on

  • 2、使用
    Vundle安装插件的方法非常简单,只需要两步。先在.vimrc文件中添加Plugin命令:

    12 “这是安装Github上的插件”Plugin \’Lokaltog/vim-powerline\’

    下面是安装在vim-script上的插件的方法,引号里为插件名称,其他插件安装方法请自行查看项目主页:

    1 Plugin \’L9\’

    在添加完.vimrc的的配置后,:wq保存并退出vim,重启vim并输入下面的命令后,vim就会自动下载并安装插件了

    1 :PluginInstall

    当看到命令行出现Done!就代表所有插件安装完成啦!

YouCompleteMe

杀手级插件。vim上的自动补全神器,能够提供类似IDE的自动补全体验,还能和Syntastic配合提供实时语法检查。YouCompleteMe与其他插件不同的地方在于不仅需要安装,还需要自己手动编译,而且还需要在.vimrc中配置。

盗一张官网的效果图

YouCompleteMe支持的语言有:

C、Objectiv-c、C#、C++、Objectiv-C++、Php、Javascript、Typescript、python、Go、Rust

  • 安装只需要一条命令:

    1 Plugin \’Valloric/YouCompleteMe\’

  • 编译的命令:

    12 cd ~/.vim/bundle/YouCompleteMe./install.py clangcompleter

    参数 –clang-completer是为了加上C系列语言的自动补全,如果不需要可以不加,它同时还支持其他语言的补全,详细请看官方文档。

  • YouCompleteMe涉及到的配置选项有很多,笔者也没有完全了解,此外,个人觉得Syntactic的提示略丑陋,因此没有安装。此处指列出笔者在使用的,详细请查看官方文档:

    1234567891011121314151617181920212223242526272829 \”默认配置文件路径\”let g:ycm_global_ycm_extra_conf = \’~/.ycm_extra_conf.py\’\”打开vim时不再询问是否加载ycm_extra_conf.py配置\”let g:ycm_confirm_extra_conf=0set completeopt=longest

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...