编辑
原来这个问题与我如何在 vim 中快速输入类似“==========”这样的行完全相同- 但是那个标题没有这么好...
编辑markdown样式文件时,我喜欢
Some heading
------------
Notice the line matches the length of the heading?
目前我做:
yyp:s/./-/g
但我想知道是否有更好的(更少的击键)方法来做到这一点?
原来这个问题与我如何在 vim 中快速输入类似“==========”这样的行完全相同- 但是那个标题没有这么好...
编辑markdown样式文件时,我喜欢
Some heading
------------
Notice the line matches the length of the heading?
目前我做:
yyp:s/./-/g
但我想知道是否有更好的(更少的击键)方法来做到这一点?
正如我刚刚发现的那样,您可以少敲几下键:
yypVr-
- 7,如果你包括 shift 键。
我不是 Vim 专家,但在任何文本编辑器中创建和使用宏都可以帮助我减少击键次数。
在正常模式下,将光标放在要下划线的行上,开始将宏录制到缓冲区(在本例中为 a)
q a <enter>
现在,执行上述命令。在这种情况下,我通过在一系列“-”字符之后插入一个新行来完成。在离开插入模式之前再次按 q 完成。
yyp:s/./-/gA<enter><esc>q
要为您可能拥有的任何标题添加下划线,请在正常模式下将光标放在该行上,然后键入:
@a<enter>
击键
之前:18
之后:3
节省:15!
AFAIK 缓冲区可以分配给 'a' 到 'z'
快乐 Vimming
我已将以下代码添加到我~/.vimrc
的创建这样的标题中。我所做的只是ch=
在一行上执行,它会在下面创建一个用=
's 填充的行。您也可以轻松ch-
地创建-
's 的标题行。
"""" CreateHeaderLine
" Easily create heading mapping
" The following line is an example
" ================================
" mnemonic ch: create header
nnoremap <silent> ch :call CreateHeaderLine('ch' ,'.')<cr>
nnoremap <silent> cH :call CreateHeaderLine('cH', '-')<cr>
function! CreateHeaderLine(mapping, address)
let c = nr2char(getchar())
exe 't ' . a:address
exe "norm! v$r" . c
silent! call repeat#set(a:mapping . c)
endfunction