人生苦短,我用Python和VIM
2014-08-13
Python  / 已有3598人围观

三年前去公司实习的时候开始接触到Python和VIM,一直用到了现在。从刚开始的只会:w和:q,到现在慢慢的自己改一些VIM配置和插件,总体来说已经对使用VIM进行Python开发非常熟练了,所以想分享一下我的VIM配置和主要使用的插件。人生苦短,我用Python和VIM。

一、说在前头

在开始正文之前,做个特别声明:VIM的学习曲线很陡峭,如果你没有足够的时间和耐心去学习,或者你已经有了很顺手的编辑器/IDE,可以忽略本文。相应的,由于学习曲线陡峭,当你可以熟练使用VIM的时候,你可以完全摆脱鼠标,使用键盘和快捷方式获得比之前快一倍(甚至几倍)的编辑速度!

二、我的VIM

首先分享一下我的VIM界面和配置方法,我平时使用的是GVIM,可通过Ubuntu软件中心直接安装,会比默认的VIM好看一些:

VIM界面

我的VIM配置放在Github上:VimSettings,有兴趣学习的同学可以去下载体验一下。

三、VIM常用插件

TagList

快捷键:F9

依赖:sudo apt-get install ctags

简介:基于ctags实现,在vim代码窗口旁以分割窗口形式显示当前的代码结构概览,增加代码浏览的便利程度

NerdTree

快捷键:F8

简介:VIM中浏览文件的插件

neocomplcache

快捷键:(Ctrl+N)

简介自动补全插件;Vim 7已经内置了代码补全功能,补全操作有两种:关键字补全(简单地补全到文档中已有的词,快捷键为Ctrl+N)和智能补全(根据语义补全,快捷键Ctrl+X)

Pyflakes

快捷键:F7

依赖:sudo apt-get install pyflakes

简介:Python语法检查插件

PEP8

快捷键:F6

依赖:sudo apt-get install pep8

简介:Python编码规范检查


我使用VIM主要是做Python开发,主要用到的插件就是以上几个,我的VIM配置还有其他的插件,这里就不一一说明了,有兴趣的可以下载看看。

四、VIM常用命令

查找

按下 / 键,输入想要查询的内容,回车即可;

快捷键: n:跳到下一个匹配的内容; N:跳到上一个匹配的内容

全局查找

:vimgrep 搜索文本 搜索路径/**
:cn[ext]      跳到下一个匹配文本
:cp[revious]  跳到上一个匹配文本
:cnf[ile]     跳到下一个文件
:cpf[ile]     跳到上一个文件
:cr[ewind]    跳到开始位置
:cla[st]      跳到结束位置
:col[der]     iterate through historical quickfix lists
:cnew[er]     iterate through historical quickfix lists

替换

"s"代表替换,part1代表查找的内容,part2代表替换的内容,"%"代表所有行,"g"代表替换整行里所有的内容(如果不加"/g"则只替换每行第一个匹配part1的地方)。如:

:s/part1/part2         # 用part2替换当前行中第1个part1
:s/part1 /part2/g      # 用part2替换当前行中所有的part1
:%s/part1/part2        # 用part2替换所有行中每行第1个part1
:%s/part1/part2/g      # 用part2替换所有行中所有的part1
:2,50s/part1 /part2    # 用part2替换第2行到第50行中每行第1个part1
:2,50s/part1/part2/g   # 用part2替换第2行到第50行中所有的part1
:.,+3s/part1/part2  # 用part2替换当前行以及当前行后面的三行中每行第1个part1
:.,+3s/part1/part2/g   # 用part2替换当前行以及当前行后面的三行中所有的part1

复制/粘贴

在VIM中y表示拷贝, d表示删除, p表示粘贴。其中拷贝与删除是与光标移动命令。

yw     表示拷贝从当前光标到光标所在单词结尾的内容.
dw     表示删除/剪切从当前光标到光标所在单词结尾的内容.
y0     表示拷贝从当前光标到光标所在行首的内容.
d0     表示删除/剪切从当前光标到光标所在行首的内容.
y$     表示拷贝从当前光标到光标所在行尾的内容.
d$     表示删除/剪切从当前光标到光标所在行尾的内容.
yfa    表示拷贝从当前光标到光标后面的第一个a字符之间的内容.
dfa    表示删除/剪切从当前光标到光标后面的第一个a字符之间的内容.
yy     表示拷贝光标所在行.
dd     表示删除/剪切光标所在行.
D      表示删除/剪切从当前光标到光标所在行尾的内容.

Undo

快捷键:u

Redo

快捷键:Ctrl + R

缩进

在不同的模式中调整缩进的方法不同,如下:

插入模式:Ctrl+T增加缩进,Ctrl+D减小缩进。

命令模式:>> 右缩进,<< 左缩进,注意n<< 或 n>>是缩进多行,如4>>

可视模式:< 、 > 用于左右缩进, n< 、 n> 可做多节缩进,如 2> 。

多行注释

    1)、Ctrl+V 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来;然后按大写的I,再插入注释符(比如#);再按Esc,就会全部注释。
    2)、使用替换方式进行多行注释

          :s/^/#              # 用"#"注释当前行
          :2,50s/^ /#         # 在2~50行首添加"#"注释
          :.,+3s/^/#          # 用"#"注释当前行和当前行后面的三行
          :%s/^/#             # 用"#"注释所有行

    字符映射

    使用方法: <code>:ab 替换符 原始信息</code>

    比如: :ab mail wuxianglong098@gmail.com

    代码跳转

    gd:跳转到局部变量的定义,gD:跳转到全局变量的定义

    代码执行

    如果文件可以单独执行,可以使用快捷键F5直接执行文件

    代码折叠

    全局折叠/展开:zi

    光标在折叠处时:使用 whitespace或者za 展开/折叠当前折叠,zA循环展开/折叠当前代码

    快速移动光标

    在VIM中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定位和编辑。因此能更快一点移动光标是很有用的。

w(e)      移动光标到下一个单词.
b         移动光标到上一个单词.
0         移动光标到本行最开头.
^         移动光标到本行最开头的字符处.
$         移动光标到本行结尾处.
H         移动光标到屏幕的首行.
M         移动光标到屏幕的中间一行.
L         移动光标到屏幕的尾行.
gg        移动光标到文档首行.
G         移动光标到文档尾行.
c-f       (即ctrl 键与f 键一同按下) 本命令即page down.
c-b       (即ctrl 键与b 键一同按下, 后同) 本命令即page up.
''        此命令相当有用, 它移动光标到上一个标记处, 比如用gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置.
'.        此命令相当好使, 它移动光标到上一次的修改行.

    OK,基本的操作简单介绍到这里,如果想熟练使用,还得耐心多练练才行。。。。


Over!

本文地址:http://xianglong.me/article/python-ide-vim-settings/

特别声明:本站文章,如非注明,皆为降龙原创。转载需注明本文链接并保证链接可用。