List Vim中的降价列表
在标记文件中创建列表时,我想在按List Vim中的降价列表,list,vim,markdown,List,Vim,Markdown,在标记文件中创建列表时,我想在按时插入一个新项目。我 希望它同时适用于有序列表和无序列表。这意味着,在有序列表中 列表项编号将自动递增。另外,如果我在没有 内容,我想删除该项并添加一个新行,基本上结束列表;这是 当前的行为 我设法实现了一些我想要的功能 使用此自动命令: autocmd Filetype markdown setlocal com=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,b:- | set formatoptions=tcroqln
时插入一个新项目。我
希望它同时适用于有序列表和无序列表。这意味着,在有序列表中
列表项编号将自动递增。另外,如果我在没有
内容,我想删除该项并添加一个新行,基本上结束列表;这是
当前的行为
我设法实现了一些我想要的功能
使用此自动命令:
autocmd Filetype markdown setlocal com=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,b:- | set formatoptions=tcroqln
但该自动命令不适用于有序列表,并且在按下
时不会结束列表
在空白列表项上
可以添加这两个功能吗?要处理有序列表,您可以像处理
-
符号一样将它们视为注释,只需添加:setlocal com+=b:1。
这不会自动递增,但无论如何,我认为Markdown在呈现列表时会为您这样做
没有用于结束列表的内置逻辑,但只需按
即可删除自动插入的注释。如果这还不够好,那么:imap…
映射可以检测到这种情况(通过…
部分中调用的函数),然后自动将其删除。子弹.vim是一个插件,它比修改comments命令容易得多
您可以通过键入“-”插入项目符号列表,下一行将自动插入项目符号
您还可以通过键入“1”插入编号列表,随后的行将自动按顺序编号
自述文件:
vim是一个用于自动项目符号列表的vim插件
用法
在标记或文本文件中,使用-或*启动项目符号列表。按
返回到下一行,将创建一个新的列表项
将以下内容放到
~/.vim/after/ftplugin/markdown.vim
" list markers (*, -, 1.)
function! s:list_marker() abort
let line = substitute(getline(line('.')), '^\s*', '', '')
let marker = matchstr(line, '^\([*-]\|\d\+\.\)\s')
if !empty(marker) && marker == line
return "\<c-u>"
endif
if marker =~ '\d'
let marker = marker + 1 . '. '
endif
return "\<cr>" . marker
endfunction
inoremap <expr><buffer> <cr> <sid>list_marker()
nmap <buffer> o A<cr>
“列表标记(*,-,1.)
函数!s:list_marker()中止
let line=substitute(getline(line('.'),'^\s*','','')
让marker=matchstr(行“^\([*-]\\\\\d\+\.\)\s”)
如果!空(标记器)&&marker==行
返回“\”
恩迪夫
如果标记=~'\d'
让marker=marker+1
恩迪夫
返回“\”。标记
端功能
inoremap列表_标记()
nmap o A
谢谢你的回答。这可能足够好了,但是没有办法自动增加已排序的列表吗?也许可以通过函数而不是使用Vim的注释功能?我不知道有任何内置的自动增加功能;你可以将其构建到我暗示的
映射中。为什么不使用1.
来列出它ems;这使得在行中拖沓变得更容易。我有点完美主义。数字递增更容易阅读。我一直在尝试编写一个函数来实现它,但我几乎不知道vimscript,所以我很难做到这一点。但无论如何,我会接受你的答案,我会尝试自己做额外的工作。