我常用的Vim插件和技巧

Vim、Emacs配置和使用
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

我常用的Vim插件和技巧

#1

帖子 anticlockwise » 2008-02-26 10:23

打从发现Vim有一叫做VJDE的插件能够完成Java的自动补全和自动导入功能后就抛开了庞大的Eclipse,其实一直用Vim编辑除JAVA源码之外的起他文本,比如Python源码,RestructuredText,Latex等等

以下是我常用的一些插件和技巧,也许有很多人已经知道了,就当是扫盲贴或者让更多的人了解Vim的强大吧,大家如果有好的技巧也跟着往上贴吧~~

插件:
1. vstreeexploerer: 树装结构的文件浏览器,在命令模式下敲入:VSTreeExplore即可打开
2. minibufexpl: 微小型的Buffer查看器,而且设定了几个在BUFFER之间跳转的快捷键,多文档编辑之必备
3. VJDE: 不用说了,虽然说是叫做Vim Just a Development Environment,但其实基本上是Java Development Environment,能自动补全(通过JAVA的反射机制,只要导入了的包都能自动补全,就是要把需要的JAR文件相对路径放在一个配置文件中,不过ECLIPSE也不过如此)、自动导入、try catch包围、自动生成set/get。唯一我觉得还需要的是重构,我正在试着实现
4. Latex-Suite: 编辑Latex时用的
5. python.vim: 提供Python自动补全和其他一系列编辑Python源码时方便的命令

技巧:
1. 用:sp进行多窗口文档编辑时,很多时候我们其实只对其中一个窗口的文件进行编辑,所以希望能够将光标移动到这个窗口并最大化,在Vim里边,这要通过一些列快捷键:例如移动到上面的窗口:<Ctrl+W>k<Ctrl+W>_ 。我们可以将这四个快捷键映射到一个快捷键上:

代码: 全选

map <C-Q> <Ctrl+W>k<Ctrl+W>_
其他的移动就可以以此类推了

2. 经常编辑代码的话最好设定一些缩写,例如:

代码: 全选

iab ji import
这样在写ji然后空格就会自动变成import

3. 在做JAVA项目时,我很多时候是cd到项目文件夹目录下,然后:e src/org/jaden/WhateverClass.java来编辑源码,如果要打开另一个和当前文件相同目录下的文件时,又得重新打很长一串,虽然有TAB,但我还是很懒,所以定义了以下快捷键:

代码: 全选

if has("unix")
    map ,e :e <C-R>=expand("%:p:h") . "/" <CR>
else
    map ,e :e <C-R>=expand("%:p:h") . "\" <CR>
endif
这样,每次按,e就可以自动跳到和当前文件相同文件夹底下了

4. 还有一个很COOL的技巧,是从vim.org搜到的。一般IDE中的自动补全会根据用户写了的部分来慢慢减小补全的搜索范围,但是Vim中默认的是用户在打开激活自动补全后再敲入字符,自动补全的菜单就消失了。在.vimrc中加入以下几行就可以像IDE一样了:

代码: 全选

set completeopt=longest,menuone
inoremap <expr> <cr> pumvisible() ? "\<c-y>" : "\<c-g>u\<cr>"
inoremap <expr> <c-n> pumvisible() ? "\<c-n>" : "\<c-n>\<c-r>=pumvisible() ? \"\\<down>\" : \"\\<cr>\""
inoremap <expr> <m-;> pumvisible() ? "\<c-n>" : "\<c-x>\<c-o>\<c-n>\<c-p>\<c-r>=pumvisible() ? \"\\<down>\" : \"\\<cr>\""
5. 还有一些就是将常用的命令行命令(例如dvips, dvipdfmx, ps2pdf)定义成Vim的自定义命令,这样就不用在Vim和TERMINAL之间切换了。

最后,推荐两个配色:maria和oceandeep,我现在用的是oceandeep,对眼睛很好,适合长时间编程的人,顺便把我的Vim截个图
附件
Screenshot_Vim2.png
tongttt
帖子: 444
注册时间: 2007-11-27 22:20

#2

帖子 tongttt » 2008-02-26 11:47

ding,支持搂主
:D
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

#3

帖子 roylez » 2008-02-26 15:11

这么好的贴居然没有人回。。。。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#4

帖子 eexpress » 2008-02-26 16:07

每次按,e
\
● 鸣学
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

#5

帖子 roylez » 2008-02-26 16:23

eexpress 写了:
每次按,e
\
习惯问题
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#6

帖子 eexpress » 2008-02-26 16:32

双手操作的时候,键盘外侧的容易找到些。我的小本本,\在最最边上的位置。,可难找些哦。
● 鸣学
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

#7

帖子 anticlockwise » 2008-02-26 19:07

恩,很多Vim的按键配置的确是习惯问题,重要的在于按键用来操作什么
头像
ciclo
帖子: 786
注册时间: 2007-01-25 16:43
来自: 塔尔塔洛斯

#8

帖子 ciclo » 2008-02-27 12:17

楼主的latex-suit里:make管用吗?
我生平瞧不起两种人:
1.那些瞧不起用windows的人的人
2.用windows的人
3.不识数的人

博客:http://blog.chunhao.net
主页:http://chunhao.net
头像
muzuiget
帖子: 1097
注册时间: 2007-12-31 14:57

#9

帖子 muzuiget » 2008-02-27 12:19

以后有用,先收藏
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

#10

帖子 anticlockwise » 2008-02-27 19:58

ciclo 写了:楼主的latex-suit里:make管用吗?
不懂你指的make管用否是指什么?我装了Latex-Suite后在命令模式下敲make照样会调用make;在Latex状态下敲入make会调用latex,不过我基本不这么用,因为直接按\ll就可以调用latex来编译当前文件,然后我自己定义了几个命令来生成PDF文件
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

#11

帖子 roylez » 2008-02-27 20:45

ciclo 写了:楼主的latex-suit里:make管用吗?
显然是不管用的。要能make,就需要有Makefile。latex-suite里面的\ll是定义了一大堆的编译命令在其中,代替了自己写Makefile。
头像
wpdzyx
帖子: 59
注册时间: 2007-06-10 7:40

[问题]:我的为什么是这样

#12

帖子 wpdzyx » 2008-04-19 23:47

为什么我的设置不成功,请看对比.
附件
Screenshot-2.png
newborn
帖子: 27
注册时间: 2007-10-03 18:18

#13

帖子 newborn » 2008-04-23 23:24

楼主的桌面好炫啊
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

#14

帖子 solcomo » 2008-04-23 23:43

不顶不行啊 :D
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#15

帖子 xiooli » 2008-04-23 23:45

好贴收藏盖戳 :D
回复