{"id":23302171,"url":"https://github.com/seanknox/vim-config","last_synced_at":"2026-02-10T06:31:59.905Z","repository":{"id":11729881,"uuid":"14253902","full_name":"seanknox/vim-config","owner":"seanknox","description":"This is the Vim configuration I've used on pairing machines, as well as my personal machine. It's pretty okay! ","archived":false,"fork":false,"pushed_at":"2014-01-28T20:33:19.000Z","size":348,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-20T10:36:56.012Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"VimL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"SilenceDut/NBAPlus","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seanknox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-09T08:18:17.000Z","updated_at":"2014-05-17T12:27:32.000Z","dependencies_parsed_at":"2022-08-30T04:21:49.699Z","dependency_job_id":null,"html_url":"https://github.com/seanknox/vim-config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/seanknox/vim-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanknox%2Fvim-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanknox%2Fvim-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanknox%2Fvim-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanknox%2Fvim-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanknox","download_url":"https://codeload.github.com/seanknox/vim-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanknox%2Fvim-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29292093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-20T10:19:09.949Z","updated_at":"2026-02-10T06:31:59.869Z","avatar_url":"https://github.com/seanknox.png","language":"VimL","readme":"# Neo Vim Config\n\nYou should give it a try.\n\n## Pre-requisites\n\nThis config is built primarily to work on top of the OSX version of `MacVim`, but should be usable on top of other `vim` or `gvim` installations that are built with all of the `vim` features necessary to support the used plugins.\n\n## Attention Windows Users!\n\nIf you are installing this config on Microsoft Windows, you must download and install the latest [RailsInstaller](http://www.railsinstaller.org/) package.  Go ahead and do it now.  I'll wait.\n\nInstall the latest version of [Vim](http://www.vim.org/download.php#pc) and install with default options + checking the \"Create .bat files for command line use\".\n\nThe Windows version of the Vim configuration uses rake (for installation) git (for Vim plugin installations), and requires several other packages to emulate Ack (for file searching) and Curl (for gists) under Windows.  RailsInstaller is a single package that installs everything we will need to get things working.\n\n## Install\n\nWindows users: be sure to use **RailsInstaller** \u003e **Command Prompt with Ruby and Rails** to perform these installation steps instead of the normal command prompt.\n\n1. `git clone git://github.com/neo/vim-config.git`\n2. `cd vim-config`\n3. `rake` (This will symlink the necessary files to your home directory, asking for permission before clobbering anything.)\n4. `vim` (or in Windows: `gvim`)\n5. `:BundleClean` (if you have previously used this Neo Vim config)\n6. `:BundleInstall` (This will clone and install all of the plugins from github.)\n\n## Customizing\n\nCustomizations can be added to the folder `.vim/custom_config/`.\n\n* Any files with a `.vim` extension in that folder will be loaded when running all versions of `vim`.\n* Any files with a `.gvim` extension in that folder will be loaded when running a graphical version of `vim`.\n\nYou can add custom plugins by registering them in a `.vim` file in the custom_config folder with the same `Bundle \"plugin-repo-url\"`\nsyntax used in the `.vim/common_config/plugin_config.vim`, and then performing steps 3 \u0026 4 from the install steps above.\n\nCommon practice is to symlink a folder containing your custom configuration files as the `.vim/custom_config` folder.\n\n## Key mappings (remember case matters!)\n\n* `CMD + i` - exit out of insert mode\n* `\u003cleader\u003ew` - turn on line wrapping\n* `\u003cleader\u003eW` - turn off line wrapping\n* `\u003cleader\u003ess` - save all buffers\n* `Y` - copy (yank) from the cursor to the end of the line\n* `vv` - select the lines which were just pasted\n* `\u003cleader\u003e\u003cspacebar\u003e` - clear search highlighting\n* `\u003cC-p\u003e` - insert path of currently active buffer into command\n\n#### Whitespace key mappings\n\n* `go` - insert blank line below current without entering insert mode\n* `gO` - insert blank line above current without entering insert mode\n* `\u003cleader\u003eI` - reindent the entire file\n* `\u003cleader\u003ec` - cleanup trailing whitespace in current buffer\n* `\u003cleader\u003ee` - compress excess whitespace on current line (cleans tabularize spacing)\n\n#### Buffers \u0026 Navigation key mappings\n\n* `gW` - close all buffers other than the active one (within current tab)\n* `g\u003cEnter\u003e` - go back to the previously active buffer\n* `\u003cleader\u003ed` - delete all buffers\n* `\u003ctab\u003e` - match bracket pairs in normal and visual mode\n\n* `\u003cC-w-j\u003e` - move one buffer down\n* `\u003cC-w-k\u003e` - move one buffer up\n* `\u003cC-w-h\u003e` - move one buffer left\n* `\u003cC-w-l\u003e` - move one buffer right\n\n* `shift + up-arrow` - make horizontal split larger\n* `shift + down-arrow` - make horizontal split smaller\n* `shift + left-arrow` - make vertical split smaller\n* `shift + right-arrow` - make vertical split larger\n\n#### Ruby key mappings\n\n* `\u003cC-l\u003e` - insert a `=\u003e` surrounded by spaces\n\n#### Rails key mappings\n\n* `gs` - jump to schema file\n* `gr` - jump to routes file\n* `gm` - jump to Gemfile\n\n#### Macros (from within insert mode type abbreviation followed by punctuation or space)\n\n* `Lidsa` - insert some lorem ipsum text\n* `rdebug` - insert ruby specfic debugger statement\n\n## CtrlP\n\nProvides convenient ways to quickly reach the\nbuffer/file/command/bookmark/tag you want. CtrlP searches with the\nfuzzy/partial pattern to which it converted an entered pattern.\n\n* `\u003cleader\u003et` - fuzzy find files\n* `\u003cleader\u003eb` - fuzzy find open buffers\n* `\u003cleader\u003eT` - use fuzzy finder to navigate via tags instead of built-in tag navigation\n* `\u003cC-j\u003e` - open selected item in window in horizontal split\n* `\u003cC-k\u003e` - open selected item in vertical split\n\n## Unimpaired\n\nUtility functions for working with lines, files, and elements.\n\n**Customizations**\n\n* `\u003cC-Up\u003e` - Move lines up through a file (works in normal or visual mode, and multiple lines)\n* `\u003cC-Down\u003e` - Move lines down through a file (works in normal or visual mode, and multiple lines)\n\n## Syntastic\n\nSyntastic is a syntax checking plugin that runs buffers through external syntax\ncheckers as they are saved and opened. If syntax errors are detected, the user\nis notified and is happy because they didn't have to compile their code or\nexecute their script to find them.\n\n## Gundo\n\nAwesome visual representation of `vim` undo tree.\n\n**Customizations**\n\n* `\u003cleader\u003eh` - Toggle gundo\n\n## T-Comment\n\nTComment works like a toggle, i.e., it will comment out text that\ncontains uncommented lines, and it will remove comment markup for\nalready commented text (i.e. text that contains no uncommented lines).\n\nIf the file-type is properly defined, TComment will figure out which\ncomment string to use. Otherwise you use |TCommentDefineType()| to\noverride the default choice.\n\nTComment can properly handle an embedded syntax, e.g., ruby/python/perl\nregions in vim scripts, HTML or JavaScript in php code etc.\n\n* `gc{motion}` - Toggle comments (for small comments within one line the \u0026filetype_inline style will be used, if defined)\n* `gcc`        - Toggle comment for the current line\n* `gC{motion}` - Comment region\n* `gCc`        - Comment the current line\n\n\n## Fugitive\n\nI'm not going to lie to you; fugitive.vim may very well be the best\nGit wrapper of all time.  Check out these features:\n\nView any blob, tree, commit, or tag in the repository with `:Gedit` (and\n`:Gsplit`, `:Gvsplit`, `:Gtabedit`, ...).  Edit a file in the index and\nwrite to it to stage the changes.  Use `:Gdiff` to bring up the staged\nversion of the file side by side with the working tree version and use\nVim's diff handling capabilities to stage a subset of the file's\nchanges.\n\nBring up the output of `git status` with `:Gstatus`.  Press `-` to\n`add`/`reset` a file's changes, or `p` to `add`/`reset` `--patch` that\nmofo.  And guess what `:Gcommit` does!\n\n`:Gblame` brings up an interactive vertical split with `git blame`\noutput.  Press enter on a line to reblame the file as it stood in that\ncommit, or `o` to open that commit in a split.  When you're done, use\n`:Gedit` in the historic buffer to go back to the work tree version.\n\n`:Gmove` does a `git mv` on a file and simultaneously renames the\nbuffer.  `:Gremove` does a `git rm` on a file and simultaneously deletes\nthe buffer.\n\nUse `:Ggrep` to search the work tree (or any arbitrary commit) with\n`git grep`, skipping over that which is not tracked in the repository.\n`:Glog` loads all previous revisions of a file into the quickfix list so\nyou can iterate over them and watch the file evolve!\n\n`:Gread` is a variant of `git checkout -- filename` that operates on the\nbuffer rather than the filename.  This means you can use `u` to undo it\nand you never get any warnings about the file changing outside Vim.\n`:Gwrite` writes to both the work tree and index versions of a file,\nmaking it like `git add` when called from a work tree file and like\n`git checkout` when called from the index or a blob in history.\n\nUse `:Gbrowse` to open the current file on GitHub, with optional line\nrange (try it in visual mode!).  If your current repository isn't on\nGitHub, `git instaweb` will be spun up instead.\n\nAdd `%{fugitive#statusline()}` to `'statusline'` to get an indicator\nwith the current branch in (surprise!) your statusline.\n\nOh, and of course there's `:Git` for running any arbitrary command.\n\n\n## Ruby focused unit test\n\nMakes it easy to run a focused set of ruby tests from within `vim`.\n\n* Run the test/spec your cursor is currently on\n* Run the context your cursor is currently in\n* Run the entire test/spec you are working in\n* Streaming output to a new buffer\n\nThis plugin currently supports\n\n* `test/unit`\n* `dust`\n* `rspec`\n* `shoulda`\n\n**Customizations**:\n\n* `\u003cleader\u003era` - run all tests in the current buffer\n* `\u003cleader\u003erc` - run all tests in the current context\n* `\u003cleader\u003erf` - run current test\n* `\u003cleader\u003erl` - re-run last test command\n\n## \"Project Drawer\" aka NERDTree\n\nNERDTree is a file explorer plugin that provides \"project drawer\"\nfunctionality to your vim projects.  You can learn more about it with\n`:help NERDTree`.\n\n**Customizations**:\nUse `gt` to toggle NERDTree\n\n## Ack.vim\n\nAck.vim uses ack to search inside the current directory for a pattern.\nYou can learn more about it with :help Ack\n\n**Customizations**:\n\n* `g/` to bring up `:Ack `.\n* `g*` to bring up an `:Ack -w` search with the word under cursor.\n\n\n## Tabular\n\nLets you align statements on their equal signs, make comment\nboxes, align comments, align declarations, etc.\n\nTabular's commands are based largely on regular expressions.  The basic\ntechnique used by Tabular is taking some regex to match field delimiters,\nsplitting the input lines at those delimiters, trimming unnecessary spaces\nfrom the non-delimiter parts, padding the non-delimiter parts of the lines\nwith spaces to make them the same length, and joining things back together\nagain.\n\nFor instance, consider starting with the following lines:\n\n\n    Some short phrase,some other phrase\n    A much longer phrase here,and another long phrase\n\n\nLet's say we want to line these lines up at the commas.  We can tell\nTabularize to do this by passing a pattern matching , to the Tabularize\ncommand:\n\n    :Tabularize /,\n\n\n    Some short phrase         , some other phrase\n    A much longer phrase here , and another long phrase\n\n\n**Customizations**\n\nThe following tabular patterns have been added:\n\n* `symbols         / :/l0`\n* `hash            /=\u003e/`\n* `chunks          / \\S\\+/l0`\n* `assignment      / = /l0`\n* `comma           /,\\zs /l0`\n* `colon           /:\\zs /l0`\n* `options_hashes  /:\\w\\+ =\u003e/`\n\n\n## indent\\_object\n\nIndent object creates a \"text object\" that is relative to the current\nident. Text objects work inside of visual mode, and with `c` (change),\n`d` (delete) and `y` (yank). For instance, try going into a method in\nnormal mode, and type `v ii`. Then repeat `ii`.\n\n## text-object-ruby-block\n\nWhen textobj-rubyblock is installed you will gain two new text objects,\nwhich are triggered by `ar` and `ir` respectively. These follow Vim convention,\nso that `ar` selects all of a ruby block, and `ir` selects the inner portion\nof a rubyblock.\n\nIn ruby, a block is always closed with the end keyword. Ruby blocks may\nbe opened using one of several keywords, including module, class, def, if,\nand do.\n\n## surround\n\nSurround allows you to modify \"surroundings\" around the current text.\nFor instance, if the cursor was inside `\"foo bar\"`, you could type\n`cs\"'` to convert the text to `'foo bar'`.\n\nThere's a lot more; check it out at `:help surround`\n\n## SuperTab\n\nIn insert mode, start typing something and hit `\u003cTAB\u003e` to tab-complete\nbased on the current context.\n\n## Tagbar\n\nPlugin for browsing the tags of source code files. It provides a\nsidebar that displays the ctags-generated tags of the current file, ordered by\ntheir scope. This means that for example methods in C++ are displayed under\nthe class they are defined in.\n\n**Customizations**: Binds `\u003cleader\u003ert` to the ctags command to\nupdate tags. Bind `\u003cleader\u003e.` to toggle the taglist window\n\n**Note**: For full language support, run `brew install ctags` to install\nexuberant-ctags. Also if using OSX you may need to rename the system installed\nctags version so that vim correctly finds the exuberant ctags version instead,\n`sudo mv /usr/bin/ctags /usr/bin/ctags_orig`. In addition, TagBar supports\ndoctorjs/jsctags if installed for awesome tag support for javascript.\n\n\n**Tip**: Check out `:help ctags` for information about VIM's built-in\nctag support. Tag navigation creates a stack which can traversed via\n`\u003cC-]\u003e` (to find the source of a token) and `\u003cC-T\u003e` (to jump back up\none level).\n\n## Matchit / ruby-matchit\n\nImproves `vim` ability to jump back and forth between matching pairs of\nopening and ending items with `%`.\n\n\n## Gist-vim\n\nNice [gist integration](https://github.com/mattn/gist-vim) by mattn.\nRequires exporting your `GITHUB_TOKEN` and `GITHUB_USER` as environment\nvariables or setup your [GitHub token config](http://help.github.com/git-email-settings/).\n\nTry `:Gist`, `:Gist -p` and visual blocks.\n\n## ZoomWin\n\nWhen working with split windows, ZoomWin lets you zoom into a window and\nout again using `\u003cC-W\u003e o`\n\n**Customizations**: Binds `\u003cleader\u003ez` to `:ZoomWin`\n\n## Markdown Preview\n\nMarkdown preview takes the current buffer, converts the Markdown to\nHTML, and opens it in your default browser.\n\n**Customizations**: Binds `\u003cleader\u003emp` to this plugin.\n\n## Other goodies\n\n* `:OpenHtml` - view the current file (or selected lines) in a browser\n  (for copying \u0026 pasting with syntax highlighting)\n* `:Tidy` - tidy an HTML/XML file inline\n* `:AlignColons` - align all colon-separated content (CSS rules) in a file\n\n## Additional Syntaxes / Language Support\n\nShips with a few additional syntaxes:\n\n* Markdown (bound to \\*.markdown, \\*.md, and \\*.mk)\n* Haml (bound to \\*.haml)\n* Sass (bound to \\*.sass)\n* SCSS (bound to \\*.scss)\n* An improved JavaScript syntax (bound to \\*.js)\n* Coffee Script\n* Erlang\n* Jade\n\n## Color schemes\n\nIncludes the vim color sampler pack, which includes [over 100\npopular color themes](http://www.vi-improved.org/color_sampler_pack/):\n\n* jellybeans\n* matrix\n* railscasts2\n* tango\n* vibrantink\n* vividchalk\n* wombat\n* xoria256\n\nUse `:color vibrantink` to switch to a color scheme.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanknox%2Fvim-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanknox%2Fvim-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanknox%2Fvim-config/lists"}