哪个网站可以做行程攻略,河南整合网络营销咨询,网站前台与后台建设的先后次序,福建键seo排名Vim和Emacs一个称为神之编辑器一个被称为编辑器之神#xff0c;固然很是夸张#xff0c;但也足以说明这两 款软件的优秀和在程序员界的地位。但是它们都已漫长的学习曲线让人望而生畏#xff0c;阻止了大 多数人进入。作为一名几乎完全使用Vim写各种代码、文档的人#xff… Vim和Emacs一个称为神之编辑器一个被称为编辑器之神固然很是夸张但也足以说明这两 款软件的优秀和在程序员界的地位。但是它们都已漫长的学习曲线让人望而生畏阻止了大 多数人进入。作为一名几乎完全使用Vim写各种代码、文档的人我想把我自己平时使用的 插件和配置整理下来方便自己的总结和归纳如果能有幸帮助到一些想学习Vim但是又不知 道如何入门的人来说那就再荣幸不过了。 在下面的内容中我会介绍我使用的插件、Vim的配置最后如果你觉得这些配置手动太麻烦 的话我推荐你看我的另一篇文章从零搭建和配置OSX开发环境 在那篇文章的末尾我给出了一个自动化配置和管理Vim的方法。 先贴一张我的Vim的截图 你看的到的插件 从上面那种截图中肉眼能看到的插件说起把整个界面按照左窗口、主窗口、右窗口和下窗 口命名依次介绍出现在这个窗口中的主要插件。 主窗口 作为一款主要用于书写代码的文本编辑器一个足够舒服、靓丽的配色当然是首要考虑的。 我使用的配色主题是molokai官方地址在 你安装好了这个插件之后你需要下面几行配置应用它 Switch syntax highlighting on, when the terminal has colors
if (t_Co 2 || has(gui_running)) !exists(syntax_on)syntax on
endif Javascript syntax hightlight
syntax enable Set syntax highlighting for specific file types
autocmd BufRead,BufNewFile Appraisals set filetyperuby
autocmd BufRead,BufNewFile *.md set filetypemarkdown
autocmd Syntax javascript set syntaxjquery Color scheme
colorscheme molokai
highlight NonText guibg#060606
highlight Folded guibg#0A0A0A guifg#9090D0 另外一个推荐的vim主题是solarized(官方地址)。 在选定了一个适合自己的主题之后就需要一些配置去解决排版的问题比如字符编码和缩 进等问题。 Backspace deletes like most programs in insert mode
set backspace2Show the cursor position all the time
set rulerDisplay incomplete commands
set showcmdSet fileencodings
set fileencodingsutf-8,bg18030,gbk,big5filetype plugin indent on Softtabs, 2 spaces
set tabstop2
set shiftwidth2
set shiftround
set expandtab Display extra whitespace
set list listcharstab:»·,trail:· Make it obvious where 80 characters is
set textwidth80
set colorcolumn1 Numbers
set number
set numberwidth5set matchpairs:
set hlsearch 在第68行水平和垂直方向分别有一条高亮条这是用来表示我当 前光标所处于的行和列 用的。实现它只需要几行简单的配置就可以了 Highlight current line
au WinLeave * set nocursorline nocursorcolumn
au WinEnter * set cursorline cursorcolumn
set cursorline cursorcolumn 关于代码补全 有些人可能已经发现了在我的主窗口中没有演示代码补全的功能我需要对此做一个说明。 我本人不喜欢过于强大的代码补全所以默认的对于我来说已经完全足够了如果你需要使 用更强大的代码补全我推荐你使用YouCompleteMe官方地址。 左窗口 左窗口是一个用于浏览目录结构的插件nerdtree官方地址。 同样一些简单的配置之后它便能为你提供一个方便够用的功能。 NERD tree
let NERDChristmasTree0
let NERDTreeWinSize35
let NERDTreeChDirMode2
let NERDTreeIgnore[\~$, \.pyc$, \.swp$]
let NERDTreeShowBookmarks1
let NERDTreeWinPosleftAutomatically open a NERDTree if no files where specified
autocmd vimenter * if !argc() | NERDTree | endifClose vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr($) 1 exists(b:NERDTreeType) b:NERDTreeType primary) | q | endifOpen a NERDTree
nmap F5 :NERDTreeTogglecr 右窗口 在我的截图中右窗口陈列出了我当前打开的rb文件中申明的类、变量及方法等等。这是一 款名叫tagbar的插件它为我们提供了一个简单的方式去浏览当前文件的结构并且支持 在各个标签之间快捷的跳转。同理安装之后需要一些配置 Tagbar
let g:tagbar_width35
let g:tagbar_autofocus1
nmap F6 :TagbarToggleCR 如果你发现默认的Tagbar不能支持你的语言比如Css, Clojure, Markdown等等你可以 参照这篇文章为它提供额外的支持。 下窗口 下窗口包含了两个部分一个是用于全局搜索的窗口和一个状态条。 全局搜索是一个基于文件名的搜索功能可以快速定位一个文件。这是ctrlp这个插件提 供的功能。下面是ctrlp的一些配置 ctrap
set wildignore*/tmp/*,*.so,*.swp,*.zip,*.png,*.jpg,*.jpeg,*.gif MacOSX/Linux
let g:ctrlp_custom_ignore \v[\/]\.(git|hg|svn)$ ctrlp默认会使用grep进行搜索效率低且慢。所以我使用了ag去替换默认的搜索 功能。ag是一款轻量级的搜索工具速度非常快。为了集成ag需要添加下列配置 if executable(ag) Use Ag over Grepset grepprgag\ --nogroup\ --nocolor Use ag in CtrlP for listing files.let g:ctrlp_user_command ag %s -l --nocolor -g Ag is fast enough that CtrlP doesnt need to cachelet g:ctrlp_use_caching 0
endif 下面状态条中会依次显示当前模式、Git分支、文件路径、文件是否保存以及当前所载行和 列的信息。这是通过vim-powerline来实现的。其中显示Git信息需要配合vim-fugitive插件一些使用。 set laststatus2 Always display the status line
set statusline%{fugitive#statusline()} Git Hotness 小结 通过以上的配置你就可以拥有一些如第一张图所示的那样看起来还不错的编辑器。当然 Vim之所以如此倍受推崇只是依靠这些还是远远不够的。接下来我要介绍一些看不见的插 件来实实在在的提升Vim体验。 看不见的实用插件 现代化的插件管理 在我的另一篇文章中从零搭建和配置OSX开发环境 我已经详细介绍过Vundle这个管理Vim插件的一个软件这里不做过多介绍。 在Vim中执行你想要运行的命令 vim-run-interactive让你可以在Vim中执行几乎任何你想要在命令行中执行的命令。举例 来说假设你有条git update的自定义命令你可以通过:RunInInteractiveShell git update来执行它而不需要退出Vim。添加一条配置可以简化这个步骤 Run commands that require an interactive shell
nnoremap Leaderr :RunInInteractiveShellspace 如此一来你可以通过Leader r 命令键来激活执行命令。如果你不知道什么是Leader键你可以去百度或者Google一下。 Vim的语法检查 Vim中有个很强大的语法检查插件它支持几乎所有常用的语言的语法检测[syntastic(https://github.com/scrooloose/syntastic)]。 附上一张来自官方的截图 为了让它更好的工作同样需要一些配置 configure syntastic syntax checking to check on open as well as save
let g:syntastic_check_on_open1
let g:syntastic_html_tidy_ignore_errors[ proprietary attribute \ng-]
let g:syntastic_always_populate_loc_list 1
let g:syntastic_auto_loc_list 1
let g:syntastic_check_on_wq 0
set statusline%#warningmsg#
set statusline%{SyntasticStatuslineFlag()}
set statusline%* Rails集成开发套件 我是一名Ruby的爱好者所以Vim中少不了针对Ruby的一系列插件。我作为一名Web开发者 Rails这个大名鼎鼎的框架自然也是有所涉猎。所以在我的Vim中有着针对它们开发的一套插 件。 插件列表 ruby-vim在快速的在module, class, method中跳跃。 vim-bundler在Vim中集成Bundler。 vim-endwise自动补全end关键字。 vim-rails它的功能很多可以说是用 Vim开发Rails不可缺少的一个插件。更详细的信息可以前往它的官方网站获取。 vim-rspec在Vim中执行Rspec测试。 Cucumber navigation commands
autocmd User Rails Rnavcommand step features/step_definitions -glob**/* -suffix_steps.rb
autocmd User Rails Rnavcommand config config -glob**/* -suffix.rb -defaultroutes RSpec.vim mappings
map Leadert :call RunCurrentSpecFile()CR
map Leaders :call RunNearestSpec()CR
map Leaderl :call RunLastSpec()CR
map Leadera :call RunAllSpecs()CR 更多好用的工具 还有很多好用的插件如果每个都一一说明那么篇幅再长一倍怕也是不够。所以我这里 就把一些好用的插件列出来有兴趣的可以自己看看。 rename.vim在Vim中为文件重命名。 vim-coffee-script在Vim中舒心 的编写、编译Coffeescript。 vim-mkdir当你在Vim中新建文件的时候 自动帮你创建不存在的目录。 vim-surround快速的删除、修改和添加 括号、引号、XML标签等等。 matchit用%去在两个对应的字符间跳转。 tComment快速注释、反注释代码。 emmet-vimEmmet的Vim版。 tabular快速对齐。 snipmate.vim快速的代码片段。 vim-easymotion在文件中快速定位。 vim-instant-markdownVim中对 Markdown文档的实时预览。 备注 有更多的一些插件我没有都列出来它们一般用于特定语法的开发不一定适合所有人。你 可以参考从零搭建和配置OSX开发环境 这篇文章自动管理、配置你的Vim环境。 来自 http://yuez.me/jiang-ni-de-vim-da-zao-cheng-qing-qiao-qiang-da-de-ide/