Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
,j->将光标移动到下一行,P->如果您是vim用户,您应该知道它会做什么,^->再次开始这一行,是在这里执行任务的一个:它增加光标下的数字,并再次增加下一行。我喜欢这种重复性。对于单行线来说,这很好。不幸的是,出于我的目的,在插入编号时,我倾向于在重构文_Vim_Macros - Fatal编程技术网

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