Как повторно использовать основную функцию NerdTree с API? - PullRequest
0 голосов
/ 06 декабря 2018

Я ищу способ повторно использовать основные функции nerdtree в функции обратного вызова NERDTreeAddKeyMap, но я не нашел способа сделать это после поиска в сети.

Я попробовал несколько вещей, таких как один ниже:

call NERDTreeAddKeyMap({                                                         
  \ 'key': '<Left>',                                                             
  \ 'scope': 'Node',                                                             
  \ 'callback': 'NerdTest' })                                                    

function! NerdTest(node)                                                         
  call closeCurrentDir(a:node)                                                                                                                                                                           
endfunction

Но я сталкиваюсь с этой ошибкой при попытке нажать на каталог

E117: Unknown function: closeCurrentDir

Есть предложения?

С уважением,

1 Ответ

0 голосов
/ 06 декабря 2018

Функция closeCurrentDir является локальной для скрипта;он не подвергается внешним воздействиям.

Существуют хаки, которые делают его доступным, или вы можете попросить автора представить его как функцию :help autoload.

Однако, поскольку эта функция сопоставлена ​​с клавишей (:help NERDTree-x), вы можете просто активировать эту клавишу с помощью :normal.Если вы используете соответствующую конфигурационную переменную (g:NERDTreeMapCloseDir) вместо жесткого кодирования ключа, это даже допускает переназначения.

function! NerdTest(node)
    execute 'normal' g:NERDTreeMapCloseDir
endfunction
...