,j->将光标移动到下一行,P->如果您是vim用户,您应该知道它会做什么,^->再次开始这一行,是在这里执行任务的一个:它增加光标下的数字,并再次增加下一行。我喜欢这种重复性。对于单行线来说,这很好。不幸的是,出于我的目的,在插入编号时,我倾向于在重构文
,j->将光标移动到下一行,P->如果您是vim用户,您应该知道它会做什么,^->再次开始这一行,是在这里执行任务的一个:它增加光标下的数字,并再次增加下一行。我喜欢这种重复性。对于单行线来说,这很好。不幸的是,出于我的目的,在插入编号时,我倾向于在重构文,vim,macros,Vim,Macros,,j->将光标移动到下一行,P->如果您是vim用户,您应该知道它会做什么,^->再次开始这一行,是在这里执行任务的一个:它增加光标下的数字,并再次增加下一行。我喜欢这种重复性。对于单行线来说,这很好。不幸的是,出于我的目的,在插入编号时,我倾向于在重构文本中进行,因此基本上需要}功能-但由于它进行行计数的方式,仅用\n\n替换^不会减少它。可惜,否则它会进入我的.vimrc。好代码,无论如何,我不知道\=()-我在vim帮助中找不到它!你可以使用任何你喜欢的函数,比如一个为自己保存计数的函数。
,
j
->将光标移动到下一行,P
->如果您是vim用户,您应该知道它会做什么,^
->再次开始这一行,
是在这里执行任务的一个:它增加光标下的数字,并再次增加下一行。我喜欢这种重复性。对于单行线来说,这很好。不幸的是,出于我的目的,在插入编号时,我倾向于在重构文本中进行,因此基本上需要}
功能-但由于它进行行计数的方式,仅用\n\n
替换^
不会减少它。可惜,否则它会进入我的.vimrc
。好代码,无论如何,我不知道\=()
-我在vim帮助中找不到它!你可以使用任何你喜欢的函数,比如一个为自己保存计数的函数。在这种情况下,您可能需要使用封装“循环”的命令,例如。否则,请参见:h sub replace-\=
这是一种创建简单编号列表的简便方法。我在我的.vimrc中添加了以下条目:;要使用它,请进行视觉选择,然后按“引线”键(我的将重新映射到空格键)+“n”;i、 e.n。vnoremap n:s/^\s*\zs/\=(行('.')-行("“@VictoriaStuart.preference:xnoremap
此处是为了不弄乱大多数代码段插件所使用的选择模式。相应的:UnNumberLines
要简单得多:命令!-nargs=0-range=%UnNumberLines,s/\d\+\.//g
非常同意,专门用于该任务的插件比家用ma好得多取消宏,这是因为创建序列是一项不止一次的任务。要添加一些字符(
),可以使用:“这是最好的解决方案。我甚至不知道gv
或g
,现在我已经了解了它们,它们也可以用于其他情况。
Item one
Item two
Item three
1. Item one
2. Item two
3. Item three
:'<,'>s/^\s*\zs/\=(line('.') - line("'<")+1).'. '
command! -nargs=0 -range=% Number <line1>,<line2>s/^\s*\zs/\=(line('.') - <line1>+1).'. '
i # insert mode
<ctrl-Y><ctrl-Y><ctrl-Y> # copy the first few characters from the line above
<ESC> # back to normal mode
| # go back to the start of the line
<ctrl-A> # increment the number
j # down to the next line
q # stop recording
qb^yW+P^<Ctrl-A>q
qb # start recording macro 'b'
^ # move to start of text on the line
yW # 'yank' or copy a word including the ending whitespace.
+ # move one line down to the start of the next line
P # place text ahead of the cursor
^ # move to start of text
<Ctrl-A> # increment text
q # Finish recording macro
^<C-V>2j
I0. <Esc>
gvg<C-A>
1. foo
1.99-> bar
1.100->
vim.api.nvim_set_keymap('i','<Enter>','v:lua.enter_or_list()', {expr = true})
function _G.enter_or_list()
local line = vim.api.nvim_buf_get_lines(0, vim.fn.line('.') - 1, -1, false)[1]:match('^%s*[^%a%s]+')
if not line then
return '\r'
else
local start, finish = line:find('[^%a%s]*%d')
local main = line:sub(start,finish)
local suffix = line:sub(finish+1)
return table.concat({
'\r',
main,
vim.api.nvim_replace_termcodes('<Esc><C-a>a', true, true, true),
suffix,
' '
})
end
end
imap <silent> <S-Enter> <CR><Esc>kk<End>Ev<Home>yjpk<End>e<C-a><End>a<Space>