Wikia

Vim Tips Wiki

Changes: Vim Tips Wiki:Code guidelines

Edit

Back to page

(Update.)
(In short: add how to get syntax coloring)
Line 5: Line 5:
   
 
A simple alternative is to insert a space before each line in the block, but that method can give the problems discussed below.
 
A simple alternative is to insert a space before each line in the block, but that method can give the problems discussed below.
  +
  +
If you want syntax coloring, you can use <code><nowiki><source lang="vim"></nowiki></code> ... <code><nowiki></source></nowiki></code> instead of <code><nowiki><pre></nowiki></code>. Example:
  +
  +
<source lang="vim">
  +
" simple hello world program, don't actually run this...
  +
echo "hello world!"
  +
sleep 4
  +
echo "goodbye, cruel world!"
  +
sleep 7
  +
wqa!
  +
</source>
  +
  +
We use both <code><nowiki><pre></nowiki></code> and <code><nowiki><source></nowiki></code> blocks, without any strong preferences either way. Use whichever suits your taste, but please remain consistent with the rest of a tip when editing an existing one.
   
 
For inline code (for example, <code>:s/old/new/</code>), type <code><nowiki><code>:s/old/new/</code></nowiki></code>. See [[Template:code]] for more information.
 
For inline code (for example, <code>:s/old/new/</code>), type <code><nowiki><code>:s/old/new/</code></nowiki></code>. See [[Template:code]] for more information.

Revision as of 15:08, August 19, 2013

Vim Tip Guidelines
Quick reference
General guidelines
Titles and renaming a tip
Comments
Categories
Discussion page
Merging similar tips
Deleting a tip
Templates
Formatting code blocks
Entities and other magic
Script comments

In short

When you need to display a block of code in a tip, it is best to use <pre> ... </pre> tags around the block.

A simple alternative is to insert a space before each line in the block, but that method can give the problems discussed below.

If you want syntax coloring, you can use <source lang="vim"> ... </source> instead of <pre>. Example:

" simple hello world program, don't actually run this...
echo "hello world!"
sleep 4
echo "goodbye, cruel world!"
sleep 7
wqa!

We use both <pre> and <source> blocks, without any strong preferences either way. Use whichever suits your taste, but please remain consistent with the rest of a tip when editing an existing one.

For inline code (for example, :s/old/new/), type <code>:s/old/new/</code>. See Template:code for more information.

Examples and explanations

When you use <pre>Some Text</pre>:

  • Some Text is not parsed for wiki code (it's as if you had used <nowiki>).
  • Some Text is taken as preformatted (so whitespace, including line breaks, is preserved).
  • Some Text is displayed in a fixed-width font.
  • Special characters (like &lt; for <) are processed normally.

Simply prefixing each line with a space gives the same result as using the <pre> tag, except that in a line prefixed with a space, normal wiki processing rules apply (for example, '' gives italics).

Here is some sample wikitext that might be in a tip:

<pre>
function MyFunction()
  let newline = ''
  if getline("'>") != getline("'<")
    let newline = "\n"
  endif
  " More stuff would go here.
endfunction
</pre>

This is how the above wikitext is displayed:

function MyFunction()
  let newline = ''
  if getline("'>") != getline("'<")
    let newline = "\n"
  endif
  " More stuff would go here.
endfunction

Problems using space prefix

Here is some text, using <pre> before the text, and </pre> after:

The first line looks good.
Here are some {{double braces}} in the text.
myvar = ''     " this comment explains that '' is an empty string
:nnoremap <F3> :let @+='http://www.example.com/?item='.expand('<cword>')<CR>

Here is exactly the same text, using the insert space before each line technique:

The first line looks good.
Here are some Template:Double braces in the text.
myvar =      " this comment explains that  is an empty string
:nnoremap <F3> :let @+='http://www.example.com/?item='.expand('<cword>')<CR>

The insert space before each line technique has these disadvantages:

  • Punctuation may be mistaken for wiki syntax, so the display may be incorrect.
  • Under some circumstances, if you select text from the spaced code block, you will find that each line has a trailing space (which is irritating if you want to paste the code into an example, and which can break some scripts).
  • On long code blocks, it is easier to insert <pre> before the block and </pre> after.

Around Wikia's network

Random Wiki