{"id":15377499,"url":"https://github.com/mislav/vimfiles","last_synced_at":"2025-10-08T20:50:20.304Z","repository":{"id":1941051,"uuid":"2870343","full_name":"mislav/vimfiles","owner":"mislav","description":"vim configuration – Ruby, Rails, Markdown, SCSS, CoffeeScript","archived":false,"fork":false,"pushed_at":"2019-04-17T14:26:00.000Z","size":152,"stargazers_count":263,"open_issues_count":0,"forks_count":53,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-07-22T02:07:12.025Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://mislav.uniqpath.com/2011/12/vim-revisited/","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"nrw/coffee-script-precompiler","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mislav.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":"2011-11-28T21:24:17.000Z","updated_at":"2024-08-26T16:25:12.000Z","dependencies_parsed_at":"2022-08-20T09:50:40.524Z","dependency_job_id":null,"html_url":"https://github.com/mislav/vimfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mislav/vimfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mislav%2Fvimfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mislav%2Fvimfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mislav%2Fvimfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mislav%2Fvimfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mislav","download_url":"https://codeload.github.com/mislav/vimfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mislav%2Fvimfiles/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267325178,"owners_count":24069403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-10-01T14:12:02.381Z","updated_at":"2025-10-08T20:50:15.266Z","avatar_url":"https://github.com/mislav.png","language":"Vim script","funding_links":[],"categories":[],"sub_categories":[],"readme":"Mislav's vim configuration\n==========================\n\nThanks to these guys:\n\n* [Gary Bernhardt](http://destroyallsoftware.com),\n* [Drew Neil](http://vimcasts.org),\n* [Tim Pope](http://tbaggery.com),\n* and the [Janus project](https://github.com/carlhuda/janus).\n\nMy configuration uses [Pathogen](https://github.com/tpope/vim-pathogen) and git submodules.\n(But you don't need to care about any of that.)\n\n## Installation:\n\nPrerequisites: ruby, git.\n\n1. Move your existing configuration somewhere else:  \n   `mv ~/.vim* ~/.gvim* my_backup`\n2. Clone this repo into \".vim\":  \n   `git clone https://github.com/mislav/vimfiles ~/.vim`\n3. Go into \".vim\" and run \"rake\":  \n   `cd ~/.vim \u0026\u0026 rake`\n\nThis will install \"~/.vimrc\" and \"~/.gvimrc\" symlinks that point to\nfiles inside the \".vim\" directory.\n\n## Features:\n\n### `vimrc`\n\n* 2 spaces, no tabs\n* incremental, case-insensitive search\n* vertical split goes right, horizontal split goes below\n* cursor keys for movement are disabled!\n\n* `\u003cCR\u003e` - remove highlighting after search\n* `\u003cSpace\u003e` - toggle current fold\n* `\u003cC-j/k/h/l\u003e` - switch between splits (no need to prepend `\u003cC-w\u003e`)\n* `Q` - format lines\n* `:KillWhitespace` - strip trailing whitespace\n\n### File switching (Command-T)\n\n* `,,` alternates between two most recent buffers\n* `,f` - jump to file:\n  * `,F` - search in directory of current buffer\n  * `,b` - search buffer list\n  * `,gl` - search in `lib/`\n  * `,gt` - search tags\n  * `\u003cC-s\u003e`,`\u003cC-CR\u003e` - open the selected file in a new split window\n  * `\u003cC-v\u003e` - open the selected file in a new vertical split window\n  * `\u003cC-t\u003e` - open the selected file in a new tab\n  * `\u003cC-j\u003e` - select next file in the file listing\n  * `\u003cC-k\u003e` - select previous file in the file listing\n  * `\u003cC-f\u003e` - flush file cache\n\n### Ack\n\n* `:Ack -w foo_bar`\n* `:Ack!` - search, but don't jump to first match\n* `:AckFromSearch`\n* `:AckAdd` - append to existing quickfix list\n\nIn the quickfix window:\n\n* `o` - open file\n* `go` - preview file, i.e. keep focus in quickfix window\n* `t` (`T`) - open in a new tab (silently)\n* `h` (`H`) - open in horizontal split (silently)\n* `v` (`gv`) - open in vertical split (silently)\n\nIn the normal buffer:\n\n* `:cn[ext]`/`:cN/:cp[revious]` - jump to the next/previous match\n* `]q`/`[q` - same as above, with Unimpaired\n* `:ccl` - close the quickfix window\n* `:col[der]`/`:cnew[er]` - show results of previous/next search\n\n### Surround\n\n* `cs\"'` - change string from double to single quotes\n* `ds(` - delete surrounding parentheses\n* `ysiW]` - surround current WORD with square brackets\n* `ysst` - surround current line in a HTML tag\n* `ysip\u003cc-t\u003e` - nest current paragraph in a HTML tag\n\nVisual mode: `S`. Insert mode: `\u003cc-s\u003e`.\n\nSurround + rails.vim:\n\n* `-` → `\u003c% -%\u003e`\n* `=` → `\u003c%= %\u003e`\n* `#` → `\u003c%# %\u003e`\n* `e` - nest block and append `end` keyword\n* `E` - like `e`, but prompt for text to prepend before block\n\n### Argumentative\n\n* `[,`/`],` - go to previous/next argument boundary\n* `\u003c,`/`\u003e,` - shift current argument left/right\n* `a,`/`i,` - \"an argument\"/\"inner argument\" text object\n\n### Commentary\n\n* `gc{motion}` - comment/uncomment lines that {motion} moves over\n* `gcc` - comment/uncomment [count] lines\n* `{Visual}gc` - comment/uncomment the highlighted lines\n* `gcu` - uncomment the current and adjacent commented lines\n\n### ruby.vim\n\nMotions:\n\n* `]m` / `[m` - next / previous method\n* `]M` / `[M` - end of method definition\n* `]]` / `[[` - next / previous class/module\n* `][` / `[]` - end of class/module\n\nText objects:\n\n* `am` - a method\n* `im` - inner method\n* `aM` - a class\n* `iM` - inner class\n\n### CoffeeScript\n\n* `:[range]CoffeeCompile [vert]` - compile JavaScript into new buffer\n* `:CoffeeCompile watch [vert]` - open auto-updating JavaScript buffer\n* `:[range]CoffeeLint` (needs `coffeelint`)\n* `:[range]CoffeeRun` - run the resulting JavaScript\n\n### matchit.vim\n\n`%` alternates between matching HTML tags, class/control flow statements and\nmatching `end` in Ruby, and more. Also works in visual mode.\n\n### Tabular\n\nIn visual mode:\n\n* `:Tabularize assignment`\n* `:Tabularize argument_list`\n* `:Tabularize /=\u003e`\n\n### Fugitive\n\n* `:Gcommit`\n* `:Gstatus`\n  * jump between lines that represent files with `\u003cc-n\u003e`, `\u003cc-p\u003e`\n  * `-` - add/reset file (also in visual mode)\n  * `\u003cEnter\u003e` - open current file in the window below\n  * `o`/`S` - `:Gsplit`/`:Gvsplit`\n  * `p` - add/reset current file with `--patch`\n  * `D` - `:Gdiff`\n  * `c[v]c` - `:Gcommit [--verbose]`\n  * `ca`/`cA` - `--append` / reuse message\n* `:[range]Gbrowse! -` - copy GitHub URL for code that's currently selected\n* `:[range]Gblame`\n  * `q`/`gq` - close blame and return to blamed window / work tree version\n  * `\u003cCR\u003e` - q, then open commit\n  * `o`/`O` - open commit in horizontal split / new tab\n  * `-` - reblame at commit\n  * `P` - reblame at parent commit\n\n* `:Gedit feature:%` - version of the current file in the \"feature\" branch\n* `:Gwrite` - `add %`\n* `:Gread` - `checkout %` (also the bailout command after browsing git objects)\n* `:Gremove` - `rm %`\n* `:Gmove \u003cdest\u003e` - `mv % \u003cdest\u003e`\n\n* `:Glog` - load past versions of current file into the quickfix list\n* `:Glog --` - load all commits into the quickfix list\n* `:Glog -- %` - load only commits that touch the current file\n* `:Glog --grep={text} --` - only commits that have \"text\" in the message\n* `:Glog -S{text} --` - only commits that have \"text\" in the diff\n* `:Ggrep {pattern} [branch]`\n\nIn git objects:\n\n* `\u003cEnter\u003e` - jump to revision under cursor\n* `o`/`S`/`O` - jump to revision in a new split / vertical split / tab\n\nIn vimdiff view:\n\n* `[c`/`]c` - previous/next changeset\n* `:dp`/`:do` - `:diffput`/`:diffget` - stage/checkout hunk\n* `:Gwrite`/`:Gread` - stage/checkout file\n* `:do //2`/`:do //3` - resolve conflict using the version from target/merge branch\n* `:diffu[pdate]` - refresh diff highlighting\n* `:on[ly]`,`\u003cC-w\u003eo` - close windows other than the current one\n\n### Unimpaired\n\n* `[a`/`]a` - `:previous`/`:next`\n* `[A`/`]A` - `:first`/`:last`\n* `[q`/`]q` - `:cprev`/`:cnext`\n* `[Q`/`]Q` - `:cfirst`/`:clast`\n\n* `[n`/`]n` - previous/next conflict marker\n* `[\u003cSpace\u003e`/`]\u003cSpace\u003e` - add blank lines above/below the cursor\n\n* `[o{opt}`/`]o{opt}`/`co{opt}` - turn on/turn off/toggle option:\n  * `h` - \"hlsearch\"\n  * `i` - \"ignorecase\"\n  * `s` - \"spell\"\n  * `w` - \"wrap\"\n\n* `yp/P/o/O/I/A` enters insert mode as with `a/i/o/O/I/A` and sets `paste`.\n  Leaving insert mode sets 'nopaste' automatically.\n\n### Eunuch\n\n* `:Rename[!]`\n* `:SudoWrite`\n* `:Remove[!]`\n* `:Find[!] {args}` - run `find` and load results into quickfix\n* when you create a file that starts with a shebang, it gets `chmod +x`\n  automatically on first save!\n\n### Scriptease\n\n* `:Vedit` - quickly open a Vim runtime file\n  * `:Vsplit`\n  * `:Vvsplit`\n  * `:Vtabedit`\n  * `:Vpedit`\n  * `:Vread`\n* `:Runtime` - reload runtime files\n* `g!` - eval a motion or selection as VimL and replace it with the result\n\nExample:\n\n    :Vsp s/pd\u003cTab\u003e\n\n### Tbone\n\n* `:Tmux [args]` - execute a tmux command\n* `:[range]Tyank/:Tput [buffer]` - access to tmux buffer\n* `:[range]Twrite [pane]` - `tmux send-keys` to another pane\n\nExamples how to specify a pane: windowtitle.2, top-right, or last; or let it\ndefault to the previously given argument.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmislav%2Fvimfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmislav%2Fvimfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmislav%2Fvimfiles/lists"}