From ffd7de47c01e96857215822114d5b20b952a1ee4 Mon Sep 17 00:00:00 2001 From: Caleb Taylor Date: Tue, 6 Aug 2019 16:24:33 -0700 Subject: [PATCH] changed readme --- README.md | 340 ++---------------------------------------------------- 1 file changed, 11 insertions(+), 329 deletions(-) diff --git a/README.md b/README.md index 9ba1275a..52c4f231 100644 --- a/README.md +++ b/README.md @@ -1,337 +1,19 @@ -![VIM](https://dnp4pehkvoo6n.cloudfront.net/43c5af597bd5c1a64eb1829f011c208f/as/Ultimate%20Vimrc.svg) +# The Ultimate vimrc - My-Addons Edition -# The Ultimate vimrc +Additional mappings and a few modifications. [EasyMotion](https://github.com/easymotion/vim-easymotion) is included in the plugins. -Over the last 10 years, I have used and tweaked Vim. This configuration is the ultimate vimrc (or at least my version of it). +## How to install the My-Addons branch? -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 configurations - -I 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 - + git clone -b my-addons --single-branch --depth=1 https://github.com/aquaductape/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/wedoist - -You 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 :BufExplorer - -Open [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 :noh - -Disable highlights when you press ``: - - map :noh - -Smart way to move between windows (`j` etc.): - - map j - map k - map h - map l - -Closing 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 :Ack - -Quickly open a buffer for scripbble: - - map q :e ~/buffer - -Toggle 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 <>i - -Insert 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 - cnoremap - - cnoremap - cnoremap - -Write 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 😄 + git clone -b my-addons --single-branch --depth=1 https://github.com/aquaductape/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