Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alan-w-255/awesome-vim-config
my vim configuration
https://github.com/alan-w-255/awesome-vim-config
List: awesome-vim-config
Last synced: 16 days ago
JSON representation
my vim configuration
- Host: GitHub
- URL: https://github.com/alan-w-255/awesome-vim-config
- Owner: alan-w-255
- License: mit
- Created: 2018-07-25T06:49:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-04-23T14:07:12.000Z (over 4 years ago)
- Last Synced: 2024-04-11T09:01:42.964Z (8 months ago)
- Language: Vim script
- Size: 10.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- ultimate-awesome - awesome-vim-config - My vim configuration. (Other Lists / PowerShell Lists)
README
![VIM](https://dnp4pehkvoo6n.cloudfront.net/43c5af597bd5c1a64eb1829f011c208f/as/Ultimate%20Vimrc.svg)
# The Ultimate vimrc
Over the last 10 years, I have used and tweaked Vim. This configuration is the ultimate vimrc (or at least my version of it).
There are two versions:
* **The Basic**: If you want something small just copy [basic.vim](https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim) into your ~/.vimrc and you will have a good basic setup
* **The Awesome**: Includes a ton of useful plugins, color schemes, and configurationsI would, of course, recommend using the awesome version.
## How to install the Awesome version?
### Install for your own user only
The awesome version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following from your terminal:git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh
### Install for multiple users
To install for multiple users, the repository needs to be cloned to a location accessible for all the intended users.git clone --depth=1 https://github.com/amix/vimrc.git /opt/vim_runtime
sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime user0 user1 user2
# to install for all users with home directories
sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime --all
Naturally, `/opt/vim_runtime` can be any directory, as long as all the users specified have read access.## Fonts
I recommend using [IBM Plex Mono font](https://github.com/IBM/plex) (it's an open-source and awesome font that can make your code beautiful). The Awesome vimrc is already setup to try to use it.
Some other fonts that Awesome will try to use:
* [Hack](http://sourcefoundry.org/hack/)
* [Source Code Pro](https://adobe-fonts.github.io/source-code-pro/)## How to install the Basic version?
The basic version is just one file and no plugins. Just copy [basic.vim](https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim) and paste it into your vimrc.
The basic version is useful to install on remote servers where you don't need many plugins, and you don't do many edits.
git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_basic_vimrc.sh## How to install on Windows?
Use [gitforwindows](http://gitforwindows.org/) to checkout the repository and run the installation instructions above. No special instructions needed ;-)
## How to install on Linux
If you have vim aliased as `vi` instead of `vim`, make sure to either alias it: `alias vi=vim`. Otherwise, `apt-get install vim`
## How to update to latest version?
Just do a git rebase!
cd ~/.vim_runtime
git pull --rebase## Some screenshots
Colors when editing a Python file:
![Screenshot 1](https://dnp4pehkvoo6n.cloudfront.net/07583008e4da885801657e8781777844/as/Python%20editing.png)
Opening recently opened files with the [mru.vim](https://github.com/vim-scripts/mru.vim) plugin:
![Screenshot 2](https://dnp4pehkvoo6n.cloudfront.net/1d49a88f9bd5d013c025bb1e1272a7d8/as/MRU%20plugin.png)
[NERD Tree](https://github.com/scrooloose/nerdtree) plugin in a terminal window:
![Screenshot 3](https://dnp4pehkvoo6n.cloudfront.net/ae719203166585d64728f28398f4b1b7/as/Terminal%20usage.png)Distraction free mode using [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2):
![Screenshot 4](https://dnp4pehkvoo6n.cloudfront.net/f0dcc4c9739148c56cbf8285a910ac41/as/Zen%20mode.png)## Included Plugins
I recommend reading the docs of these plugins to understand them better. Each plugin provides a much better Vim experience!
* [ack.vim](https://github.com/mileszs/ack.vim): Vim plugin for `the_silver_searcher` (ag) or ack -- a wicked fast grep
* [bufexplorer.zip](https://github.com/vim-scripts/bufexplorer.zip): Quickly and easily switch between buffers. This plugin can be opened with ``
* [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim): Fuzzy file, buffer, mru and tag finder. It's mapped to ``
* [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2):
* [lightline.vim](https://github.com/itchyny/lightline.vim): A light and configurable statusline/tabline for Vim
* [NERD Tree](https://github.com/scrooloose/nerdtree): A tree explorer plugin for vim
* [mru.vim](https://github.com/vim-scripts/mru.vim): Plugin to manage Most Recently Used (MRU) files. This plugin can be opened with ``
* [open_file_under_cursor.vim](https://github.com/amix/open_file_under_cursor.vim): Open file under cursor when pressing `gf`
* [pathogen.vim](https://github.com/tpope/vim-pathogen): Manage your vim runtimepath
* [snipmate.vim](https://github.com/garbas/vim-snipmate): snipmate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim
* [ale](https://github.com/w0rp/ale): Syntax and lint checking for vim (async)
* [vim-commentary](https://github.com/tpope/vim-commentary): Comment stuff out. Use `gcc` to comment out a line (takes a count), `gc` to comment out the target of a motion. `gcu` uncomments a set of adjacent commented lines.
* [vim-expand-region](https://github.com/terryma/vim-expand-region): Allows you to visually select increasingly larger regions of text using the same key combination
* [vim-fugitive](https://github.com/tpope/vim-fugitive): A Git wrapper so awesome, it should be illegal
* [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object): Defines a new text object representing lines of code at the same indent level. Useful for python/vim scripts
* [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors): Sublime Text style multiple selections for Vim, CTRL+N is remapped to CTRL+S (due to YankRing)
* [vim-yankstack](https://github.com/maxbrunsfeld/vim-yankstack): Maintains a history of previous yanks, changes and deletes
* [vim-zenroom2](https://github.com/amix/vim-zenroom2) Remove all clutter and focus only on the essential. Similar to iA Writer or Write Room## Included color schemes
* [peaksea](https://github.com/vim-scripts/peaksea): The default
* [vim-colors-solarized](https://github.com/altercation/vim-colors-solarized)
* [vim-irblack](https://github.com/wgibbs/vim-irblack)
* [mayansmoke](https://github.com/vim-scripts/mayansmoke)
* [vim-pyte](https://github.com/therubymug/vim-pyte)## Included modes
* [vim-coffee-script](https://github.com/kchmck/vim-coffee-script)
* [vim-less](https://github.com/groenewege/vim-less)
* [vim-bundle-mako](https://github.com/sophacles/vim-bundle-mako)
* [vim-markdown](https://github.com/tpope/vim-markdown)
* [nginx.vim](https://github.com/vim-scripts/nginx.vim): Highlights configuration files for nginx
* [vim-go](https://github.com/fatih/vim-go)## How to include your own stuff?
After you have installed the setup, you can create **~/.vim_runtime/my_configs.vim** to fill in any configurations that are important for you. For instance, my **my_configs.vim** looks like this:
~/.vim_runtime (master)> cat my_configs.vim
map ct :cd ~/Desktop/Todoist/todoist
map cw :cd ~/Desktop/Wedoist/wedoistYou can also install your plugins, for instance, via pathogen you can install [vim-rails](https://github.com/tpope/vim-rails):
cd ~/.vim_runtime
git clone git://github.com/tpope/vim-rails.git my_plugins/vim-rails## Key Mappings
The [leader](http://learnvimscriptthehardway.stevelosh.com/chapters/06.html#leader) is `,`, so whenever you see `` it means `,`.
### Plugin related mappings
Open [bufexplorer](https://github.com/vim-scripts/bufexplorer.zip) to see and manage the current buffers (`o`):
map o :BufExplorerOpen [MRU.vim](https://github.com/vim-scripts/mru.vim) to see the recently open files (`f`):
map f :MRU
Open [ctrlp.vim](https://github.com/kien/ctrlp.vim) plugin to quickly find a file or a buffer (`j` or `f`):
let g:ctrlp_map = ''[NERD Tree](https://github.com/scrooloose/nerdtree) mappings:
map nn :NERDTreeToggle
map nb :NERDTreeFromBookmark
map nf :NERDTreeFind[goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2) lets you only focus on one thing at a time. It removes all the distractions and centers the content. It has a special look when editing Markdown, reStructuredText and textfiles. It only has one mapping. (`z`)
map z :Goyo
### Normal mode mappings
Fast saving of a buffer (`w`):
nmap w :w!
Map `` to `/` (search) and `+` to `?` (backwards search):
map /
map ?
map :nohDisable highlights when you press ``:
map :nohSmart way to move between windows (`j` etc.):
map j
map k
map h
map lClosing of the current buffer(s) (`bd` and (`ba`)):
" Close current buffer
map bd :Bclose
" Close all buffers
map ba :1,1000 bd!
Useful mappings for managing tabs:
map tn :tabnew
map to :tabonly
map tc :tabclose
map tm :tabmove
" Opens a new tab with the current buffer's path
" Super useful when editing files in the same directory
map te :tabedit =expand("%:p:h")/
Switch [CWD](http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file) to the directory of the open buffer:
map cd :cd %:p:h:pwd
Open `ack.vim` for fast search:
map g :AckQuickly open a buffer for scripbble:
map q :e ~/bufferToggle paste mode on and off:
map pp :setlocal paste!### Visual mode mappings
Visual mode pressing `*` or `#` searches for the current selection:
vnoremap * :call VisualSelection('f')
vnoremap # :call VisualSelection('b')When you press gv you `Ack.vim` after the selected text:
vnoremap gv :call VisualSelection('gv', '')
When you press `r` you can search and replace the selected text:
vnoremap r :call VisualSelection('replace')
Surround the visual selection in parenthesis/brackets/etc.:
vnoremap $1 `>a)`
vnoremap $2 `>a]`
vnoremap $3 `>a}`
vnoremap $$ `>a"`
vnoremap $q `>a'`
vnoremap $e `>a"`### Insert mode mappings
Quickly insert parenthesis/brackets/etc.:
inoremap $1 ()i
inoremap $2 []i
inoremap $3 {}i
inoremap $4 {o}O
inoremap $q ''i
inoremap $e ""i
inoremap $t <>iInsert the current date and time (useful for timestamps):
iab xdate =strftime("%d/%m/%y %H:%M:%S")
### Command line mappings
$q is super useful when browsing on the command line. It deletes everything until the last slash:
cno $q eDeleteTillSlash()
Bash like keys for the command line:
cnoremap
cnoremap
cnoremapcnoremap
cnoremapWrite the file as sudo (works only on Unix). Super useful when you open a file and you don't have permissions to save your changes. [Vim tip](http://vim.wikia.com/wiki/Su-write):
:W
### Spell checking
Pressing `ss` will toggle spell checking:map ss :setlocal spell!
Shortcuts using `` instead of special characters:
map sn ]s
map sp [s
map sa zg
map s? z=### Cope
Query `:help cope` if you are unsure what cope is. It's super useful!When you search with `Ack.vim`, display your results in cope by doing:
`cc`To go to the next search result do:
`n`To go to the previous search results do:
`p`Cope mappings:
map cc :botright cope
map co ggVGy:tabnew:set syntax=qfpgg
map n :cn
map p :cp## How to uninstall
Just do following:
* Remove `~/.vim_runtime`
* Remove any lines that reference `.vim_runtime` in your `~/.vimrc`## Doist
Maintaining this Vim configuration isn't my day job. Daily I am the founder of [Doist](https://doist.com/). You could come and help us build the workplace of the future while living a balanced life (anywhere in the world 🌍🌎🌏).
PS: Using Vim isn't a requirement 😄