Fandom

Vim Tips Wiki

Vim Tips Wiki:Code guidelines

1,624pages on
this wiki
Add New Page
Talk0

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

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 shortEdit

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>.

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 explanationsEdit

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

  • 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 (but are usually not required, e.g. getline("'<") can be typed literally).

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

Now the same, with syntax highlighting:

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

Displayed as:

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

Problems using space prefixEdit

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.

Also on Fandom

Random Wiki