Giter VIP home page Giter VIP logo

vim's Introduction

PerfectWorks 的 Vim 配置以及插件

作者日常工作环境为 Linux,经常编辑 JavaScript/HTML/CSS/Python/Shell 文件,因此大部分插件都是为这些文件进行优化。

这份配置对 Vim 的修改不多,每个修改都有详细的注释说明,对初学者比较友好。

尽管作者对该配置的多平台兼容性有一定处理,但因为每人的使用习惯都不一致,所以并不建议直接使用该配置文件作为生产配置使用,而是建议将该项目 fork 出一个自己的版本来维护。

有更多问题,欢迎直接联系作者。

安装

*nix

在 $HOME 目录下执行以下命令

git clone git://github.com/perfectworks/vim.git ~/.vim
cd ~/.vim && ./install.sh

Windows

在 %HOME% 目录下执行

git clone git://github.com/perfectworks/vim.git %HOME%/.vim
cd %HOME%/.vim && install.bat

升级

在 .vim 目录下执行以下命令

git pull

升级插件

git submodule foreach "git checkout master && git pull"

配置修改

大部分的自定义修改都在 bundle/Config 这个 bundle 里面

  • Vim 本身配置修改一般在 bundle/Config/plugin/config.vm
  • 快捷键修改一般在 bundle/Config/plugin/shortcut.vim
  • 对插件的配置会在 bundle/Config/plugin/插件名.vim

自定义快捷键

大部分自定义快捷键都在 bundle/Config/plugin/shortcut.vim 中配置,<Leader> 键被映射为 \

  • Normal 模式
    • gp: 粘贴最近一次 yank 操作的文字 (比如 yy 之后又 dd 了,可以用 gp 来粘贴 yy 的结果)
    • /: 在分屏模式下放大 / 缩小当前窗口
    • <Leader>nt: 打开 NerdTree
    • <Leader>nf :打开 NerdTree 并且将光标跳转到现在编辑的文件 (nt 的意思是 Nerdtree Find)
    • <Leader>m: 调用系统 make
    • <Leader>sh: 打开系统 shell (打开 shell 之后退出会跳回 vim)
    • <F3>: 在当前目录以及子文件夹中搜索特定关键字 (搜索支持 Vim 正则, 默认会搜索 &lt;关键字>>,如果要取消左右的 &lt;&gt;,可以输入 /关键字)
    • <F6>: 切换粘贴模式
    • <F5>: 切换显示行号
    • <F7>/<F8>: 跳到上一条/下一条 quickfix 记录,配合 <F3> 可以在搜索结果中快速跳转;在 vimdiff 模式下跳转到下一处/上一处 diff
    • <F9>: 快速编辑 Snippet,在 Snippet 中按 <F9> 会保存当前 Snippet,刷新 snipMate 缓存并返回刚刚编辑的文件
    • <F10>: 打开 TagBar
    • <Ctrl>-l: 清除高亮并且重绘屏幕
    • <Ctrl>-_: 分屏模式下当前窗口最大化
    • t`: 跳转到下一个大写字母 (驼峰式跳转)
    • <Leader>gc: git commit
    • <Leader>gs: git status
    • g<C-O>g<C-I>: 跳转到当前文件中的上一个/下一个光标位置
    • <space>: 打开刚刚编辑的文件
  • CommandLine 模式
    • <Ctrl>-a: 跳到命令行开始
    • <Ctrl>-e: 跳到命令行结束
  • Insert 模式
    • ii: 退出到 Norm 模式并保存文件
    • <Ctrl>-j: 相当于 <Ctrl>-x<Ctrl>-u
    • <Command>-r: 仅在 MacVim 下有效,执行 :silent make
  • CtrlP
    • 参考插件列表中 CtrlP 的介绍
  • Objective C 文件编辑
    • <leader>-a: 在 .m 和 .h 文件间切换

方便 Coding 的一些小功能

  • 打开文件时自动跳转到上一次编辑的位置
  • 保存 js 文件后自动生成 tags 文件(需要在项目目录下写一个 jstags.sh 脚本,脚本中写生成 tags 的命令。Vim 仅仅调用这个脚本而已)

插件

插件列表

插件介绍请 Google

  • vitality 在 iterm2 下支持光标样式切换,以及给 tmux 提供一些高级 feature
  • CtrlP
    • 强大的文件查找工具,主要快捷键映射有
    • <Ctrl>-p 搜索 Buffer/文件/最近使用的文件 (Mixed 模式)
    • g<Ctrl>-j 搜索 Tag
  • nerdcommenter 快速给代码加注释
  • vim-surround 修改一段代码周围的引号、括号等
  • CmdlineComplete 给命令行提供补全功能
  • bufexplorer 提供 Buffer 列表
  • zencoding-vim
    • 快捷键是 <Ctrl>-k
  • nerdtree 查看目录树
    • 设置了过滤 pyc 文件
  • fencview 增强 vim 的编码检测
  • snipmate 代码补全
  • jslint js 语法校验
  • tagbar js 代码大纲视图
  • Gist 分享代码到 github 的小工具
  • vim-repeat 增强 vim 的 repeat 功能
  • web-indent JavaScript 的语法缩进
  • jsbeautify JavaScript 代码格式化,快捷键是 <Leader>ff
  • Scrath 打开一个临时的缓冲区随便记录东西,快捷键是 <Leader>S
  • genutils 给 vim 添加一些函数库
  • vim-fugitive 增加一些 git 命令支持
  • molokai 配色
  • desertEx 配色
  • vim-markdown 高亮 markdown 格式
  • vim-lesscss 高亮 lesscss 格式
  • vim-css3 高亮 css3 中的属性

安装新插件

.vim 目录下执行

git submodule add '插件的 github 检出地址' 'bundle/插件名'
git submodule init
git submodule update

vim's People

Contributors

e7h4n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vim's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.