|
|
| Line 34: |
Line 34: |
| |
</pre> |
|
</pre> |
| |
|
|
|
| − |
Of course you can use other characters instead of <tt>-</tt>, for example, <tt>=</tt> or <tt>_</tt>. |
+ |
Of course you can use other characters instead of <code>-</code>, for example, <code>=</code> or <code>_</code>. |
| |
|
|
|
| |
In case you want to get a line above ''and'' below the heading, do this in normal mode: |
|
In case you want to get a line above ''and'' below the heading, do this in normal mode: |
| Line 47: |
Line 47: |
| |
</pre> |
|
</pre> |
| |
|
|
|
| − |
It works by finding each matching line, then copying it ({{help|:t}}), then substituting each character (<tt>.</tt>) in the line. |
+ |
It works by finding each matching line, then copying it ({{help|:t}}), then substituting each character (<code>.</code>) in the line. |
| |
|
|
|
| |
==Using a function== |
|
==Using a function== |
| |
The following code (for your [[vimrc]]) defines a user command to underline the current line. Examples: |
|
The following code (for your [[vimrc]]) defines a user command to underline the current line. Examples: |
| |
{| class="cleartable |
|
{| class="cleartable |
| − |
| <tt>:Underline</tt> || gives underlining like <tt>--------------</tt> (default). |
+ |
| <code>:Underline</code> || gives underlining like <code>--------------</code> (default). |
| |
|- |
|
|- |
| − |
| <tt>:Underline =</tt> || gives underlining like <tt>==============</tt>. |
+ |
| <code>:Underline =</code> || gives underlining like <code>==============</code>. |
| |
|- |
|
|- |
| − |
| <tt>:Underline -=</tt> || gives underlining like <tt>-=-=-=-=-=-=-=</tt>. |
+ |
| <code>:Underline -=</code> || gives underlining like <code>-=-=-=-=-=-=-=</code>. |
| |
|- |
|
|- |
| − |
| <tt>:Underline ~+-</tt> || gives underlining like <tt>~+-~+-~+-~+-~+-~+-</tt>. |
+ |
| <code>:Underline ~+-</code> || gives underlining like <code>~+-~+-~+-~+-~+-~+-</code>. |
| |
|} |
|
|} |
| |
|
|
|
| Line 75: |
Line 75: |
| |
|
|
|
| |
==Comments== |
|
==Comments== |
| − |
<tt>yypVr-</tt> also works well. Great tip for Markdown and WikiTex users. |
+ |
<code>yypVr-</code> also works well. Great tip for Markdown and WikiTex users. |
| |
[[User:Linktohack|Linktohack]] 15:37, February 3, 2012 (UTC) |
|
[[User:Linktohack|Linktohack]] 15:37, February 3, 2012 (UTC) |
| − |
:Thanks. There is a subtle feature about the method in the tip. If you have the default 'virtualedit' setting (""), and if there is a tab in the line, using <tt>Vr-</tt> replaces each tab with a single dash, while the method in the tip uses the correct number of dashes depending on the width of the tab. [[User:JohnBeckett|JohnBeckett]] 06:50, February 4, 2012 (UTC) |
+ |
:Thanks. There is a subtle feature about the method in the tip. If you have the default 'virtualedit' setting (""), and if there is a tab in the line, using <code>Vr-</code> replaces each tab with a single dash, while the method in the tip uses the correct number of dashes depending on the width of the tab. [[User:JohnBeckett|JohnBeckett]] 06:50, February 4, 2012 (UTC) |
This tip shows how to underline text document headings with, for example, a dashed line.
Using a mapping
Edit
Starting with a line of text like:
A Very Important Tip!
the mapping below inserts a row of dashes like this:
A Very Important Tip!
---------------------
This is useful to highlight headings. Add the following to your vimrc:
" Underline the current line with dashes in normal mode
nnoremap <F5> yyp<c-v>$r-
" Underline the current line with dashes in insert mode
inoremap <F5> <Esc>yyp<c-v>$r-A
Of course you can use other characters instead of -, for example, = or _.
In case you want to get a line above and below the heading, do this in normal mode:
<F5>yykP
Using substitute
Edit
You can use the global and substitute commands (:help :g, :help :s) to underline all headings matching a pattern. For example, the following adds a row of dashes under each line that starts with "Chapter":
:g/^Chapter/t.|s/./-/g
It works by finding each matching line, then copying it (:help :t), then substituting each character (.) in the line.
Using a function
Edit
The following code (for your vimrc) defines a user command to underline the current line. Examples:
:Underline | gives underlining like -------------- (default).
|
:Underline = | gives underlining like ==============.
|
:Underline -= | gives underlining like -=-=-=-=-=-=-=.
|
:Underline ~+- | gives underlining like ~+-~+-~+-~+-~+-~+-.
|
function! s:Underline(chars)
let chars = empty(a:chars) ? '-' : a:chars
let nr_columns = virtcol('$') - 1
let uline = repeat(chars, (nr_columns / len(chars)) + 1)
put =strpart(uline, 0, nr_columns)
endfunction
command! -nargs=? Underline call s:Underline(<q-args>)
yypVr- also works well. Great tip for Markdown and WikiTex users.
Linktohack 15:37, February 3, 2012 (UTC)
- Thanks. There is a subtle feature about the method in the tip. If you have the default 'virtualedit' setting (""), and if there is a tab in the line, using
Vr- replaces each tab with a single dash, while the method in the tip uses the correct number of dashes depending on the width of the tab. JohnBeckett 06:50, February 4, 2012 (UTC)