diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim index 1c2131a..a0d9127 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -510,11 +510,14 @@ endfunction "FUNCTION: KeyMap.bind() {{{3 function! s:KeyMap.bind() - " If the key we're trying to map is a special key we must escape the - " leading '<', otherwise vim will replace it with the actual keycode + " If the key sequence we're trying to map contains any '<>' notation, we + " must replace each of the '<' characters with '' to ensure the string + " is not translated into its corresponding keycode during the later part + " of the map command below " :he <> - if self.key =~# '^<' - let keymapInvokeString = substitute(self.key, '^<', '', '') + let specialNotationRegex = '\m<\([[:alnum:]_-]\+>\)' + if self.key =~# specialNotationRegex + let keymapInvokeString = substitute(self.key, specialNotationRegex, '\1', 'g') else let keymapInvokeString = self.key endif