Vim Tips Wiki
No edit summary
(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 [[Main Page]]'''
+
<big>'''This is an archive of the ''Did you know?'' section on the [[Vim Tips Wiki|home page]]'''</big>
   
Every few weeks, the section on the [[Main Page]] will be replaced. Old items will be moved here so anyone interested can browse them.
+
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]].'''
   
== August 2009 ==
+
==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>&amp;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]].
   
 
==March 2010==
*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>.
 
*The '<tt>opfunc</tt>' option can be used to [[VimTip1570|define your own operator]].
+
*<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.
 
 
*Use <tt>za</tt> to [[VimTip1330|toggle folds open/closed]].
*<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>.
 
   
==June 2009==
+
==February 2010==
*[http://vim.runpaint.org/ '''''Vim Recipes'''''] is a new and free cookbook in PDF and HTML
+
*[http://www.derekwyatt.org/vim/vim-tutorial-videos/ Vim tutorials] has videos illustrating simple and advanced topics.
*The command <tt>:cabbrev</tt> can expand commands and [[VimTip22|fix your frequent typos]].
+
*You can press <tt>*</tt> to [[VimTip1|search for the current word]].
  +
*Ctrl-A can [[VimTip30|increment numbers]].
*In insert mode, typing <tt>&lt;C-R&gt;=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.
*You can [[VimTip108|toggle folds open/closed]] with <tt>za</tt>.
 
  +
*[[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]].
 
 
*The <tt>'backspace'</tt> option controls [[VimTip17|how backspace and other delete keys work in insert mode]].
*Use <tt>:set wildchar=&lt;Tab&gt; 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]].
 
   
==May 2009==
+
==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.
 
*Sort and remove duplicate lines with <tt>:sort u</tt> ([[VimTip648|"unique"]]).
+
*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&nbsp;g:loaded_dbext&nbsp;=&nbsp;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.
   
==April 2009==
+
==Previous years==
 
*[[/2009|2009 ''Did you know'']]
*[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 &lt;CR&gt; o&lt;Esc&gt;</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]]
==March 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]
 
*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.
 
*The '<tt>whichwrap</tt>' option controls whether the backspace and cursor keys [[VimTip137|wrap to the previous/next line]].
 
*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==
 
*[[Did you know/2008|2008 ''Did you know'']]
 

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

May 2010

April 2010

March 2010

February 2010

January 2010

Previous years