[Python] Keep efficient by vim in Pycharm
From: http://blog.csdn.net/u013088062/article/details/50144201
From: http://blog.csdn.net/u013088062/article/details/50148219
已有方案
自定义方案
配置Vim方案
已有方案
1、主题
毫无疑问Pycharm是一个具有强大快捷键系统的IDE,这就意味着你在Pycharm中的任何操作,例如打开一个文件、切换编辑区域等,都可以通过快捷键来实现。使用快捷键不仅能提高操作速度,看起来也会非常酷。然和,如果你已经习惯使用一些快捷键方案,你的手指就会习以为常,改变起来就比较困难。这部分教程即是介绍如何根据你的习惯来量身定制Pycharm快捷键设置,使你用起来得心应手。
对于基本的快捷键的组合、用法这里不再赘述,详情可参考Configuring keyboard shortcuts或者 Keymap。
2、选择一个快捷键配置方案
这一步非常简单,在主工具栏中单击设置按钮,在设置对话框中单击 Keymap。
在对应页面的下拉列表中选择一个快捷键配置方案:

单击应用保存更改。例如我们这里选择了Eclipse方案,因此删除一行的快捷键就是我们所习惯的Ctrl+D了。
自定义方案
3、改变快捷键配置方案。
在这里我们介绍如何改变快捷键的配置方案。
设想一下情况:你选择了Emacs方案的快捷键配置,但这个配置方案里面并没有预先定义好如何通过快捷键来实现删除一行:

假设你希望将这个功能指定快捷键为Ctrl+D,操作如下:
(1)在主工具栏中单击设置按钮,在设置对话框中单击 Keymap。
(2)在对应下来列表中选择Emacs。
(3)在下方的快捷键功能列表中,展开Editor Actions节点,定位到Delete Line功能。
(4)右击,在快捷菜单中选择 Add Keyboard Shortcut

(5)在打开的 Enter Keyboard Shortcut窗口 的First Stroke中 输入你想要的快捷键组合:

需要注意的一点是,在输入预期的快捷键时,所有来自键盘的输入都会被识别为用户的快捷键设置,举个例子,如果你想设置一个快捷键组合Ctrl+D,则需要一次按下Ctrl和D键。
如果你按错了键,你只能使用鼠标指针来删除错误的输入,因为此时来自键盘的输入Backspace 也会被系统认定为一个快捷键设置。
(6)接下来需要注意系统的警告提示:这个Ctrl+D的快捷键组合已经存在,说明Pycharm已经将这个快捷键组合关联到别的设置中去了,好在之前的设置并不常用,可以将它替换掉,因此单击OK确定。
在替换时Pycharm会给出警告提示:

(7)再次浏览一下设置好的快捷键方案:

你将会发现此时的配置方案自动更名为 Emacs copy。
这是因为Pycharm并不允许用户更改其预定义好的快捷键配置方案,只能更改其拷贝文件。单击应用并关闭对话框。
最后测试一下我们的更改是否生效。打开一个py文件,将光标定位到待删除行,按下Ctrl+D,该行代码顺利删除,设置更改成功。
配置vim方案
1、主题
如果你是Vim的粉丝,并且不打算使用其他类型的编辑器,那么这篇教程将会比较适合你。这里将会详细介绍如何在 Pycharm IdeaVim插件 的帮助下下载、安装、使用Vim。
至于有关Python编程以及Vim的用法,详见official website, Vim documentation。
3、下载安装IdeaVim插件
在Pycharm的主工具栏中单击设置按钮,在IDE Settings界面下选择 Plugins页面。此时将会显示当前平台下安装的所有插件。然而IdeaVim并不在其中,此时需要单击Browse JetBrains plugins按钮,在搜索栏中键入vim来找到对应的插件:

安装插件:

重启Pycharm后即可使用:

4、重启后的变化
Vim和Pycharm都是基于键盘输入的文本编辑软件,响应的IdeaVim插件的快捷键设置很可能与Pycharm的快捷键设置相冲突,这也是为什么Pycharm需要根据已有的快捷键配置来重新创建一套Vim版的快捷键方案。
// Pycharm 5:

当Pycharm重启之后,你将会看到Vim Keymap settings对话框,在这里选择一个快捷键配置方案来作为当前Vim环境下的快捷键方案:

我们这里选择默认的配置,单击OK,可以看到Pycharm创建了一份新的快捷键配置:

接下来再次查看快捷键设置界面。单击设置按钮进入Settings对话框,在IDE Settings下单击Keymap页面。在对应的快捷键配置下拉列表中会出现一个名为Vim的方案名称,其中定义了一些默认的快捷键组合,例如Ctrl+V代表粘贴等等:

然而这里还有一个更重要的Pycharm界面设置,在主工具栏中单击Tools,选择Vim Emulator命令:

当你安装了IdeaVim插件之后,这条命令是默认选中的(前面有对号),也就是意味着当前的Vim仿真器可用。
取消勾选,Pycharm就会回到正常的快捷键状体;
再次勾选,Pycharm就会重新加载Vim版的快捷键配置方案:

5、编辑模式
现在,我们就可以在Vim模式下进行编辑了,此时我们的输入光标为一个黑色小块,意味着我们当前处于 Normal模式:

如果你想变为Insert模式,按下i键,光标将会变为一条竖线:

在这个模式下面可以输入新的代码或者对当前代码进行修改。当然你还可以选择其他模式,例如按r键进入Replace输入模式。
顺便说一句,为了快速进入Vim仿真,可以查看状态栏的相关提示信息:Status bar

按下Esc键,回到正常编辑模式。
IdeaVim拥有很多VIm编辑器的特征,例如缩写形式、快捷键组合、各种各样的命令等等,详见:a lot more。
[Python] Keep efficient by vim in Pycharm的更多相关文章
- python的各种编辑器-PyScripter、pycharm 、atom、vscode、Sublime Text等等
RT,本文主要列举python的各种编辑器-PyScripter.pycharm .atom.vscode.Sublime Text等等. PyScripter 开源 免费 windows only ...
- Python学习笔记(1)Pycharm基本认识
Pycharm的使用 集成开发环境(IDE,集成开发环境) VIM #经典的linux下的文本编辑器 Pycharm,主要用于python开发的ide PyCharm常用快捷键 Ctrl + / # ...
- Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)
Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...
- python命令里运行正确但是pycharm里面运行就是报错的问题
这两天在学习爬虫,第一步就是 import scrapy class StackOverflowSpider(scrapy.Spider): 结果一直报错,说是scrapy没有spider这个方法,各 ...
- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda
---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...
- Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色
Python 代码编辑器怎么选?PyCharm.VS Code.Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Pyt ...
- python目前最好用的IDE——pycharm
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制. ...
- [Python] Create a Django project in Pycharm
From: http://blog.csdn.net/u013088062/article/details/50158239 From: http://blog.csdn.net/u013088062 ...
- Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'
学习网络抓取时,第一步出现问题. 执行示例代码 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlo ...
随机推荐
- android网络框架Retrofit 同步异步
http://blog.csdn.net/jiguangcanhen/article/details/39006197 同步的方式: 1)首先定义要接口.注解Get表示使用的Get请求方式,{user ...
- linux上nginx+apache 搭建 svn服务器
众所周知,nginx目前是不支持svn的,并且由于机房网络只开了80和22(ssh)端口,所以这时候就没法单独在服务器上搭建apache+svn .所以就产生了 nginx + apache + sv ...
- db2 表授权语句
grant insert/update/delete on table schema.table_name to user user_name;
- [Aaronyang] 写给自己的WPF4.5 笔记20 [3d课 1/4]
假设你是高中毕业的,ok,数学知识几何知识中,我们学过 x,y,z 3个轴然后就可以画出形状了. 1. 新建空白窗体,grid换成canvas,然后新增一个Viewport3D元素 3d中显示的 ...
- 深入了解STL中set与hash_set,hash表基础
一,set和hash_set简介 在STL中,set是以红黑树(RB-Tree)作为底层数据结构的,hash_set是以哈希表(Hash table)作为底层数据结构的.set可以在时间复杂度为O(l ...
- C# WinForm 技巧十: 开发工具
一.摘要 为了开发效率就应该为这个框架开发一个配套工具.来生成固定格式的代码.工具界面如下: 二.数据库整理篇 添加表主键 修改表说明 修改表字段说明 生成数据库文档 导出数据库里相同的字 ...
- JRE_HOME environment variable is not defined correctly This environment variableis needed to run this program
已经安装了JDK1.7 和对应JRE 安装了tomcat8 都是解压版 并设置了JAVA_HOME.JRE_HOME 但Tomcat在启动过程中找不到 错误: the JRE_HOME environ ...
- 【python】——小程序之电话薄
初学python,写一个小程序练习一下.主要功能就是增删改查的一些功能.主要用到的技术:字典的使用,pickle的使用,io文件操作.代码如下: import pickle #studentinfo ...
- Xcode7.x中安装Alcatraz
将Xcode升级了,发现Alcatraz失效了: xcode7.x安装插件命令:curl -fsSL https://raw.github.com/supermarin/Alcatraz/master ...
- 系统UINavigationController使用相关参考
闲来无事便在网上google&baidu了一番UINavigationController的相关文章,然后又看了下官方文档:看看更新到iOS7之后UINavigationController的 ...