如何将vim改造为python的IDE
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者: Jeffrey Wang
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef
基础操作
VIM 的三种模式,命令行模式、插入模式、末行模式 就不在此赘述了
常用快捷键
命令行模式:
移动光标:
向下左右箭头可以移动光标;
将光标移动到行尾:$;
将光标移动到行头:^;
将光标移动到页尾:shift+g;
将光标移动到页头:1+shift+g;
移动到目标行:n+shift+g;
快速向左右移动光标:ctrl+←/→键;
向左或者向右移动n个字符:n+←/→键;
-----------------------
删除:
删除光标所在行:dd;
删除光标所在行及之后的n-1行:dnd;
删除一个字母:x (相当于是del);
删除一个字母:X (相当于是backspace);
删除一个词:dw;(最好是放在单词的首字母处)
撤销上一步:u;
----------------------
移动单词:
向右移动一个单词:w;
向左移动一个单词:b;
----------------------
复制粘贴:
复制当前光标所在行:yy;
箭头移动到目的行粘贴:p;
复制当前光标所在行及之后的n-1行:yny;
复制一个词:yw;
-----------------------
剪切:
剪切当前光标所在位置到行尾: d+shift+4/d+$;
剪切当前光标所在位置到行首:d+shift+6/d+^;
编辑模式:
在命令行模式下进入编辑模式,需要按下i、I、a、A、o、O、r、R这些才能进入编辑模式,一般直接按下i就行;
i是在当前光标前编辑,a是在当前光标后进行编辑,o是在当前光标的下一行进行编辑;
退出编辑模式进入命令行模式需要按下esc键。
末行模式:
命令行模式进入末行模式的方式:
1.:
2./ 查找,/+被查找的单词,n是下一个,shift+n是指上一个;
3.? 查找,?+被查找的单词,n是上一个,shift+n是下一个;
存盘指令:w;
另存指令:w 文件名;
退出指令:q;
保存并退出指令:wq;
强制退出不存盘指令:q!;
替换:%s/old/new/g;
显示行号:set nu;
总结:
--------- 按键盘i键-------->输入模式 (按Esc键回到命令模式)
|
命令模式 |
-----------输入 ":" ------> 末行模式 (按Esc键回到命令模式)
三种模式的主要功能:
命令模式:复制,粘贴,删除、移动光标、查找
编辑模式:编辑文本
末行模式:存盘、退出、替换、查找
自动缩进
Python对缩进比较严格,需要调整 ~/.vimrc 中的配置
au BufNewFile,BufRead *.py
\ set tabstop=4 |
\ set softtabstop=4 |
\ set shiftwidth=4 |
\ set textwidth=79 |
\ set expandtab |
\ set autoindent |
\ set fileformat=unix |
调整后效果如下:

粘贴代码混乱
比如将如下 python 代码在 vim 插入模式下,粘贴进去
a = 1
if a > 1:
print('> 1')
else:
if a = 1:
print('= 1')
else:
print('< 1')
如果不做任何设置,粘贴进去是这样的,发现代码错乱

解决方法: 使用 :set paste 进入粘贴模式, :set nopaste 退出粘贴模式
粘贴模式下,粘贴效果如下

代码折叠
编辑 ~/.vimrc,新增如下:
" Enable folding
set foldmethod=indent
set foldlevel=99
" 通过空格键快速打开和关闭折叠
nnoremap <space> za
配置完毕后,按空格即可折叠代码
插件篇
vim 默认的功能最多自带关键字颜色区分、自动补全等,想要一些强大的功能就需要强大的插件来完成。
如何管理插件
可以使用强大的 vundle 管理
安装 vundle
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
正克隆到 '/home/wang/.vim/bundle/Vundle.vim'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 3140 (delta 0), reused 0 (delta 0), pack-reused 3139
接收对象中: 100% (3140/3140), 935.39 KiB | 420.00 KiB/s, 完成.
处理 delta 中: 100% (1106/1106), 完成.
然后在 ~/.vimrc 中加入此配置
" 在此设置运行时路径
set rtp+=~/.vim/bundle/Vundle.vim
" vundle初始化
call vundle#begin()
" 或者传递一个 Vundle 安装插件的路径
"call vundle#begin('~/some/path/here')
" 让 Vundle 管理 Vundle, 必须
Plugin 'VundleVim/Vundle.vim'
" 保持 Plugin 命令 在 vundle#begin 和 end 之间
"每个插件都应该在这一行之前
call vundle#end() " 这是必需的
filetype plugin indent on " 这是必需的
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
安装插件
打开vim输入:BundleInstall。 :BundleInstall命令会安装在.vimrc文件中列出来的所有插件。 :BundleInstall <plugin-name> 安装指定的插件。
清理未用插件
打开vim输入:BundleClean 从命令行安装vim +:BundleClean。
搜索插件
打开vim输入:BundleSearch <text-list> 从命令行搜索vim +:BundleSearch <text-list>。
NERDTree 目录树 在 vundle 的插件范围内,新增如下信息
" NERDTree 插件
Plugin 'git://git.wincent.com/command-t.git'
Plugin 'git://github.com/scrooloose/nerdtree.git'
Plugin 'git://github.com/Xuyuanp/nerdtree-git-plugin.git'
编辑 ~/.vimrc 新增如下:
map <F4> :NERDTreeToggle<CR>
然后在 vim 中执行 :PluginInstall,进入如下界面,等待安装完毕即可

所有操作完毕后,按 F4 即可在目录树和代码区切换

编辑模式运行 python
~/.vimrc 设置一下快捷键即可
" Python 的运行
map <F7> :call PRUN()<CR>
func! PRUN()
exec "w"
exec "!clear"
exec "!time python3 %"
endfunc
按下 F7 之后,得到运行结果

.
如何将vim改造为python的IDE的更多相关文章
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)(转)
1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scr ...
- 将Vim改造为强大的IDE
1.安装Vim和Vim基本插件 首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可: lingd@ubuntu:~/arm$sudo apt-get install vim vim-s ...
- 【转】将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
原文网址:http://blog.csdn.net/bokee/article/details/6633193 工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话.. ...
- ctagst简单应用,将Vim改造:Ctags,Taglist,Cscope,OmniCppComplete,SuperTab,Winmanager,NERDTree,MiniBufExplorer,vimrc
vim + ctags $ ctags #给同一个目录下的所有文件建立tags 这时在tags文件所在的目录下打开源文件阅读,vim就会自动调用tags文件.如果tags文件不在当前目录下,能在命令模 ...
- Ubuntu下将vim配置为Python IDE(转)
工欲善其事,必先利其器. 配置好了Django的环境,该把vim好好配置一下当做python的IDE来用. 在Windows下用惯了各种现成的工具,转到Linux下,一下没了头绪……好歹google出 ...
- Use Vim as a Python IDE
Use Vim as a Python IDE I love vim and often use it to write Python code. Here are some useful plugi ...
- Vim配置(python版)
由于马上将用到django框架,需要有一个好的ide来coding,之前做C的开发时候体会到了vim的强大,所以编写python也决定采用vim. PS:除了vim,一般浏览代码多用atom和subl ...
- 将VIM打造成强大的IDE
转载自:所需即所获:像 IDE 一样使用 vim 如侵犯您的版权,请联系:2378264731@qq.com --------------------------------------------- ...
- 排名前三——python 开源 IDE
写在前面的一些P话: Python无处不在 ,似乎它支持从主要网站到桌面实用程序到企业软件的所有功能. Python已经被用来编写流行的软件项目,如dnf / yum,OpenStack,OpenSh ...
随机推荐
- JavaScript 引擎 V8 执行流程概述
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/t__Jqzg1rbTlsCHXKMwh6A作者:赖勇高 本文主要讲解的是V8的技术,是V8的入 ...
- js 生成32位随机数,可用于微信支付流水号(前端生成)
$(function () { /*生成32位随机流水号*/ /*默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1*/ var $chars = 'ABCDEFGHJKMNPQRSTWXYZ ...
- maven工程指定web资源包,创建jsp文件
进入项目的project structure. 选择web. 在右侧增加web资源包路径
- springaop\ cglib\ AspectJ
元编程 vs 动态代理 vs isa代理 springaop的底层实现有两种,一种是jdk的动态代理,另一种是cglib,springaop没有用到aspectj,只是借鉴了它并添加了aspectj风 ...
- Net Core的API文档工具Swagger
一.安装swagger 新建一个net core的api项目,通过NuGet安装Swashbuckle.AspNetCore. 二.注册swagger服务 在Startup.cs中注册Swagger生 ...
- SpringCloud的入门学习之概念理解、Eureka服务注册与发现入门
1.微服务与微服务架构.微服务概念如下所示: 答:微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题.提供落地对应服务的一个服务应用,狭意的看,可以看作Eclipse里面的一个个微服务 ...
- 使用vue在开发中的一些小问题--使用vue-cli起的服务器无法在局域网访问
2.使用vue-cli起的服务器无法在局域网访问 这个很简单,在package.json文件中的js启动项配置中增加--host 0.0.0.0 注意是--host而不是-host,此时如果有--op ...
- windows下同时安装多个python版本的方法
根据项目的需要,我的电脑上需要安装的python不止一个版本,比如同时需要python2.7和python3.6: 安装多个python版本 这时需要下载多个python安装包,为了区分不同的pyth ...
- d-堆
二叉堆因为实现简单,因此在需要优先队列的时候几乎总是使用二叉堆.d-堆是二叉堆的简单推广,它恰像一个二叉堆,只是所有的节点都有d个儿子(因此,二叉堆又叫2-堆).下图表示的是一个3-堆.注意,d-堆要 ...
- The 2017 ACM-ICPC Asia Shenyang Regional Contest
传送门 F - Heron and His Triangle 直接打表找到规律\(f_i=4f_{i-1}+f_{i-2}\),然后大数预处理一下,对于询问直接输出就行. Code #include ...