From 2bd37ac201efda3bf93a0eb4c70e45fa952d8fa0 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Thu, 19 Apr 2018 21:21:23 +0200 Subject: Take a glob instead of a regex pattern Globs make it easier to match file and directory names. For example, instead of writing: :TabsGrep utol.*grep we can write: :TabsGrep utol*grep Discovered `glob2regpat()` in the help while searching for a way to take a glob in my command and it ended up being the perfect thing, yay. Needed to slice the regex returned by the function to discard the first and last characters, as it automatically adds `^$` delimiters around the generated regex pattern. This doesn't make sense for our use case because we want to be able to start writing from anywhere in the middle of the path, and not have to add `*`s to the beginning and end. --- autoload/tabs_grep.vim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/autoload/tabs_grep.vim b/autoload/tabs_grep.vim index c307aee..b189433 100644 --- a/autoload/tabs_grep.vim +++ b/autoload/tabs_grep.vim @@ -3,9 +3,12 @@ function! tabs_grep#TabsGrep(search) silent tabs redir END + " Slice to get rid of `^$` delimiters + let pattern = glob2regpat(a:search)[1:-2] + let tabs = split(tabs_output, '\n') - call filter(tabs, function('s:MatchString', [a:search])) + call filter(tabs, function('s:MatchString', [pattern])) let tabs = s:FilterTabPageElements(tabs) -- cgit v1.2.3