开发工具 很好的 vim 套件

lidashuang · 2012年07月28日 · 最后由 lidashuang 回复于 2014年10月28日 · 23957 次阅读

The Ultimate Vim Distribution

http://vim.spf13.com/

is a distribution of vim plugins and resources for Vim, GVim and MacVim.

It is a completely cross platform distribution that stays true to the feel of vim while providing modern features like a plugin management system, autocomplete, tags and tons more.

比较适合懒人。

感谢分享

这个非常 好啊。。

cool 谢谢分享

还不错,目前就用这个,开箱即用,跟自己习惯差不多。

mac 下可以尝试尝试 vico。vico 开源了。

里面的插件几乎是标准插件.. 没有 ack..

还不错 就是插件太多了 哪些功能是哪个插件的提供的都不是很清楚,自己的配置还弄得不是很好,先用下这套,我简单的自定义了下,把 python 和 php 的相关的插件禁用了。google 了下关于自定义方面的文档几乎没有,我是根据.vimrc 来的,有谁对自定义这个的比较清楚,和我分享下吧 这是我的 https://github.com/dfang/spf13-vim/

#7 楼 @dfang 它用了这个管理插件 Vundle , 它就是 vim,自定义和你的 vim 是一样的。

我知道用的 vundle,自定义是通过.vimrc.local 和 vimrc.bundles.local .... 文件的 你读下他.vimrc 就知道了

@jinleileiking branch 3.0 有 ack 的啊,master 没

以前不知道 这个配置的真心太好用了 虽然功能上我也能配置的差不多 但是这个的细节处理的非常不错 赞一个

除了使用 vundle 外,貌似和 Janus 区别不大。。。

默认的主题不咋的 不过这个整合确实很棒,装上后感觉很上手

感觉所有的插件自己本来就已经用了。。。就没有什么大用处了

换个主题多好啊,默认的那个看起来累

ir_black

blackboard

@sectic vico 很不稳定,每次打开总会出点小问题。

@huacnlee vim-colorschemes 包里有 400 多个主题呢 够换的

@happypeter 我想请教的是一个关于 ctrlp 的问题 我用的是这个套件 怎么实现 sublime text 里的 ctrl p 功能,我已经设置 let g:ctrlp_working_path_mode = 2,这句的意思可以确保我 ctrl+p 查找的时候,目录是项目根目录,但是我看了下https://github.com/kien/ctrlp.vim/ 没有研究出来 文件模糊查找功能,我想达到的是这样的一个效果,比如我想打开 apps/controllers/application_controller.rb 这个文件,我可以这样 app con rb 就可以匹配出来

@huacnlee 在输入时显示几个"." 点符号的是什么插件。。

我来看看他都用了什么插件,偷点用在自己的配置里面

#17 楼 @mobiwolf 你需要下源码下来,然后人工编译一下,网站上的那个版本好久没更新了。

#19 楼 @dfang I don't use "ctrl-p", not sure if it has a fuzzy mode or not. I love fuzzyfiner. With fuzzyfinder ( http://happycasts.net/episodes/24 ), your request call be easily accomplished.

@happypeter 这个 ctrlp spf13 是自带的,换不了,没办法啊,我在 github 上https://github.com/spf13/spf13-vim/issues/102#issuecomment-7355151 问过作者怎么禁用或者替换某一款插件和 stackoverflow,都没什么好的方案

@happypeter 我想在.vimrc.local 文件里自定义定义一个 ctrl S 快捷保存,也不能生效,imap :wa @huacnlee 如果在用的话,帮我看一下?

#24 楼 @dfang .vimrc.bundles.local 可以配置禁用和用其它插件啊

#24 楼 @dfang 我有点不明白怎么会换不了 ctrlp?直接把 Bundle 'kien/ctrlp.vim'删掉并把.vim/bundle 里面的 ctrlp 目录删掉不就得了?然后要加自己的插件也简单啊,在.vimrc 写类似的 Bundle 语句,然后运行命令:vim +BundleInstall! +qall 就好了。还有,我试了,ctrlp 是支持你说的模糊查找的。

#25 楼 @dfang 试试这个

imap kk :updatea

我自己临时凑出来的,肯定能用,但肯定不是完美解决方案。

不用 <c-s> 是因为 Ctrl+* 系列的快捷键很多情况下都有特殊用途,很容易被 gnome 或是 terminal 之类的东西半路截住。

@happypeter 嗯 明天试试,我用 verbose imap 查出来的是跟我绑定的一样,注释这句,查出来的是 surround.vim 占用的 ..... 这个再研究把,呵呵

对了,感觉你对 NERDTree 蛮熟,这里请教下,还是针对这套插件 我一般用 cd apps 目录,然后 vim . 打开项目

我想固定住根目录,这样 ctrlp 搜索的时候,永远是从项目根目录来搜索的

  1. eg. :e ~/.vimrc.local :e 会改变 nerdtree 的 working directory
  2. 用鼠标点击打开 nerdtree 的文件 node,也会改变 nerdtree 的 working directory

下午看了很久的文档,还是没找到 ......

@lidashuang 怎么在.vimrc.bundles.local 禁用或替换某一款插件,给个 example?我只知道添加一款插件 直接用 Bundles 'xxx.vim'

@AlphaLiu 这样当然能行,我所说的所有禁用、替换或定制什么的 都是通过添加并修改 .vimrc.local 或 .vimrc.bundles.local,不动它原本的文件为前提的,模糊查找给个例子呀 最好能尽量模仿 sublime 的 go to anything

#30 楼 @dfang
.vimrc.bundle.local 自定义插件。你看看.vimrc 就知道了,他将插件放在一个数组里,只要你定义这个数组就可以了。

let g:spf13_bundle_groups=['general', 'ruby', 'programming','javascript', 'html','misc']
 "Bundle 'VimIM'  

.vimrc.local 是你自定义 vim 的配置

这种大而全用来研学还不错,初学者直接拿来用会一头雾水,其实最好是空白的 .vimrc 用到什么功能了自己一点一点的加,别人的 .vimrc 拿来研究研究加进自己的配置里,这样才能掌握.

@lidashuang 这个 我第一次用 spf13 就知道了,那一句我看得懂啊,比如我不搞 python php,直接把数组里的 python php 去掉就行了

你没搞清楚我的问题啊

我的意思是禁用或替换一个插件,不是一组啊

#31 楼 @dfang 比如我想打开apps/controllers/application_controller.rb 这个文件,我可以这样app con rb 就可以匹配出来

按照你说的,ctrlp 可以匹配到的。我不知道你是不是用了这个 spf13,它的 vimrc 里面会把你打开的文件的目录设为工作目录,比如你打开了 app/model/xxx.rb,那就找不到 app/controllers 里面的东西了。

看其他楼你好像是要固定项目根目录,我想很难做到吧。你都 cd 到一个目录了,谁会知道你的项目根目录是这个目录的父目录呢?有办法的话我也想请教。

@AlphaLiu 对,就是要固定根目录,举个例子,比如你打开了 config/database.yml,这个时候根目录切换到了 app/config,这个时候如果你想用打开 users_controller.rb 来修改,按 ctrl+P,是搜不到这个文件的 前天在 stackoverflow github 上都问过了,还没有答案 再等等

#29 楼 @dfang NERDtree 和 Ctrl-P 我都没有在用,所以回答不了你的问题了。我只是感觉 fuzzyfinder 和 vim 自己的 command-line mode 太强大了。 #35 楼 @AlphaLiu

没太理解问题是什么,不过不知大家有没有试试 vim 的 lcd 命令

#36 楼 @dfang 我一般都是在项目根目录下打开 config/database.yml , 然后我的 working directory 并没有设置自动切换成 config 目录,所以 ctrlp 还是能搜到全项目的文件。

@AlphaLiu 你是用什么方式打开 config/database.yml 的,我这里只要是用 o 或者鼠标点击都会改变的啊

#39 楼 @dfang 哦,我是用自己配置的 vim,没有用 spf13 的。无论是终端下 vim config/database.yml 或者 nerdtree 的 o 或 enter 都不会改变工作目录的,除非像 spf13 那样在 vimrc 里面设置了。

@happypeter @AlphaLiu 我猜可能是某个插件把目录改变了,所以如果捕获按 Ctrl+P 组合为键的事件的话,在这里把CWD设为根目录就好了 但是我没找到解决办法

@happypeter @AlphaLiu 又是 google 了很久,终于搞定了

在老版的.vimrc 看到这么一句

"set autochdir " always switch to the current file directory.. Messes with some plugins, best left commented out " not every vim is compiled with this, use the following line instead " If you use command-t plugin, it conflicts with this, comment it out. "autocmd BufEnter * if bufname("") !~ "^[A-Za-z0-9]*://" | lcd %🇵h | endif

所以在.vimrc 中把最后一句注释掉就可以了,原来是通过这个来实现 nerdtree 的 autochdir 的功能的,怪不得 set noautochdir 不起作用啊

或者在.vimrc.local 里加上这句 au! BufEnter * 移除这个 autocmd 绑定,具体的解释请看 :h autocmd-remove

j.mp 打不开呀。。。无法安装

对于大多数正常人类来说,放弃 VIM 才是王道:投入产出不成比例。 往往学习一周后全部忘记。VIM 各种套件多如牛毛。VIM 最大的缺点和优点就是:插件太多,没有标准的按键映射,没有官方标准按键映射、版本,没用占主导地位的标准套件。每换一种都得重新记忆、学习。 一进入 VIM 的大坑简直欲罢不能,想要熟练没个一、两年工夫出不来。

#44 楼 @dreamrise 学习一周 vim 然后不用当然会马上忘记。一直用的话至少常用的命令会烂熟于心。 另外,每个人都有自己的配置,套件什么的只适合初学者,对非初学者而言,套件也就是学习一下插件和 vimrc 的写法而已。

#43 楼 @zeelercurl https://raw.github.com/spf13/spf13-vim/3.0/bootstrap.sh -L -o - | sh

#44 楼 @dreamrise 不然,我感觉是一些 vim 初学者太急功近利,或者说太想拿来就用了。如果初学者拿本入门的 vim 书,慢慢来,好好读玩一本书,而不是上来用这用那插件的话,不至于搞的这么狼狈。所谓磨刀不误砍柴功

#46 楼 @AlphaLiu 多谢,这个比较好用

这玩意我卸载了,在 Mac Bash 下面使用 vim 有诸多问题:

  • 加载缓慢
  • 无法复制了
  • 作色混乱

@dreamrise @AlphaLiu 还是要整个适合自己的 注释写好 简单点好,插件搞多了 一是对速度有影响 2 是某款插件有 bug 或者各个插件之间有冲突 比如这个 spf 就有个冲突 很多人提了 还没解决

@jinleileiking 对,别个的.vimrc 是用来学的。。。

通过这个套件发现了 vundle 这个真正强大的东西。https://github.com/gmarik/vundle

有了 vundle,一切显得那么简洁。

链接中的 https://github.com/zaiste/vimified 貌似配置更好,有专门的 ruby 配置。

顺便说下怎么做 portable 的 VIM 运行包(WINDOWS 下测试通过), 适合一个 U 盘、移动硬盘多台机器跑的人。

WINDOWS 用户请首先搞定 git 和 curl。 教程:https://github.com/gmarik/vundle/wiki/Vundle-for-Windows

1、cd 你的 VIM 所在目录 2, git clone https://github.com/gmarik/vundle.git .vim/bundle/vundle 3、下载 .vimrc 4、修改 .vimrc 和 .vim\bundle\vundle\autoload\vundle.vim 将 $HOME 替换为 $VIM, 将 ~/ 替换为 $VIM/ (说明:$HOME,$VIM, ~/ 在 VIM 为几个重要目录的环境变量,可以通过:help $HOME 以及 :help $VIM 来查。简单说 $HOME 是当前用户的主目录,WINDOWS 系统为 c:\user\administrator 之类的,UNIX 就不用说了。而~后面如果跟/或者空格的时候就是指的$HOME,用~不过是个缩写而已。$VIM 大多情况下指你的主程序所在的上一级目录。) 改完之后,所有的插件安装都会放入主程序所在的.vim 目录($VIM/.vim/bundle)。 4、安装.vimrc 中定义的各种插件: Launch vim, run :BundleInstall (or vim +BundleInstall +qall for CLI lovers)

使用 vundle 后,你所有的 vim 配置只有一个文件.vimrc,你的所有的插件列表也将在这里面

@AlphaLiu @dfang 看了@ery 的这个贴 http://ruby-china.org/topics/3822 我发现我想说的,他都说了。引用一下结论:

用 Vim 做为 Rails 的开发工具, 入门成本有点高, 要想达到熟练的程度,需要太多的时间。 我投了一个月,没达到理想效果。

我用原始的 VI 有 10 年了:最开始是 sco unix,然后才发现 linux 下的 vim,结果还是只记住了 vi 核心的命令和按键。

想精通 VIM 比学 Rails 还要难,国内精通的没几个人,反而是日本人--这个跟 ruby 的情况一样--做了很多 NB 的 vim 插件。

55 楼 已删除

#51 楼 @dreamrise 不错,比 spf13 上默认配置好

#5 楼 @sectic vico 很好 很好!太好了

#57 楼 @1272729223 我觉得对 ruby 来说,Textmate 更方便一点。最大的好处就是不折腾。Textmate 是支持 Emacs 键位的,不用方向键。

为什么用这个后,打开 txt 或其他文件时,有些文字会有高亮背景,看起来好不方便,怎么去除

#52 楼 @dreamrise 如果在.vimrc里面加上如下代码的话就不需要去改.vim\bundle\vundle\autoload\vundle.vim文件了

if has("win16") || has("win32") || has("win64")
  set rtp+=$VIM\vimfiles\bundle\vundle
  call vundle#rc('$VIM\vimfiles\bundle')
else
  set rtp+=~/.vim/bundle/vundle/
  call vundle#rc()
endif

@dfang @AlphaLiu ,设置 let g:ctrlp_working_path_mode = 0,每次用 vim 打开 rails 任意文件后,执行一下 Rtree 就可以了。支持模糊搜索尝试打开 ctrlp 后按 ctrl+d,ctrl+r,详细可参 ctrlp 的 README

@stc 早没用 ctrlp 了,ctrlp 不支持带空格的模糊匹配 我问过作者了 他说他做 ctrlp 是模仿了 fuzzyfinder 的 呵呵,fuzzyfinder 过于强大 很多功能我用不到

#49 楼 @huacnlee 你用的 terminal 一定是 mac 默认的不支持 256 色的那个吧……

#64 楼 @huacnlee 难道是这篇东西说的 iTerm 开 256 色半透明效果会 lag 的问题? 话说我刚数了一下,不数不知道,一数吓一跳,原来我用了 50 多个插件……比他这个还多好多,不过一点没感觉到延迟的问题

好用是好用,不过感觉特别慢

在 Mac 上安装出现这个错误是怎么回事?

fatal: Not a git repository (or any of the parent directories): .git
setting up symlinks
ln: /Users/rainday/.vimrc: File exists
ln: /Users/rainday/.vimrc.fork: File exists
ln: /Users/rainday/.vimrc.bundles: File exists
ln: /Users/rainday/.vimrc.bundles.fork: File exists
update/install plugins using Vundle
E282: Cannot read from "/Users/rainday/.spf13-vim-3/.vimrc.bundles"Vim: Reading from stdin...

#68 楼 @lidashuang 可是把那些删除再安装还是一样的提示

E282: Cannot read from "/Users/rainday/.spf13-vim-3/.vimrc.bundles"Vim: Reading from stdin...

参考了这个 issue https://github.com/spf13/spf13-vim/issues/150 未果

以前也用了很多插件,现在反而慢慢减掉,比如自动补全分号,自动补全单词等,看每个人的需要吧。

#69 楼 @rainday 这个东西插件太多,建议你参考它的配置,改成自己的

bundle 半小时 - -

mac ruby 开发新手适合使用这个工具吗?请问

#74 楼 @lidashuang 非常感谢,spf13 这个 VIM 插件已经经过一段时间的折腾终于已经上手了。目前可以使用它进行基本的 rails 开发和学习了。先不折腾别的工具了,感谢

#75 楼 @bo6bear 用了 vim 那就 vim,用 sublime 不折腾

需要 登录 后方可回复, 如果你还没有账号请 注册新账号