No edit summary |
JohnBeckett (talk | contribs) (Archive of new edition, repeats 200806,07.) |
||
(14 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | __NOEDITSECTION__ |
||
− | '''This is an archive of the ''Did you know?'' section on the [[ |
+ | <big>'''This is an archive of the ''Did you know?'' section on the [[Vim Tips Wiki|home page]]'''</big> |
− | + | We occasionally replace the DYK section on the [[Vim Tips Wiki|home page]], and items are copied to here so anyone interested can browse them. |
|
− | To discuss suggestions for new items, please edit the [[Talk:Did you know|talk page]]. |
+ | '''To discuss suggestions for new items, please edit the [[Talk:Did you know|talk page]].''' |
− | == |
+ | ==July 2012== |
+ | *The [http://vimhelp.appspot.com/vim_faq.txt.html Vim FAQ] is online. |
||
+ | *There are several methods to [[VimTip224|change the indentation of a block of lines]]. |
||
+ | *A mapping can change the Home key to [[VimTip315|move to the first character, or the first that is nonblank]]. |
||
+ | *Filtering and redirection can [[VimTip374|capture output from Vim or external programs]]. |
||
+ | *It's easy to [[VimTip431|change between backslash and forward slash]] in a file path. |
||
+ | *If you create your own tags file, you can [[VimTip601|jump to the correct line ''and'' column]]. |
||
+ | *If you work with many files, it's easy to [[VimTip652|save them all with <tt>:wa</tt> or <tt>:xa</tt>]]. |
||
+ | *Simple substitutes or a Perl script can [[VimTip1005|convert text using HTML entities like <tt>&gt;</tt>]]. |
||
+ | *The command <tt>:g/^/exe ".w ".line(".").".txt"</tt> [[VimTip1059|saves each line in the buffer to a separate file]]. |
||
+ | *<tt>:g//</tt> [[VimTip1063|lists all lines containing the last search pattern]], and :redir will capture the results. |
||
+ | *With <tt>set browsedir=buffer</tt> the File, Open dialog [[VimTip753|defaults to the current file's directory]]. |
||
+ | ==May 2010== |
||
+ | *<tt>@:</tt> will [[VimTip990|repeat a colon (Ex) command]] (and <tt>@@</tt> will repeat again). |
||
+ | *You can use <tt>:g/^\s*$/;//-1sort</tt> to [[VimTip1118|sort each block of lines in a file]]. |
||
+ | *It's useful to <tt>map . .`[</tt> to [[VimTip1142|repeat the last command and put the cursor at start of change]]. |
||
+ | *You can [[VimTip306|open a web browser with the URL in the current line]]. |
||
+ | *With <tt>--remote-send</tt> you can [[VimTip309|close a Vim you left open remotely]]. |
||
+ | *If you're used to Perl regex, you can [[VimTip393|use Perl compatible regular expressions]]. |
||
+ | *In insert mode, Ctrl-Y inserts the character above. You can [[VimTip428|make it insert the word above]]. |
||
+ | *A user-defined command can [[VimTip1235|evaluate <tt>:Calc sin(pi/2)</tt>]]. |
||
+ | *It's sometimes better to [[VimTip406|''not'' use the slash delimiter for <tt>:s/old/new/</tt>]]. |
||
+ | *You can [[VimTip413|drag & drop one or more files into gvim]]. |
||
+ | ==April 2010== |
||
+ | *<tt>zz</tt> scrolls the current line to the [[VimTip182|middle of the screen]]; scrolloff can keep it there. |
||
+ | *Vim can do calculations using [[VimTip1235|Python]], [[VimTip1359|Perl]] or [[VimTip1349|bc]]. |
||
+ | *You can wrap long lines while moving the cursor by [[VimTip38|screen lines]]. |
||
+ | *A tricky search can [[VimTip220|find text that does ''not'' match]]. |
||
+ | *Pressing <tt>%</tt> [[VimTip6|jumps to a matching bracket]], and <tt>matchit.vim</tt> can match much more. |
||
+ | *The <tt>shortmess</tt> and <tt>cmdheight</tt> options allow you to [[VimTip16|avoid "Hit Enter to continue" prompts]]. |
||
+ | *An option controls [[VimTip17|how backspace and other delete keys work in insert mode]]. |
||
+ | *You can [[VimTip19|display line numbers and change the width of the number column]]. |
||
+ | *It's easy to [[VimTip49|change text between lowercase and UPPERCASE]]. |
||
+ | *The command history allows you to [[VimTip45|repeat several commands, possibly after editing them]]. |
||
⚫ | |||
− | *You can emulate Textmate's cmd-T. Read [[File search similar to cmd-t in TextMate]] |
||
+ | *[http://www.derekwyatt.org/vim/vim-tutorial-videos/ Vim tutorials] has videos illustrating simple and advanced topics. |
||
− | ==July 2009== |
||
+ | *Use <tt>%</tt> to jump to the [[VimTip6|matching bracket]], and more. |
||
− | *[http://vim.runpaint.org/ '''''Vim Recipes'''''] is a new and free cookbook in PDF and HTML. |
||
+ | *Use <tt>:lcd %:p:h</tt> to [[VimTip64|change directory]] to the file in the current window. |
||
− | *An [[VimTip1589|environment variable]] can be displayed, for example <tt>:echo $PATH</tt>. |
||
− | * |
+ | *<tt>ga</tt> shows the [[VimTip67|ascii value]] of the current character. |
+ | *You can [[VimTip1300|list changes]] to the current file, even old changes. |
||
− | *A temporary change to the '<tt>grepprg</tt>' option allows [[VimTip1262|<tt>git grep</tt>]] in Vim. |
||
⚫ | |||
− | *<tt>:pedit myfile</tt> [[VimTip867|opens a file in the preview window]]; useful for pydoc. |
||
+ | *The status line can show your [[VimTip735|fileencoding and bomb]]. |
||
− | *Use <tt>:wa</tt> to [[VimTip803|save all modified files]] (no save if no change). |
||
+ | *In a program, you can [[VimTip7|jump to the beginning or end of a code block]]. |
||
− | *Use <tt>:e ..</tt> to [[VimTip1182|list files]] in the parent directory. |
||
+ | *With two related files in a vertical split, you can [[VimTip52|scroll both windows together]]. |
||
− | *Use <tt>:set showcmd</tt> to [[VimTip859|show the size]] of the visually-selected area. |
||
+ | *It's easy to [[VimTip689|count the words in a file or block]]. |
||
− | *Press Ctrl-w then <tt>o</tt> to [[VimTip999|show only the current window]] (close others). |
||
+ | *You can even make a frequency table [[VimTip1531|counting the occurrences of each word]]! |
||
− | *Windows users should use the [[VimTip416|GnuWin32 diff package]]. |
||
− | *You can [[VimTip389|search only unfolded text]] with <tt>:set fdo-=search</tt>. |
||
− | == |
+ | ==February 2010== |
− | *[http:// |
+ | *[http://www.derekwyatt.org/vim/vim-tutorial-videos/ Vim tutorials] has videos illustrating simple and advanced topics. |
− | * |
+ | *You can press <tt>*</tt> to [[VimTip1|search for the current word]]. |
+ | *Ctrl-A can [[VimTip30|increment numbers]]. |
||
− | *In insert mode, typing <tt><C-R>=strftime("%c")</tt> [[VimTip97|inserts the current date and time]]. |
||
+ | *After typing a couple of characters, you can [[VimTip4|complete a word]] with Ctrl-N or Ctrl-P. |
||
⚫ | |||
+ | *[[VimTip882|Vim's help]] use prefixes like <tt>v_</tt> (visual mode) to show the context. |
||
− | *<tt>perldoc</tt> can be used to [[VimTip461|open a Perl module from its module name]]. |
||
+ | *The [[VimTip1520|<tt>:let</tt> command]] can set registers and options as well as variables. |
||
− | *A plugin allows [[VimTip588|sorting lines based on a visually-selected column]]. |
||
+ | *The command <tt>:42</tt> [[VimTip751|jumps to line 42]], as does typing <tt>42G</tt>. |
||
− | *Under Windows, you can have [[VimTip638|<tt>pl2bat</tt> scripts detected as Perl filetype]]. |
||
+ | *The <tt>shortmess</tt> and <tt>cmdheight</tt> options allow you to [[VimTip16|avoid "Hit Enter to continue" prompts]]. |
||
− | *Some mappings allow easy [[VimTip646|move up/down of current line]]. |
||
⚫ | |||
− | *Use <tt>:set wildchar=<Tab> wildmenu wildmode=full</tt> for a menu to [[VimTip686|complete buffer/file names]]. |
||
+ | *The <tt>'number'</tt> and <tt>'numberwidth'</tt> options control the [[VimTip19|display of line numbers]]. |
||
− | *In some terminals, [[VimTip738|meta keys are sent as escape sequences]] which can exit insert mode. |
||
+ | *It's easy to [[VimTip49|change text between lowercase and UPPERCASE]]. |
||
− | *The command <tt>:set cursorline</tt> [[VimTip769|highlights the current line]]. |
||
− | == |
+ | ==January 2010== |
+ | *[http://www.derekwyatt.org/vim/vim-tutorial-videos/ Vim tutorials] has videos illustrating simple and advanced topics. |
||
− | *Type <tt>gd</tt> to [[VimTip9|jump to the definition]] of a local variable, or <tt>gD</tt> for a global variable. |
||
− | * |
+ | *We have an explanation for how <tt>:g/^/m0</tt> [[VimTip29|reverses all lines]]. |
+ | *In a search pattern, <tt>\_s</tt> [[VimTip242|matches]] a space or tab or newline character. |
||
− | *Some code is needed for [[VimTip1148|unique sorting]] in a script. |
||
+ | *A script can use a test like <tt>&buftype == "quickfix"</tt> to check if it is operating in the [[VimTip536|quickfix window]]. |
||
− | *Map the Enter key to Esc to [[VimTip783|quickly exit insert mode]]. |
||
+ | *Typing <tt>=i{</tt> reindents the "inner block" ([[VimTip597|code inside braces]]). |
||
− | *And map Enter to [[VimTip982|insert a newline]] from normal mode. |
||
+ | *Using <tt>'smartindent'</tt> means that typing <tt>#</tt> may [[VimTip644|remove an indent]] before the <tt>#</tt>. |
||
− | *A mapping can search for the [[VimTip798|current word]] in a new window. |
||
+ | *The <tt>'winaltkeys'</tt> option controls whether [[VimTip645|Vim handles Alt keys]]. |
||
− | *It can be easy to [[VimTip873|cycle through buffers]] including hidden buffers. |
||
+ | *If you would prefer Y to be consistent with C, use [[VimTip979|<tt>:nnoremap Y y$</tt>]]. |
||
− | *The <tt>pastetoggle</tt> option should be used when [[VimTip906|pasting into a terminal]]. |
||
+ | *A plugin should set its "loaded" variable to [[VimTip1559|show its version]], for example <tt>let g:loaded_dbext = 503</tt>. |
||
− | *Commands like <tt>:set wrap! wrap?</tt> are useful when [[VimTip920|toggling boolean options]]. |
||
+ | *We have a short [[VimTip1582|FAQ for new users]] concerning common issues raised at #vim. |
||
− | *Use <tt>\V</tt> to make a regex "[[VimTip1237|very nomagic]]", or use <tt>:sno</tt> for a "very nomagic" substitute. |
||
+ | *You can use <tt>:cnoremap</tt> to map a key to <tt><C-\>e(...)<CR></tt> which will [[VimTip1594|replace the command line]] with the <tt>(...)</tt> expression. |
||
− | == |
+ | ==Previous years== |
⚫ | |||
− | *[http://www.swaroopch.com/notes/Vim '''''A Byte of Vim''''' is a free ebook on Vim] |
||
+ | *[[/2008|2008 ''Did you know'']] |
||
− | *[http://www.vim.org/ Vim 7.2 has been released] |
||
− | *Press <tt>[</tt> then the Tab key to [[VimTip9|jump to the first line]] containing the current keyword. |
||
− | *The 'pastetoggle' option should be used when [[VimTip906|pasting into console Vim]]. |
||
− | *Using <tt>:set wrap! wrap?</tt> is handy to [[VimTip920|toggle an option]] and see its value. |
||
− | *A simple <tt>map <CR> o<Esc></tt> can [[VimTip982|insert a newline]] in normal mode. |
||
− | *Using <tt>nr2char()</tt> helps convert from [[VimTip1012|"quoted printable"]] to plain text. |
||
− | *In a regex, \v is [[VimTip1237|"very magic"]] (all characters except a-zA-Z0-9_ have special meaning). |
||
− | *The '<tt>binary</tt>' and '<tt>eol</tt>' options can help [[VimTip1369|preserve a missing final end-of-line]]. |
||
− | *Using the <tt>ftplugin</tt> directory helps [[VimTip1510|keep your vimrc clean]]. |
||
− | *The command <tt>:scriptnames</tt> lists all scripts that have been sourced ([[VimTip1522|more]]). |
||
− | *[[VimTip1533|Vim Doclet]] is a Doclet for Java that generates documentation in Vim Help format. |
||
+ | [[Category:VimInformation]] |
||
⚫ | |||
− | *[http://www.swaroopch.com/notes/Vim '''''A Byte of Vim''''' is a free ebook on Vim] |
||
− | *[http://www.vim.org/ Vim 7.2 has been released] |
||
− | *Press <tt>[I</tt> to [[VimTip9|display all lines]] containing the current variable. |
||
− | *Press <tt>gF</tt> to [[VimTip487|jump to a specified line number in a file]]. |
||
− | *A mapping allows [[VimTip489|jumping sections]] in Latex documents. |
||
− | *Using a mapping (with <tt>:update</tt>) allows [[VimTip582|quick saves]] of the current buffer, if changed. |
||
− | *It's easy to [[VimTip605|replace the current word]] with the last yanked text. |
||
− | *A keymap allows [[VimTip619|entry of characters]] that are not available on your keyboard. |
||
− | *The command <tt>:e $MYVIMRC</tt> will [[VimTip626|edit your vimrc]] file. |
||
− | *You can add a [[VimTip724|dashed line]] under a title. |
||
− | *Some scripting allows [[VimTip760|fast changes to your font size]]. |
||
− | *Using <tt>:set foldlevel=20</tt> means [[VimTip797|all folds are open when a file is opened]]. |
||
− | |||
− | ==February 2009== |
||
− | *[http://www.swaroopch.com/notes/Vim '''''A Byte of Vim''''' is a free ebook on Vim] |
||
− | *[http://www.vim.org/ Vim 7.2 has been released] |
||
− | *Type <tt>[i</tt> to [[VimTip9|display the definition]] of the current variable, or <tt>[d</tt> for a macro. |
||
− | *The <tt>:set hlsearch</tt> command [[VimTip14|highlights all search hits]]; use <tt>:noh</tt> to temporarily switch off. |
||
− | *You may be able to [[VimTip50|recover lost text]] if the power fails while you are editing. |
||
− | *Use digraphs to [[VimTip51|enter special characters]]: in insert mode, press Ctrl-K then <tt>Co</tt> for <tt>©</tt>, or Ctrl-K then <tt>Pd</tt> for <tt>£</tt>. |
||
− | *The quickfix list can be used to [[VimTip76|fold away lines]] with no errors/matches. |
||
⚫ | |||
− | *Manual [[VimTip241|fold markers can be hidden]] using the Ignore highlighting group. |
||
− | *Some mappings allow [[VimTip294|Ctrl-S to save the current file]], or a new file. |
||
− | *It's useful to map a key for [[VimTip398|quicker access to recorded macros]]. |
||
− | |||
− | ==January 2009== |
||
− | *[http://www.swaroopch.com/notes/Vim '''''A Byte of Vim''''' is a free ebook on Vim] |
||
− | *[http://www.vim.org/ Vim 7.2 has been released] |
||
− | *You can keep your window layout by [[VimTip165|deleting a buffer without closing the window]]. |
||
− | *A script makes it easy to [[VimTip191|move lines up or down]]. |
||
− | *We have lots of opinions on the [[VimTip914|perfect programming font]]. |
||
− | *<tt>gg"+yG</tt> is one way to [[VimTip960|copy the entire buffer to the clipboard]]. |
||
− | *It is possible to [[VimTip972|run native-Windows Vim from cygwin without a wrapper]]. |
||
− | *Some mappings allow you to [[VimTip1066|quickly add or delete empty lines]]. |
||
− | *A <tt>FocusLost</tt> autocommand is one way to [[VimTip1160|auto-save files when the focus is lost]]. |
||
− | *We have an extensive tutorial on [[VimTip1516|mapping keys]]. |
||
− | *With a suitable definition for <tt>b:match_words</tt>, you can [[VimTip1321|fold a C# region]]. |
||
− | |||
− | ==Previous years== |
||
⚫ |
Latest revision as of 10:23, 26 June 2012
This is an archive of the Did you know? section on the home page
We occasionally replace the DYK section on the home page, and items are copied to here so anyone interested can browse them.
To discuss suggestions for new items, please edit the talk page.
July 2012
- The Vim FAQ is online.
- There are several methods to change the indentation of a block of lines.
- A mapping can change the Home key to move to the first character, or the first that is nonblank.
- Filtering and redirection can capture output from Vim or external programs.
- It's easy to change between backslash and forward slash in a file path.
- If you create your own tags file, you can jump to the correct line and column.
- If you work with many files, it's easy to save them all with :wa or :xa.
- Simple substitutes or a Perl script can convert text using HTML entities like >.
- The command :g/^/exe ".w ".line(".").".txt" saves each line in the buffer to a separate file.
- :g// lists all lines containing the last search pattern, and :redir will capture the results.
- With set browsedir=buffer the File, Open dialog defaults to the current file's directory.
May 2010
- @: will repeat a colon (Ex) command (and @@ will repeat again).
- You can use :g/^\s*$/;//-1sort to sort each block of lines in a file.
- It's useful to map . .`[ to repeat the last command and put the cursor at start of change.
- You can open a web browser with the URL in the current line.
- With --remote-send you can close a Vim you left open remotely.
- If you're used to Perl regex, you can use Perl compatible regular expressions.
- In insert mode, Ctrl-Y inserts the character above. You can make it insert the word above.
- A user-defined command can evaluate :Calc sin(pi/2).
- It's sometimes better to not use the slash delimiter for :s/old/new/.
- You can drag & drop one or more files into gvim.
April 2010
- zz scrolls the current line to the middle of the screen; scrolloff can keep it there.
- Vim can do calculations using Python, Perl or bc.
- You can wrap long lines while moving the cursor by screen lines.
- A tricky search can find text that does not match.
- Pressing % jumps to a matching bracket, and matchit.vim can match much more.
- The shortmess and cmdheight options allow you to avoid "Hit Enter to continue" prompts.
- An option controls how backspace and other delete keys work in insert mode.
- You can display line numbers and change the width of the number column.
- It's easy to change text between lowercase and UPPERCASE.
- The command history allows you to repeat several commands, possibly after editing them.
March 2010
- Vim tutorials has videos illustrating simple and advanced topics.
- Use % to jump to the matching bracket, and more.
- Use :lcd %:p:h to change directory to the file in the current window.
- ga shows the ascii value of the current character.
- You can list changes to the current file, even old changes.
- Use za to toggle folds open/closed.
- The status line can show your fileencoding and bomb.
- In a program, you can jump to the beginning or end of a code block.
- With two related files in a vertical split, you can scroll both windows together.
- It's easy to count the words in a file or block.
- You can even make a frequency table counting the occurrences of each word!
February 2010
- Vim tutorials has videos illustrating simple and advanced topics.
- You can press * to search for the current word.
- Ctrl-A can increment numbers.
- After typing a couple of characters, you can complete a word with Ctrl-N or Ctrl-P.
- Vim's help use prefixes like v_ (visual mode) to show the context.
- The :let command can set registers and options as well as variables.
- The command :42 jumps to line 42, as does typing 42G.
- The shortmess and cmdheight options allow you to avoid "Hit Enter to continue" prompts.
- The 'backspace' option controls how backspace and other delete keys work in insert mode.
- The 'number' and 'numberwidth' options control the display of line numbers.
- It's easy to change text between lowercase and UPPERCASE.
January 2010
- Vim tutorials has videos illustrating simple and advanced topics.
- We have an explanation for how :g/^/m0 reverses all lines.
- In a search pattern, \_s matches a space or tab or newline character.
- A script can use a test like &buftype == "quickfix" to check if it is operating in the quickfix window.
- Typing =i{ reindents the "inner block" (code inside braces).
- Using 'smartindent' means that typing # may remove an indent before the #.
- The 'winaltkeys' option controls whether Vim handles Alt keys.
- If you would prefer Y to be consistent with C, use :nnoremap Y y$.
- A plugin should set its "loaded" variable to show its version, for example let g:loaded_dbext = 503.
- We have a short FAQ for new users concerning common issues raised at #vim.
- You can use :cnoremap to map a key to <C-\>e(...)<CR> which will replace the command line with the (...) expression.