我使用vim来管理待办事项列表,并想设置一个热键做到以下几点:如何设置Vim来搜索并排序包含特定字符串的所有行?
查找包含光标下的字行。世界总是一个格式为:#mytaghere
按照其中包含的其他标记的字母顺序排列所有这些行。标签又是#mytaghere格式。例如,标签#priorityA的所有行都将按照字母顺序排列,并放置在标签为#priorityB的所有行上,依此类推。
将所有这些行放入Vim的quickfix窗口中。
我设法通过把以下到我的.vimrc文件来实现的1和3限量版本:
map <f2> :vimgrep <cword> % <bar> copen <enter>
set [email protected],48-57,_,192-255,95,35 "lets cword include #s and _s
每当光标下的单词包含#这种设置失败,只要字符是别的东西(例如,一个_),它就会工作。产生的错误是:“E682:无效的搜索模式或分隔符”,这看起来像#正在干扰vimgrep。
此外,我想不出如何按优先级标签排序行。
在此先感谢您的帮助。我只是在学习Vim,如果我能解决这个问题,我就可以将它用于我的所有组织。
这可能是最好的周围使用使用vimgrep模式分隔符,':使用vimgrep/ /% ...'。另外,':sort //'可能在这里使用。 –
glts
2013-03-10 08:12:20
vim.org上有很多todo插件。你有尝试过吗? – romainl 2013-03-10 09:32:22
我看过几个不同的插件,以及一些不同的专有程序。然而,我真正需要的是能够搜索标签并对结果进行排序。我可以更简单地让我的解决方案更好。 – user2153281 2013-03-10 19:30:19