mirror of
https://github.com/mhinz/vim-galore.git
synced 2025-02-24 01:59:28 +08:00
Bigger headings for better separation
This commit is contained in:
parent
aa404e7d8b
commit
9518a934bd
196
README.md
196
README.md
@ -10,7 +10,7 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### [Intro](#intro-1)
|
## [Intro](#intro-1)
|
||||||
|
|
||||||
- [What is Vim?](#what-is-vim)
|
- [What is Vim?](#what-is-vim)
|
||||||
- [The Vim Philosophy](#the-vim-philosophy)
|
- [The Vim Philosophy](#the-vim-philosophy)
|
||||||
@ -19,7 +19,7 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
- [What kind of Vim am I running?](#what-kind-of-vim-am-i-running)
|
- [What kind of Vim am I running?](#what-kind-of-vim-am-i-running)
|
||||||
- [Cheatsheets](#cheatsheets)
|
- [Cheatsheets](#cheatsheets)
|
||||||
|
|
||||||
#### [Basics](#basics-1)
|
## [Basics](#basics-1)
|
||||||
|
|
||||||
- [Buffers, windows, tabs?](#buffers-windows-tabs)
|
- [Buffers, windows, tabs?](#buffers-windows-tabs)
|
||||||
- [Active, loaded, listed, named buffers?](#active-loaded-listed-named-buffers)
|
- [Active, loaded, listed, named buffers?](#active-loaded-listed-named-buffers)
|
||||||
@ -41,7 +41,7 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
- [Sessions?](#sessions)
|
- [Sessions?](#sessions)
|
||||||
- [Locality?](#locality)
|
- [Locality?](#locality)
|
||||||
|
|
||||||
#### [Usage](#usage-1)
|
## [Usage](#usage-1)
|
||||||
|
|
||||||
- [Getting help offline](#getting-help-offline)
|
- [Getting help offline](#getting-help-offline)
|
||||||
- [Getting help offline (alternative)](#getting-help-offline-alternative)
|
- [Getting help offline (alternative)](#getting-help-offline-alternative)
|
||||||
@ -59,7 +59,7 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
- [Cscope](#cscope)
|
- [Cscope](#cscope)
|
||||||
- [MatchIt](#matchit)
|
- [MatchIt](#matchit)
|
||||||
|
|
||||||
#### [Tips](#tips-1)
|
## [Tips](#tips-1)
|
||||||
|
|
||||||
- [Saner behavior of n and N](#saner-behavior-of-n-and-n)
|
- [Saner behavior of n and N](#saner-behavior-of-n-and-n)
|
||||||
- [Saner command-line history](#saner-command-line-history)
|
- [Saner command-line history](#saner-command-line-history)
|
||||||
@ -77,13 +77,13 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
- [Faster keyword completion](#faster-keyword-completion)
|
- [Faster keyword completion](#faster-keyword-completion)
|
||||||
- [Cosmetic changes to colorschemes](#cosmetic-changes-to-colorschemes)
|
- [Cosmetic changes to colorschemes](#cosmetic-changes-to-colorschemes)
|
||||||
|
|
||||||
#### [Commands](#commands-1)
|
## [Commands](#commands-1)
|
||||||
|
|
||||||
- [:global](#global) - Execute a command on all matching lines.
|
- [:global](#global) - Execute a command on all matching lines.
|
||||||
- [:normal and :execute](#normal-and-execute) - The scripting dream team.
|
- [:normal and :execute](#normal-and-execute) - The scripting dream team.
|
||||||
- [:redir](#redir) - Redirect messages.
|
- [:redir](#redir) - Redirect messages.
|
||||||
|
|
||||||
#### [Debugging](#debugging-1)
|
## [Debugging](#debugging-1)
|
||||||
|
|
||||||
- [General tips](#general-tips)
|
- [General tips](#general-tips)
|
||||||
- [Verbosity](#verbosity)
|
- [Verbosity](#verbosity)
|
||||||
@ -92,7 +92,7 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
- [Debugging Vim scripts](#debugging-vim-scripts)
|
- [Debugging Vim scripts](#debugging-vim-scripts)
|
||||||
- [Debugging syntax files](#debugging-syntax-files)
|
- [Debugging syntax files](#debugging-syntax-files)
|
||||||
|
|
||||||
#### [Miscellaneous](#miscellaneous-1)
|
## [Miscellaneous](#miscellaneous-1)
|
||||||
|
|
||||||
- [Additional resources](#additional-resources)
|
- [Additional resources](#additional-resources)
|
||||||
- [Vim distributions](#vim-distributions)
|
- [Vim distributions](#vim-distributions)
|
||||||
@ -101,7 +101,7 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
- [Easter eggs](#easter-eggs)
|
- [Easter eggs](#easter-eggs)
|
||||||
- [Why hjkl for navigation?](#why-hjkl-for-navigation)
|
- [Why hjkl for navigation?](#why-hjkl-for-navigation)
|
||||||
|
|
||||||
#### [Quirks](#quirks-1)
|
## [Quirks](#quirks-1)
|
||||||
|
|
||||||
- [Editing small files is slow](#editing-small-files-is-slow)
|
- [Editing small files is slow](#editing-small-files-is-slow)
|
||||||
- [Editing huge files is slow](#editing-huge-files-is-slow)
|
- [Editing huge files is slow](#editing-huge-files-is-slow)
|
||||||
@ -109,15 +109,15 @@ My [vimrc](https://github.com/mhinz/dotfiles/blob/master/vim/vimrc).
|
|||||||
- [Bracketed paste (or why do I have to set 'paste' all the time?)](#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time)
|
- [Bracketed paste (or why do I have to set 'paste' all the time?)](#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time)
|
||||||
- [Delays when using escape key in terminal](#delays-when-using-escape-key-in-terminal)
|
- [Delays when using escape key in terminal](#delays-when-using-escape-key-in-terminal)
|
||||||
|
|
||||||
#### [List of colorschemes](#list-of-colorschemes-1)
|
## [List of colorschemes](#list-of-colorschemes-1)
|
||||||
|
|
||||||
#### [List of plugins](content/plugins.md)
|
## [List of plugins](content/plugins.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Intro
|
# Intro
|
||||||
|
|
||||||
#### What is Vim?
|
## What is Vim?
|
||||||
|
|
||||||
[Vim](http://www.vim.org) is a text editor with a long line of ancestors that
|
[Vim](http://www.vim.org) is a text editor with a long line of ancestors that
|
||||||
goes back to [qed](https://en.wikipedia.org/wiki/QED_(text_editor)). [Bram
|
goes back to [qed](https://en.wikipedia.org/wiki/QED_(text_editor)). [Bram
|
||||||
@ -139,7 +139,7 @@ Read [Why, oh WHY, do those #?@! nutheads use
|
|||||||
vi?](http://www.viemu.com/a-why-vi-vim.html) to see common misconceptions about
|
vi?](http://www.viemu.com/a-why-vi-vim.html) to see common misconceptions about
|
||||||
Vim explained.
|
Vim explained.
|
||||||
|
|
||||||
#### The Vim Philosophy
|
## The Vim Philosophy
|
||||||
|
|
||||||
Vim adheres to the modal editing philosophy. This means that it provides
|
Vim adheres to the modal editing philosophy. This means that it provides
|
||||||
multiple modes and the meaning of keys changes according to the mode. You
|
multiple modes and the meaning of keys changes according to the mode. You
|
||||||
@ -165,7 +165,7 @@ over already. This reduces [cognitive
|
|||||||
load](https://en.wikipedia.org/wiki/Cognitive_load) and helps to focus on the
|
load](https://en.wikipedia.org/wiki/Cognitive_load) and helps to focus on the
|
||||||
actual task.
|
actual task.
|
||||||
|
|
||||||
#### First steps
|
## First steps
|
||||||
|
|
||||||
Vim comes bundled with an interactive tutorial that teaches the most basic
|
Vim comes bundled with an interactive tutorial that teaches the most basic
|
||||||
things you need to know about. You can start it from the shell:
|
things you need to know about. You can start it from the shell:
|
||||||
@ -201,7 +201,7 @@ One last advice: Please learn how to use Vim properly before starting to add all
|
|||||||
kinds of hyped [plugins](#managing-plugins) that only implement features that
|
kinds of hyped [plugins](#managing-plugins) that only implement features that
|
||||||
Vim already supports natively.
|
Vim already supports natively.
|
||||||
|
|
||||||
#### Minimal vimrc
|
## Minimal vimrc
|
||||||
|
|
||||||
The user vimrc can be put into `~/.vimrc` or for the sake of better separation
|
The user vimrc can be put into `~/.vimrc` or for the sake of better separation
|
||||||
into `~/.vim/vimrc`. The latter makes it easy to put the entire configuration
|
into `~/.vim/vimrc`. The latter makes it easy to put the entire configuration
|
||||||
@ -224,7 +224,7 @@ vimrc on Github (often in a repository called "vim-config" or "dotfiles"), so
|
|||||||
whenever you find a plugin you like, look up its maintainer's Github page and
|
whenever you find a plugin you like, look up its maintainer's Github page and
|
||||||
look through the repositories.
|
look through the repositories.
|
||||||
|
|
||||||
#### What kind of Vim am I running?
|
## What kind of Vim am I running?
|
||||||
|
|
||||||
Looking at `:version` will give you all the information you need to know about
|
Looking at `:version` will give you all the information you need to know about
|
||||||
how the currently running Vim binary was compiled.
|
how the currently running Vim binary was compiled.
|
||||||
@ -270,7 +270,7 @@ Related help:
|
|||||||
:h has-patch
|
:h has-patch
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Cheatsheets
|
## Cheatsheets
|
||||||
|
|
||||||
- http://people.csail.mit.edu/vgod/vim/vim-cheat-sheet-en.png
|
- http://people.csail.mit.edu/vgod/vim/vim-cheat-sheet-en.png
|
||||||
- https://cdn.shopify.com/s/files/1/0165/4168/files/preview.png
|
- https://cdn.shopify.com/s/files/1/0165/4168/files/preview.png
|
||||||
@ -280,9 +280,9 @@ Related help:
|
|||||||
|
|
||||||
Or quickly open a cheatsheet from within Vim: [vim-cheat40](https://github.com/lifepillar/vim-cheat40).
|
Or quickly open a cheatsheet from within Vim: [vim-cheat40](https://github.com/lifepillar/vim-cheat40).
|
||||||
|
|
||||||
## Basics
|
# Basics
|
||||||
|
|
||||||
#### Buffers, windows, tabs?
|
## Buffers, windows, tabs?
|
||||||
|
|
||||||
Vim is a text editor. Every time text is shown, the text is part of a
|
Vim is a text editor. Every time text is shown, the text is part of a
|
||||||
**buffer**. Each file will be opened in its own buffer. Plugins show stuff in
|
**buffer**. Each file will be opened in its own buffer. Plugins show stuff in
|
||||||
@ -311,7 +311,7 @@ tab page that holds one window that shows one buffer.
|
|||||||
By the way, the buffer list is global and you can access any buffer from any
|
By the way, the buffer list is global and you can access any buffer from any
|
||||||
tab.
|
tab.
|
||||||
|
|
||||||
#### Active, loaded, listed, named buffers?
|
## Active, loaded, listed, named buffers?
|
||||||
|
|
||||||
Run Vim like this `vim file1`. The file's content will be loaded into a buffer.
|
Run Vim like this `vim file1`. The file's content will be loaded into a buffer.
|
||||||
You have a **loaded buffer** now. The content of the buffer is only synchronized
|
You have a **loaded buffer** now. The content of the buffer is only synchronized
|
||||||
@ -331,7 +331,7 @@ associated filename. E.g. `:enew` will create an unnamed scratch buffer. Add
|
|||||||
some text and write it to disk via `:w /tmp/foo`, and it will become a named
|
some text and write it to disk via `:w /tmp/foo`, and it will become a named
|
||||||
buffer.
|
buffer.
|
||||||
|
|
||||||
#### Argument list?
|
## Argument list?
|
||||||
|
|
||||||
The [global buffer list](#buffers-windows-tabs) is a Vim thing. Before that, in
|
The [global buffer list](#buffers-windows-tabs) is a Vim thing. Before that, in
|
||||||
vi, there only used to be the argument list, which is also available in Vim.
|
vi, there only used to be the argument list, which is also available in Vim.
|
||||||
@ -362,7 +362,7 @@ from the current directory and below.
|
|||||||
|
|
||||||
Related help: `:h argument-list`
|
Related help: `:h argument-list`
|
||||||
|
|
||||||
#### Mappings?
|
## Mappings?
|
||||||
|
|
||||||
You can define your own mappings with the `:map` family of commands. Each
|
You can define your own mappings with the `:map` family of commands. Each
|
||||||
command of that family defines a mapping for a certain set of modes. Technically
|
command of that family defines a mapping for a certain set of modes. Technically
|
||||||
@ -433,7 +433,7 @@ Related help:
|
|||||||
:h mapping
|
:h mapping
|
||||||
:h 05.3
|
:h 05.3
|
||||||
|
|
||||||
#### Mapleader?
|
## Mapleader?
|
||||||
|
|
||||||
The mapleader is simply a placeholder than can be used with custom mappings and
|
The mapleader is simply a placeholder than can be used with custom mappings and
|
||||||
is set to `\` by default.
|
is set to `\` by default.
|
||||||
@ -460,7 +460,7 @@ already, so use it to double-check your mappings.
|
|||||||
|
|
||||||
See `:h mapleader` and `:h maplocalleader` for more.
|
See `:h mapleader` and `:h maplocalleader` for more.
|
||||||
|
|
||||||
#### Registers?
|
## Registers?
|
||||||
|
|
||||||
Registers are slots that save text. Copying text into a register is called
|
Registers are slots that save text. Copying text into a register is called
|
||||||
**yanking** and extracting text from a register is called **pasting**.
|
**yanking** and extracting text from a register is called **pasting**.
|
||||||
@ -516,7 +516,7 @@ I suggest playing around with all these registers a bit and constantly checking
|
|||||||
**Fun fact**: In Emacs "yanking" stands for pasting (or _reinserting previously
|
**Fun fact**: In Emacs "yanking" stands for pasting (or _reinserting previously
|
||||||
killed text_) not copying.
|
killed text_) not copying.
|
||||||
|
|
||||||
#### Ranges?
|
## Ranges?
|
||||||
|
|
||||||
Ranges are pretty easy to understand, but many Vimmers don't know about their
|
Ranges are pretty easy to understand, but many Vimmers don't know about their
|
||||||
full potential.
|
full potential.
|
||||||
@ -585,7 +585,7 @@ Related help:
|
|||||||
:h 10.3
|
:h 10.3
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Marks?
|
## Marks?
|
||||||
|
|
||||||
You use marks to remember a position, that is line number and column, in a file.
|
You use marks to remember a position, that is line number and column, in a file.
|
||||||
|
|
||||||
@ -629,7 +629,7 @@ would get a range that denotes the visual selection.
|
|||||||
|
|
||||||
Use `:marks` to list all marks. Read everything in `:h mark-motions`.
|
Use `:marks` to list all marks. Read everything in `:h mark-motions`.
|
||||||
|
|
||||||
#### Completion?
|
## Completion?
|
||||||
|
|
||||||
Vim provides many kinds of insert mode completions. If there are multiple
|
Vim provides many kinds of insert mode completions. If there are multiple
|
||||||
matches, a popup menu will let you navigate to the match of your choice.
|
matches, a popup menu will let you navigate to the match of your choice.
|
||||||
@ -681,7 +681,7 @@ Related help:
|
|||||||
:h new-omni-completion
|
:h new-omni-completion
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Motions? Operators? Text objects?
|
## Motions? Operators? Text objects?
|
||||||
|
|
||||||
**Motions** move the cursor. You all know `h`/`j`/`k`/`l`. Or `w` and `b`. Even
|
**Motions** move the cursor. You all know `h`/`j`/`k`/`l`. Or `w` and `b`. Even
|
||||||
`/` is a motion. They also take a count. `2?the<cr>` jumps to the second last
|
`/` is a motion. They also take a count. `2?the<cr>` jumps to the second last
|
||||||
@ -721,7 +721,7 @@ and everything in between.
|
|||||||
|
|
||||||
See `:h text-objects` for all available text objects.
|
See `:h text-objects` for all available text objects.
|
||||||
|
|
||||||
#### Autocmds?
|
## Autocmds?
|
||||||
|
|
||||||
On many occasions, Vim emits events. You hook into these events by using
|
On many occasions, Vim emits events. You hook into these events by using
|
||||||
autocmds.
|
autocmds.
|
||||||
@ -767,7 +767,7 @@ Putting it in a nutshell, Vim makes heavy use of events and autocmds but also
|
|||||||
exposes a clean interface to hook into that event-driven system for
|
exposes a clean interface to hook into that event-driven system for
|
||||||
customization.
|
customization.
|
||||||
|
|
||||||
#### Changelist? Jumplist?
|
## Changelist? Jumplist?
|
||||||
|
|
||||||
The positions of the last 100 changes are kept in the **changelist**. Several
|
The positions of the last 100 changes are kept in the **changelist**. Several
|
||||||
small changes on the same line will be merged together, but the position will be
|
small changes on the same line will be merged together, but the position will be
|
||||||
@ -803,7 +803,7 @@ Related help:
|
|||||||
:h jumplist
|
:h jumplist
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Undo tree?
|
## Undo tree?
|
||||||
|
|
||||||
The latest changes to the text state are remembered. You can use _undo_ to
|
The latest changes to the text state are remembered. You can use _undo_ to
|
||||||
revert changes and _redo_ to reapply previously reverted changes.
|
revert changes and _redo_ to reapply previously reverted changes.
|
||||||
@ -876,7 +876,7 @@ Related help:
|
|||||||
:h usr_32
|
:h usr_32
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Quickfix and location lists?
|
## Quickfix and location lists?
|
||||||
|
|
||||||
Every time an action has to return a list of locations, _quickfix_ or _location_
|
Every time an action has to return a list of locations, _quickfix_ or _location_
|
||||||
lists can be used. In this case a location is a file, a line number and
|
lists can be used. In this case a location is a file, a line number and
|
||||||
@ -921,7 +921,7 @@ list.
|
|||||||
Assuming any files contained the string "foo", it should be shown now in the
|
Assuming any files contained the string "foo", it should be shown now in the
|
||||||
quickfix window.
|
quickfix window.
|
||||||
|
|
||||||
#### Macros?
|
## Macros?
|
||||||
|
|
||||||
Vim allows _recording_ typed characters into a [register](#registers). It's a
|
Vim allows _recording_ typed characters into a [register](#registers). It's a
|
||||||
great way to automate certain tasks on the fly. (For more elaborate tasks, [Vim
|
great way to automate certain tasks on the fly. (For more elaborate tasks, [Vim
|
||||||
@ -985,7 +985,7 @@ Related help:
|
|||||||
:h 'lazyredraw'
|
:h 'lazyredraw'
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Colorschemes?
|
## Colorschemes?
|
||||||
|
|
||||||
Colorschemes are the way to style your Vim. Vim consists of many components and
|
Colorschemes are the way to style your Vim. Vim consists of many components and
|
||||||
each of those can be customized with different colors for the foreground,
|
each of those can be customized with different colors for the foreground,
|
||||||
@ -1018,7 +1018,7 @@ Related:
|
|||||||
- [List of colorschemes](#list-of-colorschemes-1)
|
- [List of colorschemes](#list-of-colorschemes-1)
|
||||||
- [Cosmetic changes to colorschemes](#cosmetic-changes-to-colorschemes)
|
- [Cosmetic changes to colorschemes](#cosmetic-changes-to-colorschemes)
|
||||||
|
|
||||||
#### Folding?
|
## Folding?
|
||||||
|
|
||||||
Every text (or source code) has a certain structure. If you have a structure, it
|
Every text (or source code) has a certain structure. If you have a structure, it
|
||||||
means you have regions of logically separated text. Folding allows to "fold"
|
means you have regions of logically separated text. Folding allows to "fold"
|
||||||
@ -1048,7 +1048,7 @@ Related help:
|
|||||||
:h folds
|
:h folds
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Sessions?
|
## Sessions?
|
||||||
|
|
||||||
If you save a **view** (`:h :mkview`), the current state of the window (and
|
If you save a **view** (`:h :mkview`), the current state of the window (and
|
||||||
options and mappings) gets saved for later use (`:h :loadview`).
|
options and mappings) gets saved for later use (`:h :loadview`).
|
||||||
@ -1087,7 +1087,7 @@ Related help:
|
|||||||
:h v:this_session
|
:h v:this_session
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Locality?
|
## Locality?
|
||||||
|
|
||||||
Many of the concepts mentioned above also have _local_ counterparts:
|
Many of the concepts mentioned above also have _local_ counterparts:
|
||||||
|
|
||||||
@ -1102,9 +1102,9 @@ Many of the concepts mentioned above also have _local_ counterparts:
|
|||||||
Variables also sport different scopes, but will be explained in
|
Variables also sport different scopes, but will be explained in
|
||||||
[Vim scripting](#vim-scripting).
|
[Vim scripting](#vim-scripting).
|
||||||
|
|
||||||
## Usage
|
# Usage
|
||||||
|
|
||||||
#### Getting help offline
|
## Getting help offline
|
||||||
|
|
||||||
Vim comes with great documentation in the form of single text files with a
|
Vim comes with great documentation in the form of single text files with a
|
||||||
special layout. Vim uses a system based on tags for accessing certain parts of
|
special layout. Vim uses a system based on tags for accessing certain parts of
|
||||||
@ -1141,7 +1141,7 @@ jump to the next/previous match. Or use `:copen` to open the quickfix window,
|
|||||||
navigate to an entry and hit `<cr>` to jump to that match. See `:h quickfix` for
|
navigate to an entry and hit `<cr>` to jump to that match. See `:h quickfix` for
|
||||||
the whole truth.
|
the whole truth.
|
||||||
|
|
||||||
#### Getting help offline (alternative)
|
## Getting help offline (alternative)
|
||||||
|
|
||||||
This list was compiled by @chrisbra, one of the most active Vim developers, and
|
This list was compiled by @chrisbra, one of the most active Vim developers, and
|
||||||
posted to [vim_dev](https://groups.google.com/forum/#!forum/vim_dev).
|
posted to [vim_dev](https://groups.google.com/forum/#!forum/vim_dev).
|
||||||
@ -1261,7 +1261,7 @@ from a user perspective and less detailed) will be mentioned at the top of help
|
|||||||
pages if they are available. So `:h pattern.txt` mentions the user guide topics
|
pages if they are available. So `:h pattern.txt` mentions the user guide topics
|
||||||
`:h 03.9` and `:h usr_27`.
|
`:h 03.9` and `:h usr_27`.
|
||||||
|
|
||||||
#### Getting help online
|
## Getting help online
|
||||||
|
|
||||||
If you have an issue you can't resolve or are in need of general guidance, see
|
If you have an issue you can't resolve or are in need of general guidance, see
|
||||||
the [vim_use](https://groups.google.com/forum/#!forum/vim_use) mailing list.
|
the [vim_use](https://groups.google.com/forum/#!forum/vim_use) mailing list.
|
||||||
@ -1272,7 +1272,7 @@ Another great resource is using
|
|||||||
If you want to report a Vim bug, use the
|
If you want to report a Vim bug, use the
|
||||||
[vim_dev](https://groups.google.com/forum/#!forum/vim_dev) mailing list.
|
[vim_dev](https://groups.google.com/forum/#!forum/vim_dev) mailing list.
|
||||||
|
|
||||||
#### Autocmds in practice
|
## Autocmds in practice
|
||||||
|
|
||||||
You can trigger any event right now: `:doautocmd BufRead`.
|
You can trigger any event right now: `:doautocmd BufRead`.
|
||||||
|
|
||||||
@ -1331,7 +1331,7 @@ instead:
|
|||||||
autocmd VimEnter * nested edit $MYVIMRC
|
autocmd VimEnter * nested edit $MYVIMRC
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Clipboard
|
## Clipboard
|
||||||
|
|
||||||
Required [features](#what-kind-of-vim-am-i-running): `+clipboard` and optionally
|
Required [features](#what-kind-of-vim-am-i-running): `+clipboard` and optionally
|
||||||
`+xterm_clipboard` if you want to use the `'clipboard'` option on a Unix system
|
`+xterm_clipboard` if you want to use the `'clipboard'` option on a Unix system
|
||||||
@ -1348,7 +1348,7 @@ Related help:
|
|||||||
Also see: [Bracketed paste (or why do I have to set 'paste' all the
|
Also see: [Bracketed paste (or why do I have to set 'paste' all the
|
||||||
time?)](#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time)
|
time?)](#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time)
|
||||||
|
|
||||||
##### Clipboard usage (Windows, OSX)
|
### Clipboard usage (Windows, OSX)
|
||||||
|
|
||||||
Windows comes with a
|
Windows comes with a
|
||||||
[clipboard](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649012(v=vs.85).aspx)
|
[clipboard](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649012(v=vs.85).aspx)
|
||||||
@ -1397,7 +1397,7 @@ Related help files:
|
|||||||
:h 'go_a'
|
:h 'go_a'
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Clipboard usage (Linux, BSD, ...)
|
### Clipboard usage (Linux, BSD, ...)
|
||||||
|
|
||||||
If your OS uses [X](http://www.x.org/wiki), things work a bit different. X
|
If your OS uses [X](http://www.x.org/wiki), things work a bit different. X
|
||||||
implements the [X Window System
|
implements the [X Window System
|
||||||
@ -1461,7 +1461,7 @@ Related help:
|
|||||||
:h clipboard-unnamedplus
|
:h clipboard-unnamedplus
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Restore cursor position when opening file
|
## Restore cursor position when opening file
|
||||||
|
|
||||||
Without this, you will always be at line 1 when opening a file. With this, you
|
Without this, you will always be at line 1 when opening a file. With this, you
|
||||||
will be at the position where you left off.
|
will be at the position where you left off.
|
||||||
@ -1481,7 +1481,7 @@ it was altered by another program).
|
|||||||
|
|
||||||
This requires the use of a viminfo file: `:h viminfo-'`.
|
This requires the use of a viminfo file: `:h viminfo-'`.
|
||||||
|
|
||||||
#### Handling backup, swap, undo, and viminfo files
|
## Handling backup, swap, undo, and viminfo files
|
||||||
|
|
||||||
Depending on the options, Vim creates up to 4 kinds of working files.
|
Depending on the options, Vim creates up to 4 kinds of working files.
|
||||||
|
|
||||||
@ -1577,7 +1577,7 @@ file already exists, it probably means that someone else is editing the file at
|
|||||||
the moment. You lose this "feature" when you save your swap files in the home
|
the moment. You lose this "feature" when you save your swap files in the home
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
#### Editing remote files
|
## Editing remote files
|
||||||
|
|
||||||
Vim comes with the netrw plugin that enables editing remote files. Actually it
|
Vim comes with the netrw plugin that enables editing remote files. Actually it
|
||||||
transfers the remote file to a local temporary file via scp, opens a buffer
|
transfers the remote file to a local temporary file via scp, opens a buffer
|
||||||
@ -1615,7 +1615,7 @@ Another possibility is using [sshfs](https://wiki.archlinux.org/index.php/Sshfs)
|
|||||||
which uses [FUSE](https://en.wikipedia.org/wiki/Filesystem_in_Userspace) to
|
which uses [FUSE](https://en.wikipedia.org/wiki/Filesystem_in_Userspace) to
|
||||||
mount a remote filesystem into your local filesystem.
|
mount a remote filesystem into your local filesystem.
|
||||||
|
|
||||||
#### Managing plugins
|
## Managing plugins
|
||||||
|
|
||||||
[Pathogen](https://github.com/tpope/vim-pathogen) was the first popular tool for
|
[Pathogen](https://github.com/tpope/vim-pathogen) was the first popular tool for
|
||||||
managing plugins. Actually it just adjusts the _runtimepath_ (`:h 'rtp'`) to
|
managing plugins. Actually it just adjusts the _runtimepath_ (`:h 'rtp'`) to
|
||||||
@ -1633,7 +1633,7 @@ alphabetic sequence:
|
|||||||
|
|
||||||
Plug is my favorite, but your mileage may vary.
|
Plug is my favorite, but your mileage may vary.
|
||||||
|
|
||||||
#### Block insert
|
## Block insert
|
||||||
|
|
||||||
This is a technique to insert the same text on multiple consecutive lines at the
|
This is a technique to insert the same text on multiple consecutive lines at the
|
||||||
same time. See this
|
same time. See this
|
||||||
@ -1666,7 +1666,7 @@ but quickly becomes second nature.
|
|||||||
If you want to get real fancy, have a look at
|
If you want to get real fancy, have a look at
|
||||||
[multiple-cursors](https://github.com/terryma/vim-multiple-cursors).
|
[multiple-cursors](https://github.com/terryma/vim-multiple-cursors).
|
||||||
|
|
||||||
#### Running external programs and using filters
|
## Running external programs and using filters
|
||||||
|
|
||||||
Disclaimer: Vim is single-threaded, so running an external program in the
|
Disclaimer: Vim is single-threaded, so running an external program in the
|
||||||
foreground will block everything else. Sure, you can use one of Vim's
|
foreground will block everything else. Sure, you can use one of Vim's
|
||||||
@ -1710,7 +1710,7 @@ which is fine for scripts, but when doing it on the fly, I find it easier to use
|
|||||||
:h filter
|
:h filter
|
||||||
:h :read!
|
:h :read!
|
||||||
|
|
||||||
#### Cscope
|
## Cscope
|
||||||
|
|
||||||
[Cscope](http://cscope.sourceforge.net/) does more things than
|
[Cscope](http://cscope.sourceforge.net/) does more things than
|
||||||
[ctags](http://ctags.sourceforge.net/), but only supports C (and C++ and Java to
|
[ctags](http://ctags.sourceforge.net/), but only supports C (and C++ and Java to
|
||||||
@ -1730,7 +1730,7 @@ knows much more about your data:
|
|||||||
- Where is this source file in the directory structure?
|
- Where is this source file in the directory structure?
|
||||||
- What files include this header file?
|
- What files include this header file?
|
||||||
|
|
||||||
##### 1. Build the database
|
### 1. Build the database
|
||||||
|
|
||||||
Do this in the root of your project:
|
Do this in the root of your project:
|
||||||
|
|
||||||
@ -1749,7 +1749,7 @@ $ find . -name "*.java" > cscope.files
|
|||||||
$ cscope -bq
|
$ cscope -bq
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 2. Add the database
|
### 2. Add the database
|
||||||
|
|
||||||
Open a connection to your freshly built database:
|
Open a connection to your freshly built database:
|
||||||
|
|
||||||
@ -1765,7 +1765,7 @@ Verify that the connection was made:
|
|||||||
|
|
||||||
(Yes, you can add multiple connections.)
|
(Yes, you can add multiple connections.)
|
||||||
|
|
||||||
##### 3. Query the database
|
### 3. Query the database
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
:cs find <kind> <query>
|
:cs find <kind> <query>
|
||||||
@ -1804,7 +1804,7 @@ convenient if you already have tag-related mappings.
|
|||||||
|
|
||||||
Related help: `:h cscope`
|
Related help: `:h cscope`
|
||||||
|
|
||||||
#### MatchIt
|
## MatchIt
|
||||||
|
|
||||||
Since Vim is written in C, a lot of features assume C-like syntax. By default,
|
Since Vim is written in C, a lot of features assume C-like syntax. By default,
|
||||||
if your cursor is on `{` or `#endif`, you can use `%` to jump to the
|
if your cursor is on `{` or `#endif`, you can use `%` to jump to the
|
||||||
@ -1851,9 +1851,9 @@ Related help:
|
|||||||
:h b:match_words
|
:h b:match_words
|
||||||
```
|
```
|
||||||
|
|
||||||
## Tips
|
# Tips
|
||||||
|
|
||||||
#### Saner behavior of n and N
|
## Saner behavior of n and N
|
||||||
|
|
||||||
The direction of `n` and `N` depends on whether `/` or `?` was used for
|
The direction of `n` and `N` depends on whether `/` or `?` was used for
|
||||||
searching forward or backward respectively. This is pretty confusing to me.
|
searching forward or backward respectively. This is pretty confusing to me.
|
||||||
@ -1865,7 +1865,7 @@ nnoremap <expr> n 'Nn'[v:searchforward]
|
|||||||
nnoremap <expr> N 'nN'[v:searchforward]
|
nnoremap <expr> N 'nN'[v:searchforward]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Saner command-line history
|
## Saner command-line history
|
||||||
|
|
||||||
If you're anything like me, you're used to going to next and previous items via
|
If you're anything like me, you're used to going to next and previous items via
|
||||||
`<c-n>` and `<c-p>` respectively. By default, this also works in the
|
`<c-n>` and `<c-p>` respectively. By default, this also works in the
|
||||||
@ -1884,7 +1884,7 @@ cnoremap <c-p> <up>
|
|||||||
|
|
||||||
I depend on this behaviour several times a day.
|
I depend on this behaviour several times a day.
|
||||||
|
|
||||||
#### Saner CTRL-L
|
## Saner CTRL-L
|
||||||
|
|
||||||
By default, `<c-l>` clears and redraws the screen (like `:redraw!`). The
|
By default, `<c-l>` clears and redraws the screen (like `:redraw!`). The
|
||||||
following mapping does the same, plus de-highlighting the matches found via `/`,
|
following mapping does the same, plus de-highlighting the matches found via `/`,
|
||||||
@ -1896,7 +1896,7 @@ diff mode:
|
|||||||
nnoremap <leader>l :nohlsearch<cr>:diffupdate<cr>:syntax sync fromstart<cr><c-l>
|
nnoremap <leader>l :nohlsearch<cr>:diffupdate<cr>:syntax sync fromstart<cr><c-l>
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Disable audible and visual bells
|
## Disable audible and visual bells
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
set noerrorbells
|
set noerrorbells
|
||||||
@ -1906,7 +1906,7 @@ set t_vb=
|
|||||||
|
|
||||||
See [Vim Wiki: Disable beeping](http://vim.wikia.com/wiki/Disable_beeping).
|
See [Vim Wiki: Disable beeping](http://vim.wikia.com/wiki/Disable_beeping).
|
||||||
|
|
||||||
#### Quickly move current line
|
## Quickly move current line
|
||||||
|
|
||||||
Sometimes I need a quick way to move the current line above or below:
|
Sometimes I need a quick way to move the current line above or below:
|
||||||
|
|
||||||
@ -1917,7 +1917,7 @@ nnoremap ]e :<c-u>execute 'move +'. v:count1<cr>
|
|||||||
|
|
||||||
These mappings also take a count, so `2]e` moves the current line 2 lines below.
|
These mappings also take a count, so `2]e` moves the current line 2 lines below.
|
||||||
|
|
||||||
#### Quickly add empty lines
|
## Quickly add empty lines
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
nnoremap [<space> :<c-u>put! =repeat(nr2char(10), v:count1)<cr>'[
|
nnoremap [<space> :<c-u>put! =repeat(nr2char(10), v:count1)<cr>'[
|
||||||
@ -1926,7 +1926,7 @@ nnoremap ]<space> :<c-u>put =repeat(nr2char(10), v:count1)<cr>
|
|||||||
|
|
||||||
Now `5[<space>` inserts 5 blank lines above the current line.
|
Now `5[<space>` inserts 5 blank lines above the current line.
|
||||||
|
|
||||||
#### Quickly edit your macros
|
## Quickly edit your macros
|
||||||
|
|
||||||
This is a real gem! The mapping takes a register (or `*` by default) and opens
|
This is a real gem! The mapping takes a register (or `*` by default) and opens
|
||||||
it in the cmdline-window. Hit `<cr>` when you're done editing for setting the
|
it in the cmdline-window. Hit `<cr>` when you're done editing for setting the
|
||||||
@ -1943,7 +1943,7 @@ Use it like this `<leader>m` or `"q<leader>m`.
|
|||||||
Notice the use of `<c-r><c-r>` to make sure that the `<c-r>` is inserted
|
Notice the use of `<c-r><c-r>` to make sure that the `<c-r>` is inserted
|
||||||
literally. See `:h c_^R^R`.
|
literally. See `:h c_^R^R`.
|
||||||
|
|
||||||
#### Quickly jump to header or source file
|
## Quickly jump to header or source file
|
||||||
|
|
||||||
This technique can probably be applied to many filetypes. It sets _file marks_
|
This technique can probably be applied to many filetypes. It sets _file marks_
|
||||||
(see `:h marks`) when leaving a source or header file, so you can quickly jump
|
(see `:h marks`) when leaving a source or header file, so you can quickly jump
|
||||||
@ -1957,7 +1957,7 @@ autocmd BufLeave *.h mark H
|
|||||||
**NOTE**: The info is saved in the viminfo file, so make sure that `:set
|
**NOTE**: The info is saved in the viminfo file, so make sure that `:set
|
||||||
viminfo?` includes `:h viminfo-'`.
|
viminfo?` includes `:h viminfo-'`.
|
||||||
|
|
||||||
#### Quickly change font size in GUI
|
## Quickly change font size in GUI
|
||||||
|
|
||||||
I think this was taken from tpope's config:
|
I think this was taken from tpope's config:
|
||||||
|
|
||||||
@ -1966,7 +1966,7 @@ command! Bigger :let &guifont = substitute(&guifont, '\d\+$', '\=submatch(0)+1'
|
|||||||
command! Smaller :let &guifont = substitute(&guifont, '\d\+$', '\=submatch(0)-1', '')
|
command! Smaller :let &guifont = substitute(&guifont, '\d\+$', '\=submatch(0)-1', '')
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Change cursor style dependent on mode
|
## Change cursor style dependent on mode
|
||||||
|
|
||||||
I like to use a block cursor in normal mode, i-beam cursor in insert mode, and
|
I like to use a block cursor in normal mode, i-beam cursor in insert mode, and
|
||||||
underline cursor in replace mode.
|
underline cursor in replace mode.
|
||||||
@ -1996,7 +1996,7 @@ even support different cursor styles. Check the documentation.
|
|||||||
|
|
||||||
The example above works with iTerm2.
|
The example above works with iTerm2.
|
||||||
|
|
||||||
#### Don't lose selection when shifting sidewards
|
## Don't lose selection when shifting sidewards
|
||||||
|
|
||||||
If you select one or more lines, you can use `<` and `>` for shifting them
|
If you select one or more lines, you can use `<` and `>` for shifting them
|
||||||
sidewards. Unfortunately you immediately lose the selection afterwards.
|
sidewards. Unfortunately you immediately lose the selection afterwards.
|
||||||
@ -2013,7 +2013,7 @@ Now you can use `>>>>>` on your visual selection without any problems.
|
|||||||
|
|
||||||
**NOTE**: The same can be achieved using `.`, which repeats the last change.
|
**NOTE**: The same can be achieved using `.`, which repeats the last change.
|
||||||
|
|
||||||
#### Reload a file on saving
|
## Reload a file on saving
|
||||||
|
|
||||||
Using [autocmds](#autocmds) you can do anything on saving a file, e.g. sourcing
|
Using [autocmds](#autocmds) you can do anything on saving a file, e.g. sourcing
|
||||||
it in case of a dotfile or running a linter to check for syntactical errors in
|
it in case of a dotfile or running a linter to check for syntactical errors in
|
||||||
@ -2024,7 +2024,7 @@ autocmd BufWritePost $MYVIMRC source $MYVIMRC
|
|||||||
autocmd BufWritePost ~/.Xdefaults call system('xrdb ~/.Xdefaults')
|
autocmd BufWritePost ~/.Xdefaults call system('xrdb ~/.Xdefaults')
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Smarter cursorline
|
## Smarter cursorline
|
||||||
|
|
||||||
I love the cursorline, but I only want to use it in the current window and not
|
I love the cursorline, but I only want to use it in the current window and not
|
||||||
when being in insert mode:
|
when being in insert mode:
|
||||||
@ -2034,7 +2034,7 @@ autocmd InsertLeave,WinEnter * set cursorline
|
|||||||
autocmd InsertEnter,WinLeave * set nocursorline
|
autocmd InsertEnter,WinLeave * set nocursorline
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Faster keyword completion
|
## Faster keyword completion
|
||||||
|
|
||||||
The keyword completion (`<c-n>`/`<c-p>`) tries completing whatever is listed in
|
The keyword completion (`<c-n>`/`<c-p>`) tries completing whatever is listed in
|
||||||
the `'complete'` option. By default, this also includes tags (which can be
|
the `'complete'` option. By default, this also includes tags (which can be
|
||||||
@ -2046,7 +2046,7 @@ set complete-=i " disable scanning included files
|
|||||||
set complete-=t " disable searching tags
|
set complete-=t " disable searching tags
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Cosmetic changes to colorschemes
|
## Cosmetic changes to colorschemes
|
||||||
|
|
||||||
Always use a dark gray statusline, no matter what colorscheme is chosen:
|
Always use a dark gray statusline, no matter what colorscheme is chosen:
|
||||||
|
|
||||||
@ -2061,12 +2061,12 @@ color_name` which should be set by all valid colorschemes):
|
|||||||
autocmd ColorScheme lucius highlight StatusLine ctermbg=darkgray cterm=NONE guibg=darkgray gui=NONE
|
autocmd ColorScheme lucius highlight StatusLine ctermbg=darkgray cterm=NONE guibg=darkgray gui=NONE
|
||||||
```
|
```
|
||||||
|
|
||||||
## Commands
|
# Commands
|
||||||
|
|
||||||
Useful commands that are good to know. Use `:h :<command name>` to learn more
|
Useful commands that are good to know. Use `:h :<command name>` to learn more
|
||||||
about them, e.g. `:h :global`.
|
about them, e.g. `:h :global`.
|
||||||
|
|
||||||
#### :global
|
## :global
|
||||||
|
|
||||||
Execute a command on all matching lines. E.g. `:global /regexp/ print` will use
|
Execute a command on all matching lines. E.g. `:global /regexp/ print` will use
|
||||||
`:print` on all lines that contain "regexp".
|
`:print` on all lines that contain "regexp".
|
||||||
@ -2084,7 +2084,7 @@ next blank line (matched by the regular expression `^$`) that contain "foo":
|
|||||||
:,/^$/g/foo/d
|
:,/^$/g/foo/d
|
||||||
```
|
```
|
||||||
|
|
||||||
#### :normal and :execute
|
## :normal and :execute
|
||||||
|
|
||||||
These commands are commonly used in Vim scripts.
|
These commands are commonly used in Vim scripts.
|
||||||
|
|
||||||
@ -2110,7 +2110,7 @@ down "n" lines:
|
|||||||
:execute 'normal!' n . 'j'
|
:execute 'normal!' n . 'j'
|
||||||
```
|
```
|
||||||
|
|
||||||
#### :redir
|
## :redir
|
||||||
|
|
||||||
Many commands print messages and `:redir` allows to redirect that output. You
|
Many commands print messages and `:redir` allows to redirect that output. You
|
||||||
can redirect to files, [registers](#registers) or variables.
|
can redirect to files, [registers](#registers) or variables.
|
||||||
@ -2126,9 +2126,9 @@ can redirect to files, [registers](#registers) or variables.
|
|||||||
|
|
||||||
Related help: `:h :redir`
|
Related help: `:h :redir`
|
||||||
|
|
||||||
## Debugging
|
# Debugging
|
||||||
|
|
||||||
#### General tips
|
## General tips
|
||||||
|
|
||||||
If you encounter a strange behaviour, try reproducing it like this:
|
If you encounter a strange behaviour, try reproducing it like this:
|
||||||
|
|
||||||
@ -2163,7 +2163,7 @@ the active upper half. Move the `:finish` to the middle of _that_ half.
|
|||||||
Otherwise, the issue is in the inactive lower half. Move the `:finish` to the
|
Otherwise, the issue is in the inactive lower half. Move the `:finish` to the
|
||||||
middle of _that_ half. And so on.
|
middle of _that_ half. And so on.
|
||||||
|
|
||||||
#### Verbosity
|
## Verbosity
|
||||||
|
|
||||||
Another useful way for observing what Vim is currently doing is increasing the
|
Another useful way for observing what Vim is currently doing is increasing the
|
||||||
verbosity level. Currently Vim supports 9 different levels. See `:h 'verbose'`
|
verbosity level. Currently Vim supports 9 different levels. See `:h 'verbose'`
|
||||||
@ -2208,7 +2208,7 @@ fear no more, you can simply redirect the output to a file:
|
|||||||
You can also enable verbosity at starting time, with the `-V` option. It
|
You can also enable verbosity at starting time, with the `-V` option. It
|
||||||
defaults to verbosity level 10. E.g. `vim -V5`.
|
defaults to verbosity level 10. E.g. `vim -V5`.
|
||||||
|
|
||||||
#### Profiling startup time
|
## Profiling startup time
|
||||||
|
|
||||||
Vim startup feels slow? Time to crunch some numbers:
|
Vim startup feels slow? Time to crunch some numbers:
|
||||||
|
|
||||||
@ -2220,7 +2220,7 @@ The first column is the most important as it shows the elapsed absolute time. If
|
|||||||
there is a big jump in time between two lines, the second line is either a very
|
there is a big jump in time between two lines, the second line is either a very
|
||||||
big file or a file with faulty VimL code that is worth investigating.
|
big file or a file with faulty VimL code that is worth investigating.
|
||||||
|
|
||||||
#### Profiling at runtime
|
## Profiling at runtime
|
||||||
|
|
||||||
Required [feature](#what-kind-of-vim-am-i-running): `+profile`
|
Required [feature](#what-kind-of-vim-am-i-running): `+profile`
|
||||||
|
|
||||||
@ -2252,7 +2252,7 @@ two different sections `FUNCTIONS SORTED ON TOTAL TIME` and `FUNCTIONS SORTED ON
|
|||||||
SELF TIME` that are worth gold. At a quick glance you can see, if a certain
|
SELF TIME` that are worth gold. At a quick glance you can see, if a certain
|
||||||
function is taking too long.
|
function is taking too long.
|
||||||
|
|
||||||
#### Debugging Vim scripts
|
## Debugging Vim scripts
|
||||||
|
|
||||||
If you ever used a command-line debugger before, `:debug` will quickly feel
|
If you ever used a command-line debugger before, `:debug` will quickly feel
|
||||||
familiar.
|
familiar.
|
||||||
@ -2305,7 +2305,7 @@ this case.
|
|||||||
|
|
||||||
`:debug` can be used in combination with the [verbose](#verbosity) option.
|
`:debug` can be used in combination with the [verbose](#verbosity) option.
|
||||||
|
|
||||||
#### Debugging syntax files
|
## Debugging syntax files
|
||||||
|
|
||||||
Syntax files are often the cause for slowdowns due to wrong and/or complex
|
Syntax files are often the cause for slowdowns due to wrong and/or complex
|
||||||
regular expressions. If the `+profile` [feature](#what-kind-of-vim-am-i-running)
|
regular expressions. If the `+profile` [feature](#what-kind-of-vim-am-i-running)
|
||||||
@ -2324,9 +2324,9 @@ even match.
|
|||||||
|
|
||||||
See `:h :syntime`.
|
See `:h :syntime`.
|
||||||
|
|
||||||
## Miscellaneous
|
# Miscellaneous
|
||||||
|
|
||||||
#### Additional resources
|
## Additional resources
|
||||||
|
|
||||||
| Resource | Description |
|
| Resource | Description |
|
||||||
|----------|-------------|
|
|----------|-------------|
|
||||||
@ -2339,7 +2339,7 @@ See `:h :syntime`.
|
|||||||
| [Why, oh WHY, do those #?@! nutheads use vi?](http://www.viemu.com/a-why-vi-vim.html) | Common misconceptions explained. |
|
| [Why, oh WHY, do those #?@! nutheads use vi?](http://www.viemu.com/a-why-vi-vim.html) | Common misconceptions explained. |
|
||||||
| [Your problem with Vim is that you don't grok vi](http://stackoverflow.com/a/1220118) | Concise, informative and correct. A real gem. |
|
| [Your problem with Vim is that you don't grok vi](http://stackoverflow.com/a/1220118) | Concise, informative and correct. A real gem. |
|
||||||
|
|
||||||
#### Vim distributions
|
## Vim distributions
|
||||||
|
|
||||||
Vim distributions are Vim + custom settings + custom plugins from certain
|
Vim distributions are Vim + custom settings + custom plugins from certain
|
||||||
authors and are therefore very opinionated.
|
authors and are therefore very opinionated.
|
||||||
@ -2370,7 +2370,7 @@ looking at some distributions:
|
|||||||
- [janus](https://github.com/carlhuda/janus.git)
|
- [janus](https://github.com/carlhuda/janus.git)
|
||||||
- [spf13](https://github.com/spf13/spf13-vim)
|
- [spf13](https://github.com/spf13/spf13-vim)
|
||||||
|
|
||||||
#### Standard plugins
|
## Standard plugins
|
||||||
|
|
||||||
Surprising to many people, Vim comes with a handful of plugins on its own that
|
Surprising to many people, Vim comes with a handful of plugins on its own that
|
||||||
all get loaded by default. Check `:scriptnames` after starting Vim to see all
|
all get loaded by default. Check `:scriptnames` after starting Vim to see all
|
||||||
@ -2394,7 +2394,7 @@ bails out. No further code (mappings, commands, logic) will be processed.
|
|||||||
| vimball | `let g:loaded_vimballPlugin = 1` | `:h pi_vimball` |
|
| vimball | `let g:loaded_vimballPlugin = 1` | `:h pi_vimball` |
|
||||||
| zip | `let g:loaded_zipPlugin = 1` | `:h pi_zip` |
|
| zip | `let g:loaded_zipPlugin = 1` | `:h pi_zip` |
|
||||||
|
|
||||||
#### Map CapsLock to Control
|
## Map CapsLock to Control
|
||||||
|
|
||||||
CapsLock belongs to the most useless keys on your keyboard, but it's much easier
|
CapsLock belongs to the most useless keys on your keyboard, but it's much easier
|
||||||
to reach than the Control key, since it lies on your [home
|
to reach than the Control key, since it lies on your [home
|
||||||
@ -2427,7 +2427,7 @@ An alternative would be using [xcape](https://github.com/alols/xcape).
|
|||||||
See [superuser.com: Map Caps-Lock to Control in Windows
|
See [superuser.com: Map Caps-Lock to Control in Windows
|
||||||
8.1](http://superuser.com/questions/764782/map-caps-lock-to-control-in-windows-8-1).
|
8.1](http://superuser.com/questions/764782/map-caps-lock-to-control-in-windows-8-1).
|
||||||
|
|
||||||
#### Easter eggs
|
## Easter eggs
|
||||||
|
|
||||||
| Command | Message |
|
| Command | Message |
|
||||||
|-----------|---------|
|
|-----------|---------|
|
||||||
@ -2441,9 +2441,9 @@ See [superuser.com: Map Caps-Lock to Control in Windows
|
|||||||
| `:help!` | `E478: Don't panic!` (Glitch? When used in a help buffer (`buftype=help`) this works like `:h help.txt` instead.) |
|
| `:help!` | `E478: Don't panic!` (Glitch? When used in a help buffer (`buftype=help`) this works like `:h help.txt` instead.) |
|
||||||
| `:smile` | Try it out yourself. ;-) Added in 7.4.1005. |
|
| `:smile` | Try it out yourself. ;-) Added in 7.4.1005. |
|
||||||
|
|
||||||
#### Standard plugins
|
## Standard plugins
|
||||||
|
|
||||||
#### Why hjkl for navigation?
|
## Why hjkl for navigation?
|
||||||
|
|
||||||
When [Bill Joy](https://en.wikipedia.org/wiki/Bill_Joy) created
|
When [Bill Joy](https://en.wikipedia.org/wiki/Bill_Joy) created
|
||||||
[vi](https://en.wikipedia.org/wiki/Vi), a predecessor of Vim, he did it on a
|
[vi](https://en.wikipedia.org/wiki/Vi), a predecessor of Vim, he did it on a
|
||||||
@ -2454,9 +2454,9 @@ Keyboard layout: [click](https://raw.githubusercontent.com/mhinz/vim-galore/mast
|
|||||||
|
|
||||||
This also shows why `~` is used to denote the home directory on Unix systems.
|
This also shows why `~` is used to denote the home directory on Unix systems.
|
||||||
|
|
||||||
## Quirks
|
# Quirks
|
||||||
|
|
||||||
#### Editing small files is slow
|
## Editing small files is slow
|
||||||
|
|
||||||
There are two things which can have a huge impact on performance:
|
There are two things which can have a huge impact on performance:
|
||||||
|
|
||||||
@ -2476,7 +2476,7 @@ There are two things which can have a huge impact on performance:
|
|||||||
**NOTE**: You only need to do this if you experience actual performance
|
**NOTE**: You only need to do this if you experience actual performance
|
||||||
drawbacks. In most cases using the things mentioned above is absolutely fine.
|
drawbacks. In most cases using the things mentioned above is absolutely fine.
|
||||||
|
|
||||||
#### Editing huge files is slow
|
## Editing huge files is slow
|
||||||
|
|
||||||
The biggest issue with big files is, that Vim reads the whole file at once. This
|
The biggest issue with big files is, that Vim reads the whole file at once. This
|
||||||
is done due to how buffers are represented internally.
|
is done due to how buffers are represented internally.
|
||||||
@ -2501,14 +2501,14 @@ $ vim -n -u NONE -i NONE -N
|
|||||||
Putting it in a nutshell, try to avoid using Vim when intending to write really
|
Putting it in a nutshell, try to avoid using Vim when intending to write really
|
||||||
huge files. :\
|
huge files. :\
|
||||||
|
|
||||||
#### Newline used for NUL
|
## Newline used for NUL
|
||||||
|
|
||||||
NUL characters (`\0`) in a file, are stored as newline (`\n`) in memory and
|
NUL characters (`\0`) in a file, are stored as newline (`\n`) in memory and
|
||||||
displayed in a buffer as `^@`.
|
displayed in a buffer as `^@`.
|
||||||
|
|
||||||
See `man 7 ascii` and `:h NL-used-for-Nul` for more information.
|
See `man 7 ascii` and `:h NL-used-for-Nul` for more information.
|
||||||
|
|
||||||
#### Bracketed paste (or why do I have to set 'paste' all the time?)
|
## Bracketed paste (or why do I have to set 'paste' all the time?)
|
||||||
|
|
||||||
Bracketed paste mode allows terminal emulators to distinguish between typed text
|
Bracketed paste mode allows terminal emulators to distinguish between typed text
|
||||||
and pasted text.
|
and pasted text.
|
||||||
@ -2537,7 +2537,7 @@ Additional read from the same author as the plugin:
|
|||||||
**Neovim**: Neovim tries to make all of this much more seamless and sets
|
**Neovim**: Neovim tries to make all of this much more seamless and sets
|
||||||
bracketed paste mode automatically if the terminal emulator supports it.
|
bracketed paste mode automatically if the terminal emulator supports it.
|
||||||
|
|
||||||
#### Delays when using escape key in terminal
|
## Delays when using escape key in terminal
|
||||||
|
|
||||||
If you live in the command-line, you probably use a so-called _terminal
|
If you live in the command-line, you probably use a so-called _terminal
|
||||||
emulator_ like xterm, gnome-terminal, iTerm2, etc. (opposed to a real
|
emulator_ like xterm, gnome-terminal, iTerm2, etc. (opposed to a real
|
||||||
@ -2600,7 +2600,7 @@ your `~/.tmux.conf`:
|
|||||||
set -sg escape-time 0
|
set -sg escape-time 0
|
||||||
```
|
```
|
||||||
|
|
||||||
## List of colorschemes
|
# List of colorschemes
|
||||||
|
|
||||||
Here's a list of commonly used colorschemes:
|
Here's a list of commonly used colorschemes:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user