spf13-vim
spf13-vim:Steve Francia的Vim Distribution
__ _ _____ _
___ _ __ / _/ |___ / __ __(_)_ __ ___
/ __| '_ \| |_| | |_ \ _____\ \ / /| | '_ ` _ \
\__ \ |_) | _| |___) |_____|\ V / | | | | | | |
|___/ .__/|_| |_|____/ \_/ |_|_| |_| |_|
|_|
spf13-vim是Vim,Gvim和MacVim的vim插件和资源的分布。
对于任何打算在Windows,Linux,* nix和Mac上使用VIM进行开发的人来说,这是一个很好的起点。
利用分布是完全可定制的~/.vimrc.local
,~/.vimrc.bundles.local
和~/.vimrc.before.local
Vim的RC文件。
与传统的VIM插件结构不同,它类似于UNIX将所有文件抛入公共目录,使更新或禁用插件变得非常混乱,spf13-vim 3使用Vundle插件管理系统来组织良好的vim目录(类似于mac的app文件夹) 。Vundle还确保安装最新版本的插件,并使其易于更新。
我们非常谨慎地确保每个插件与其他插件完美匹配,并且已经为我们认为最有效的用途提供了可选配置。
最后(也许,最重要的)它完全是跨平台的。它适用于Windows,Linux和OSX,无需任何修改或其他配置。如果您使用的是MacVim或Gvim,则会启用其他功能。所以无论您的环境如何,只需克隆并运行即可
安装
要求
要使所有插件工作,特别是neocomplete,你需要vim与lua。
Linux,* nix,Mac OSX安装
安装spf13-vim的最简单方法是使用我们的自动安装程序,只需将以下行复制并粘贴到终端即可。这将安装spf13-vim并备份您现有的vim配置。如果要从先前版本(3.0之前)升级,这也是推荐的安装。
需要Git 1.7+和Vim 7.3+
curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
如果你有一个与bash兼容的shell,你可以直接运行脚本:
sh <( curl https://j.mp/spf13-vim3 -L )
在Windows上安装
在Windows和* nix 上需要Git和Curl。此外,如果您还没有这样做,则需要安装Vim。安装所有三个依赖项(Git,Curl,Vim和spf13-vim)的最快选项是通过Chocolatey NuGet。安装Chocolatey后,在命令提示符处执行以下命令:
C:\> choco install spf13-vim
注意:spf13-vim软件包也会安装Vim!
如果要单独安装msysgit,Curl和spf13-vim,请按照以下说明操作。
安装依赖项
安装Vim
安装Vim之后,必须在环境变量路径中添加一个新目录,以使其与spf13的脚本安装一起使用。
打开Vim并编写以下命令,它将显示已安装的目录:
:echo $VIMRUNTIME
C:\Program Files (X86)\Vim\vim74
然后,您需要将其添加到您的环境变量路径。之后尝试vim
在命令提示符下执行(按Win-R,键入cmd
,按Enter键),您将看到默认的vim页面。
安装msysgit
安装后尝试git --version
在命令提示符下运行(按Win-R键入cmd
,按Enter键)以确保所有正常:
C:\> git --version
git version 1.7.4.msysgit.0
设置卷曲
从vundle readme中复制的指令 在Windows上安装Curl很简单,因为Curl与msysgit捆绑在一起!但在它可以与Vundle一起使用之前,需要curl
在命令提示符下运行make 。最简单的方法是curl.cmd
使用此内容进行创建
@rem Do not use "echo off" to not affect any child calls.
@setlocal
@rem Get the abolute path to the parent directory, which is assumed to be the
@rem Git installation root.
@for /F "delims=" %%I in ("%~dp0..") do @set git_install_root=%%~fI
@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%PATH%
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
@curl.exe %*
并将其复制到C:\Program Files\Git\cmd\curl.cmd
,假设安装了msysgitc:\Program Files\Git
运行:验证所有好的,运行:
C:\> curl --version
curl 7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8k zlib/1.2.3
Protocols: dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: Largefile NTLM SSL SSPI libz
在Windows上安装spf13-vim
最简单的方法是下载并运行spf13-vim-windows-install.cmd文件。如果希望成功创建符号链接,请记住以管理员模式运行此文件。
更新到最新版本
最简单(也是最安全)的更新方法是简单地重新运行安装程序。它将完全和非破坏性地升级到最新版本。
卷曲https://j.mp/spf13-vim3 -L -o - | SH
或者,您可以手动执行以下步骤。如果配置结构发生任何变化,则需要创建相应的符号链接。
cd $ HOME / to / spf13-vim /
git pull
vim + BundleInstall !+ BundleClean + q
把我放在GitHub上
我总是很乐意接受别人的拉请求。很多人已经成为spf13-vim的贡献者。来吧,分叉我。
高度优化的.vimrc配置文件
.vimrc文件适合编程。它组织得非常好,并且可以分段折叠。每个部分都有标签,每个选项都有注释。
它修复了vanilla vim的许多不便之处
- 单个配置可以在Windows,Mac和Linux上使用
- 消除乱丢垃圾目录中的交换和备份文件,更喜欢存储在中心位置。
- 修复常见的拼写错误:W,:Q等
- 为格式化设置一组可靠的设置(更改以满足您的需求)
- 设置界面以利用vim的功能,包括
- omnicomplete
- 行号
- 语法高亮
- 一个更好的统治者和地位线
- & 更多
- 配置包含的插件
定制
创建~/.vimrc.local
和~/.gvimrc.local
任何本地自定义。
例如,要覆盖默认颜色方案:
echo colorscheme ir_black >> 〜/ .vimrc.local
在文件之前
创建一个~/.vimrc.before.local
文件以定义在spf13-vim 之前加载的任何自定义项.vimrc
。
例如,要防止autocd进入文件目录:
echo let g:spf13_no_autochdir = 1 >> 〜/ .vimrc.before.local
有关spf13-vim特定自定义选项的列表,请查看该~/.vimrc.before
文件。
叉子定制
对于那些想要维护专门针对特定组的spf13-vim的分支,可以使用额外的自定义层。这些用户可以在fork的根目录中创建.vimrc.fork
和.vimrc.bundles.fork
文件。配置的加载顺序是:
-
.vimrc.before
- 配置前spf13-vim -
.vimrc.before.fork
- 配置前分叉 -
.vimrc.before.local
- 在用户配置之前 -
.vimrc.bundles
- spf13-vim bundle配置 -
.vimrc.bundles.fork
- fork bundle配置 -
.vimrc.bundles.local
- 本地用户捆绑配置 -
.vimrc
- spf13-vim vim配置 -
.vimrc.fork
- fork vim配置 -
.vimrc.local
- 本地用户配置
有关.vimrc.bundles
可以设置哪些选项以覆盖捆绑配置的详细信息,请参阅。有关.vimrc.before
可以覆盖哪些选项的详细信息,请参阅。应在.vimrc.fork
文件中设置大多数vim配置选项,需要在.vimrc.bundles.fork
文件中设置bundle配置。
您可以使用.vimrc.before.fork
file 指定fork的默认包。以下是如何.vimrc.before.fork
在fork repo中为默认包创建示例文件。
echo let g:spf13_bundle_groups = [ \' general \',\' programming \',\' misc \',\' youcompleteme \' ] >> .vimrc.before.fork
在repo中有此文件后,在第一次安装fork时,只会安装指定的软件包。
您可能还想更新您的README.markdown
文件,以便bootstrap.sh
链接指向您的存储库和bootstrap.sh
文件以下拉您的分支。
有关以这种方式提供自定义的spf13-vim fork的示例,请参阅taxilian的fork。
轻松编辑配置
<Leader>ev
打开一个包含上面列出的.vimrc配置文件的新选项卡。这样可以更轻松地概述配置并进行自定义。
<Leader>sv
获取.vimrc文件,立即将您的自定义应用于当前运行的vim实例。
这两个映射本身可以通过在.vimrc.before.local中设置以下内容来自定义:
让 G:spf13_edit_config_mapping = ' <利达> EV '
让克:spf13_apply_config_mapping = ' <利达> SV '
插件
spf13-vim包含一组受欢迎的vim插件,颜色,片段和语法。我们非常谨慎地确保这些插件能够很好地协同工作并具有最佳配置。
添加新插件
~/.vimrc.bundles.local
为任何其他捆绑包创建。
要添加新捆绑包,只需为要安装的每个捆绑包添加一行。该行应以“Bundle”一词开头,后跟vim.org项目名称或githubusername / githubprojectname字符串。例如,可以使用以下命令添加github项目spf13 / vim-colors
echo Bundle \' spf13 / vim-colors \' >> 〜/ .vimrc.bundles.local
添加新插件后,必须安装它们。
vim + Bundle安装!+ BundleClean + q
删除(禁用)包含的插件
~/.vimrc.local
如果它尚不存在则创建。
将UnBundle命令添加到此行。它需要与Bundle行相同的输入,因此只需复制要禁用的行,并在开头添加“Un”。
例如,禁用“AutoClose”和“scrooloose / syntastic”插件
echo UnBundle \' AutoClose \' >> 〜/ .vimrc.bundles.local
echo UnBundle \' scrooloose / syntastic \' >> 〜/ .vimrc.bundles.local
记得跑':BundleClean!' 在此之后删除现有目录
以下是一些插件:
Undotree
如果撤消更改然后进行新的更改,则在大多数编辑器中,您撤消的更改将永远消失,因为它们的撤消历史记录是一个简单的列表。从版本7.0开始,vim使用撤消树。如果在撤消更改后进行了新的更改,则会在该树中创建一个新分支。结合持久性撤消,这几乎与git一样灵活和安全;-)
通过创建所述撤消树的可视化表示,Undotree使该功能更易于访问。
快速启动使用<Leader>u
。
NERDTree
NERDTree是一个文件浏览器插件,为您的vim编辑提供“项目抽屉”功能。您可以通过以下方式了解更多信息 :help NERDTree
。
快速启动使用<Leader>e
。
自定义:
- 使用
<C-E>
切换NERDTree - 使用
<leader>e
或<leader>nt
加载NERDTreeFind,打开当前文件所在的NERDTree。 - 隐藏杂乱('。pyc','。git','。hg','。svn','。。bzr')
- 将NERDTree视为面板而非分割。
ctrlp
Ctrlp用100%viml插件替换Command-T插件。它提供了一种直观,快速的机制,可以从文件系统(带有正则表达式和模糊查找),打开缓冲区以及最近使用的文件中加载文件。
快速启动使用<c-p>
。
环绕
这个插件是处理成对的“环境”的工具。环境的示例包括括号,引号和HTML标记。它们与Vim所称的文本对象密切相关。提供了允许移除,改变和添加环境的映射。
详细信息遵循确切的语义,但首先,请考虑以下示例。星号(*)用于表示光标位置。
Old text Command New text ~
"Hello *world!" ds" Hello world!
[123+4*56]/2 cs]) (123+456)/2
"Look ma, I'm *HTML!" cs"<q> <q>Look ma, I'm HTML!</q>
if *x>3 { ysW( if ( x>3 ) {
my $str = *whee!; vllllS' my $str = 'whee!';
例如,如果光标位于内部"foo bar"
,则可以键入 cs"'
以将文本转换为'foo bar'
。
还有更多,请查看 :help surround
NERDCommenter
无论文件类型如何,NERDCommenter都允许您对代码注释进行纠缠。help :NERDCommenter
在NERDCommenter上查看或查看我的帖子。
QuickStart<Leader>c<space>
在Visual或Normal模式下切换注释。
neocomplete
Neocomplete是一个惊人的自动完成插件,增加了对代码段的支持。它可以从字典,缓冲区,omnicomplete和片段中同时完成。这是一个真正的插件,它使Vim自动完成与最好的编辑器相提并论。
快速入门只需开始输入,它将尽可能自动完成
自定义:
- 自动显示自动完成菜单
- 支持选项卡并输入自动完成功能
-
<C-k>
使用Neosnippet完成片段。
YouCompleteMe
YouCompleteMe是另一个惊人的完成引擎。它的设置稍微复杂一些,因为它包含一个二进制组件,用户在工作之前需要编译它。因此,它非常快。
要启用YouCompleteMe youcompleteme
,请通过覆盖您的组来添加到您的组列表中.vimrc.before.local
:let g:spf13_bundle_groups=['general', 'programming', 'misc', 'scala', 'youcompleteme']
这只是一个示例。请记住在此处选择您想要的其他组。
完成此操作后,您需要让Vundle从git中获取最新代码。你可以通过电话来做到这一点:BundleInstall!
。您应该在列表中看到YouCompleteMe。
现在,您将在bundle目录中拥有代码,并可以继续编译核心。切换到已下载的目录。如果你有一个vanilla安装,那么cd ~/.spf13-vim-3/.vim/bundle/YouCompleteMe/
应该做的伎俩。您应该在此目录中看到名为install.sh的文件。在运行安装程序之前,有几个选项需要考虑:
- 你想要clang支持(如果你不知道这是什么,那么你可能不需要它)?
- 您想链接本地libclang还是让安装程序为您下载最新版本?
- 你想通过omnisharp服务器支持c#吗?
该插件在上面链接的网站上有详细记录。请务必阅读并确保您了解所需的选项。
对于想要使用eclim的java用户,请务必添加let g:EclimCompletionMethod = 'omnifunc'
到.vimrc.local中。
Syntastic
Syntastic是一个语法检查插件,它在保存和打开时通过外部语法检查程序运行缓冲区。如果检测到语法错误,则会通知用户并且感到高兴,因为他们不必编译代码或执行脚本来查找它们。
自动关闭
AutoClose可以满足您的期望。这很简单,如果你打开支架,支架,支架,报价等,它会自动关闭它。它正确处理卷曲,并不妨碍像jinja和twig这样的东西的双重卷曲。
逃亡
Fugitive在vim中为git目录添加了普遍的git支持。有关更多信息,请使用:help fugitive
使用:Gstatus
查看git status
并键入-
任何文件阶段或unstage它。p
在文件上键入以在文件中输入git add -p
和暂存特定的数据。
:Gdiff
在打开的文件上使用以查看对该文件所做的更改
快速入门 <leader>gs
以提升git状态
自定义:
-
<leader>gs
:GSTATUS -
<leader>gd
:GDIFF -
<leader>gc
:Gcommit -
<leader>gb
:Gblame -
<leader>gl
:考勤记录 -
<leader>gp
:Git推 -
<leader>gw
:Gwrite - :Git ___会将任何内容传递给git。
PIV
最完整和最新的PHP集成Vim,支持PHP 5.3+,包括最新的语法,功能,更好的折叠支持等。
PIV提供:
- PHP 5.3支持
- 自动生成PHP Doc(,pd on(函数,变量,类)定义行)
- 自动完成类,函数,变量,常量和语言关键字
- 更好的缩进
- 完整的PHP文档手册(在完整文档的任何函数上点击K)
Ack.vim
Ack.vim使用ack在当前目录中搜索模式。您可以通过以下方式了解更多信息:help Ack
快速入门:Ack
Tabularize
Tabularize允许您在等号和其他字符上对齐语句
自定义:
<Leader>a= :Tabularize /=<CR>
<Leader>a: :Tabularize /:<CR>
<Leader>a:: :Tabularize /:\zs<CR>
<Leader>a, :Tabularize /,<CR>
<Leader>a<Bar> :Tabularize /<Bar><CR>
Tagbar
spf13-vim包含Tagbar插件。这个插件需要exuberant-ctags,并会自动为打开的文件生成标签。它还提供了一个面板,可以通过标签轻松导航
快速启动 CTRL-]
时光标位于关键字(例如函数名称)上以跳转到其定义。
自定义:spf13-vim绑定<Leader>tt
到切换标签栏面板
注意:要获得完整语言支持,请运行brew install ctags
以安装exuberant-ctags。
提示:查看:help ctags
有关VIM内置ctag支持的信息。标签导航创建一个堆栈,可以遍历 Ctrl-]
(以查找令牌的来源)和Ctrl-T
(跳回一个级别)。
在EasyMotion
EasyMotion提供了一种在Vim中使用动作的交互方式。
它可以快速将每个可能的跳转目标映射到一个键,从而实现非常快速和直接的移动。
QuickStart EasyMotion是使用正常动作触发的,但前缀为<leader><leader>
例如,此屏幕截图显示按下 ,,w
航空公司
航空公司提供轻量级的可用状态线,没有外部依赖性。默认情况下,此配置使用符号‹
和›
不同状态行部分的分隔符,但可以配置为使用与电力线相同的符号。此处显示了第一个没有,然后是电力线符号的示例:
要启用电力线符号,请首先安装其中一个电源线字体,或使用提供的说明修补您喜欢的字体。配置终端,MacVim或Gvim以使用所需的字体。最后加入let g:airline_powerline_fonts=1
你的.vimrc.before.local
。
其他语法
spf13-vim附带了一些额外的语法:
- Markdown(绑定到* .markdown,* .md和* .mk)
- 枝条
- Git提交(设置你
EDITOR
的mvim -f
)
惊人的色彩
spf13-vim包括solarized和spf13 vim颜色包:
- ir_black
- 莫洛凯
- peaksea
使用:color molokai
切换到配色方案。
终端Vim用户将受益于曝光他们的终端仿真器并将曝光支持设置为16种颜色:
let g:solarized_termcolors=16
color solarized
终端模拟器colorschemes:
- http://ethanschoonover.com/solarized(iTerm2,Terminal.app)
- https://github.com/phiggins/konsole-colors-solarized(KDE Konsole)
- https://github.com/sigurdga/gnome-terminal-colors-solarized(Gnome终端)
片段
它还包含一组非常完整的片段,用于与snipmate或neocomplete一起使用。
VIM简介
如果您以前从未使用过VIM,请参考以下提示:
教程
模式
- VIM有两种(常见)模式:
- 插入模式 - 您键入的内容将添加到缓冲区中
- 普通模式 - 您点击的键被解释为命令
- 要进入插入模式,请点击
i
- 要退出插入模式,请单击
<ESC>
有用的命令
- 使用
:q
退出VIM - 某些命令以
<Leader>
键为前缀,默认情况下映射到\
。Spf13-vim用于let mapleader = ","
将其更改,
为一致且方便的位置。 - 键盘备忘单。