{"id":27361335,"url":"https://github.com/mkropat/vim-dwiw2015","last_synced_at":"2025-07-11T09:35:13.062Z","repository":{"id":14778817,"uuid":"17500577","full_name":"mkropat/vim-dwiw2015","owner":"mkropat","description":"Minimalist Vim distribution","archived":false,"fork":false,"pushed_at":"2019-06-26T13:38:02.000Z","size":63,"stargazers_count":14,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-13T01:40:02.548Z","etag":null,"topics":["vim"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkropat.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":"2014-03-07T02:42:39.000Z","updated_at":"2023-09-08T16:46:01.000Z","dependencies_parsed_at":"2022-09-07T04:00:16.027Z","dependency_job_id":null,"html_url":"https://github.com/mkropat/vim-dwiw2015","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mkropat/vim-dwiw2015","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkropat%2Fvim-dwiw2015","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkropat%2Fvim-dwiw2015/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkropat%2Fvim-dwiw2015/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkropat%2Fvim-dwiw2015/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkropat","download_url":"https://codeload.github.com/mkropat/vim-dwiw2015/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkropat%2Fvim-dwiw2015/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264777823,"owners_count":23662555,"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","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":["vim"],"created_at":"2025-04-13T01:40:00.029Z","updated_at":"2025-07-11T09:35:13.021Z","avatar_url":"https://github.com/mkropat.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dwiw2015.vim — Vim Do What I Want\n\n*Sensible Defaults For A Modern Text Editor*\n\n__2017/4/23 Update:__ Now that [Vim 8 is out](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt), a number of improvements that this distribution makes no longer make sense (thanks to better defaults and built-in plugin suport). It is unlikely future development will go into dwiw2015.vim, outside of re-working it into a brand new distribution built for Vim 8.\n\nBuilding on top of [Tim Pope's\nsensible.vim](https://github.com/tpope/vim-sensible/), **vim-dwiw is a minimal\nVim distribution** that sets up Vim with the behavior and features that you\nwould expect from a modern text editor.\n\nBenefits at a glance:\n\n- One-step install for Windows, Linux, and OS X\n- No cruft in your `.vimrc`, since default settings are cleanly segregated into a plug-in\n- Modern plug-in management with [Vundle](https://github.com/gmarik/Vundle.vim)\n- Includes a __small__ [curated set of plug-ins](#modern-features) to provide modern text editor functionality\n- Optimized for both Terminal and GUI Vim\n\nVim-dwiw is well suited for new Vim users.  It smoothes out the roughest of\nedges of Vim (the stuff that no longer makes sense today), but in a way that\ndoesn't try to change or go far beyond the core Vim behavior.\n\nAnd for experienced users, vim-dwiw cuts out the boilerplate code that you and\neveryone else puts in their `.vimrc`, making it that much easier to get Vim\nconfigured on a new machine.\n\n## Installation\n\n### Linux, OS X, and Friends\n\nOne command will get you going:\n\n    curl -sS https://raw.githubusercontent.com/mkropat/vim-dwiw2015/master/bootstrap.sh | sh\n\nIt should be safe to run — even on an existing Vim set up. See the [bootstrap\nscript source](bootstrap.sh) for details.\n\n### Windows\n\nAssuming you have [Chocolatey](http://chocolatey.org/) installed, open a\ncommand prompt and run:\n\n    cinst vim-dwiw2015\n\nIt should be safe to run — even on an existing Vim set up. See the [bootstrap\nscript source](bootstrap.ps1) for details.\n\nAlternatively, you can download the [bootstrap script](bootstrap.ps1) and run\nit manually from the PowerShell console:\n\n    \u0026 .\\bootstrap.ps1\n\n### Plug-in Only\n\nIf you already have Vundle set up and the plug-ins you want installed, you can\ninclude just the **dwiw2015.vim** plug-in by adding the following lines to your\n`.vimrc`:\n\n    Plugin 'tpope/vim-sensible'\n    Plugin 'mkropat/vim-dwiw2015'\n\n(dwiw2015.vim pairs best with vim-sensible)\n\nAnd then run the following from Vim:\n\n    :PluginInstall\n\n## Updating\n\nIf you've already installed vim-dwiw, you can update the **dwiw2015.vim**\nplug-in and all other installed plugins to the latest version by running the\nfollowing from Vim:\n\n    :PluginUpdate\n\n## Default Settings\n\nThe authoritative source for the provided default settings is the\n(well-documented) [source file itself](plugin/dwiw2015.vim).\n\n### New Key Shortcuts\n\nVim-dwiw adds in the most ubiquitous editor shortcuts, and makes some\nold key mappings act a little more modern.\n\n#### All Modes\n\nShortcut           | Description\n-------------------|-------------------------------\n\u003ckbd\u003eCtrl-A\u003c/kbd\u003e  | select all\n\u003ckbd\u003eCtrl-S\u003c/kbd\u003e  | save\n\u003ckbd\u003eCtrl-Z\u003c/kbd\u003e  | undo (GUI only)\n\n#### Normal / Visual Mode\n\nShortcut               | Description\n-----------------------|-------------------------------\n\u003ckbd\u003eCtrl-Q\u003c/kbd\u003e      | enter Visual Block mode\n\u003ckbd\u003eCtrl-V\u003c/kbd\u003e      | paste from clipboard (GUI only)\n\u003ckbd\u003eCtrl-/\u003c/kbd\u003e      | toggles commenting of selected line(s) (Terminal only; not all terminals supported)\n\u003ckbd\u003eQ\u003c/kbd\u003e`{motion}` | format specified lines (like `gq`)\n\u003ckbd\u003egQ\u003c/kbd\u003e          | enter Ex mode (since `Q` is re-mapped)\n\u003ckbd\u003ej\u003c/kbd\u003e           | move down one line on the screen\n\u003ckbd\u003egj\u003c/kbd\u003e          | move down one line in the file\n\u003ckbd\u003ek\u003c/kbd\u003e           | move up one line on the screen\n\u003ckbd\u003egk\u003c/kbd\u003e          | move up one line in the file\n\n#### Normal Mode Only\n\nShortcut                  | Description\n--------------------------|-------------------------------\n\u003ckbd\u003e\u0026amp;\u003c/kbd\u003e          | repeat last `:s` substitue (preserves flags)\n\u003ckbd\u003eY\u003c/kbd\u003e              | yank to end of line (to be consistent with \u003ckbd\u003eC\u003c/kbd\u003e and \u003ckbd\u003eD\u003c/kbd\u003e)\n\u003ckbd\u003eEnter\u003c/kbd\u003e          | insert blank line above current\n\u003ckbd\u003eCtrl-Tab\u003c/kbd\u003e       | switch to next tab (GUI only)\n\u003ckbd\u003eCtrl-Shift-Tab\u003c/kbd\u003e | switch to previous tab (GUI only)\n\u003ckbd\u003eCtrl-L\u003c/kbd\u003e         | clear search term highlighting\n\n#### Visual Mode Only\n\nShortcut           | Description\n-------------------|-------------------------------\n\u003ckbd\u003eCtrl-C\u003c/kbd\u003e  | copy selection to clipboard (GUI only)\n\u003ckbd\u003eCtrl-X\u003c/kbd\u003e  | cut selection to clipboard (GUI only)\n\n#### Insert Mode\n\nShortcut             | Description\n---------------------|-------------------------------\n\u003ckbd\u003eTab\u003c/kbd\u003e       | indent at beginning of line, otherwise autocomplete\n\u003ckbd\u003eShift-Tab\u003c/kbd\u003e | select previous autocompletion\n\u003ckbd\u003eCtrl-Q\u003c/kbd\u003e    | insert literal character\n\u003ckbd\u003eCtrl-V\u003c/kbd\u003e    | paste from clipboard (GUI only)\n\n### Overriding the Defaults\n\nAdd your custom settings to `.vimrc` **after** the hook line `source …\ndwiw-loader.vim`. The `dwiw-loader.vim` script pre-loads both the\n`dwiw2015.vim` and `sensible.vim` plugins, allowing you to set custom overrides\nin your `.vimrc`.\n\n## Modern Features\n\nVim-dwiw ships with a number of plug-ins out-of-the-box:\n\n- [ag.vim](https://github.com/rking/ag.vim) — like `grep`, but better\n- [ctrlp.vim](https://github.com/kien/ctrlp.vim) — fuzzy file, buffer, mru, tag, etc finder\n- [vim-airline](https://github.com/bling/vim-airline) — lean \u0026 mean status/tabline for Vim that's light as air\n- [vim-commentary](https://github.com/tpope/vim-commentary) — comment and un-comment lines easily\n- [vim-sensible](https://github.com/tpope/vim-sensible) — defaults everyone can agree on\n- [vim-sleuth](https://github.com/tpope/vim-sleuth) — heuristically set buffer options\n- [Vundle](https://github.com/gmarik/Vundle.vim) — the plug-in manager for Vim\n\n### Plug-in Management\n\nInstall packages straight from Vim at any time with\n[Vundle](https://github.com/gmarik/Vundle.vim).  For example, to install Tim\nPope's fantastic Git wrapper, available on Github at\n[tpope/vim-fugitive](https://github.com/tpope/vim-fugitive), simply add the\nfollowing line to your `.vimrc`:\n\n    Plugin 'tpope/vim-fugitive'\n\nThen run `:PluginInstall`.\n\nTo update all installed plugins to the latest version, run `:PluginUpdate`.\n\n### Fuzzy-Filename Open\n\n![Screenshot](http://i.imgur.com/ElV0Tjr.png)\n\nVim's built-in file opener and swtiching (see `:help :e` and `:help :b`) works\nfine, but for truly fast file-switching you need a fuzzy-file opener, like the\n[ctrlp plug-in](http://kien.github.io/ctrlp.vim/).  Pressing \u003ckbd\u003eCtrl-P\u003c/kbd\u003e\nin normal mode activates the the plug-in.  Once activated, start typing any\npart of the filename you're interested (`partial/paths` work too) and press\n\u003ckbd\u003eEnter\u003c/kbd\u003e to open the file.\n\n### Find In Files\n\n![Screenshot](http://i.imgur.com/4N8XtLR.png)\n\nVim already provides an interface to the `grep` command with `:grep`, however\nthe `grep` command is less than ideal for searching most directories, because\nit automatically searches inside lots of irrelevant filetypes (like compiled\nfiles, version control internals, etc.).\n\nA better alternative is [The Silver\nSearcher](http://geoff.greer.fm/2011/12/27/the-silver-searcher-better-than-ack/)\na.k.a. `ag`.  Using the [ack.vim plug-in](https://github.com/mileszs/ack.vim)\n(configured for `ag`), you can search straight from Vim with the command `:Ack\n\u003csearch terms\u003e`.\n\nNote: before `ag.vim` can be used, the The Silver Searcher must be installed.\nFortunately, packages exist for all the major platforms (called perhaps\n`silversearcher-ag` or `the_silver_searcher`) and it's installed automatically\nfor you on Windows by Chocolatey!\n\n### Informative Statusline\n\n![Screenshot](http://i.imgur.com/3NcgspK.png)\n\nVim-dwiw includes the [vim-airline\nplug-in](https://github.com/bling/vim-airline), which packs a whole lot of\ninformation into your status while looking great at the same time.\n\n### Toggle Line Commenting With a Single Keypress\n\n(Terminal Only) Press \u003ckbd\u003eCtrl-/\u003c/kbd\u003e to comment out the current line (or\nun-comment it, if it's currently commented out).  Select multiple lines in\nVisual mode and press \u003ckbd\u003eCtrl-/\u003c/kbd\u003e to comment them all out.\n\n(All Versions) Or more powerfully, use Vim motions with \u003ckbd\u003egc\u003c/kbd\u003e to\ncomment out any sized block of code:\n\n- \u003ckbd\u003egcap\u003c/kbd\u003e — comment out the current paragraph\n- \u003ckbd\u003egcG\u003c/kbd\u003e — comment out the rest of the file\n- etc.\n\n### Auto-Detection of Indent Settings\n\nWe all have our preferred idea of how far to indent and when to use tabs vs\nspaces, but when editing a file created by someone else, the important thing is\n*to stay consistent with their indent settings*.  The [sleuth.vim\nplug-in](https://github.com/tpope/vim-sleuth) inspects newly opened files and\nsets the relevant settings (`shiftwidth` and `expandtab`) automatically.\n\n## Troubleshooting\n\n#### Slow Scrolling\n\nIf you experience slow scrolling in `:list` mode in a file with long lines, the\nissue may be a result of [the font in use misisng certain\ncharacters](https://code.google.com/p/vim/issues/detail?id=210).  As a\nworkaround, you can set the following in your `.vimrc` to display ascii\ncharacters (which are present in any font):\n\n    set listchars=tab:\u003e\\ ,trail:-,extends:\u003e,precedes:\u003c,nbsp:+\n\n## Inspiration\n\nI may be proficient at editing with Vim, but I'm a novice when it comes to Vim\ncustomization.  Without reading other people's `.vimrc` files and plug-in\nsource code, I'd have gotten nowhere.  Particular shout-outs go to:\n\n* Tim Pope's [vim-sensible](https://github.com/tpope/vim-sensible) and [vimrc](https://github.com/tpope/tpope/blob/master/.vimrc)\n* Gary Bernhardt's [vimrc](https://github.com/garybernhardt/dotfiles/blob/master/.vimrc)\n* Steve Losh's [Learn Vimscript the Hard Way](http://learnvimscriptthehardway.stevelosh.com/), [Vim blog post](http://stevelosh.com/blog/2010/09/coming-home-to-vim/) and [vimrc](https://bitbucket.org/sjl/dotfiles/src/tip/vim/vimrc)\n* Bailey Ling's [vimrc](https://github.com/bling/dotvim/blob/master/vimrc)\n* Steve Francia's [everything and the kitchen sink Vim distribution](http://vim.spf13.com/)\n\n## License\n\nCopyright © Michael Kropat.  Distributed under the same terms as Vim itself.\nSee `:help license`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkropat%2Fvim-dwiw2015","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkropat%2Fvim-dwiw2015","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkropat%2Fvim-dwiw2015/lists"}