Как переназначить ключи для определенных плагинов в Vim - PullRequest
3 голосов
/ 25 июня 2011

Есть ли распространенный способ переназначения ключей, используемых в определенных плагинах Vim, таких как NERDTree или TagList?Я пытался переназначить некоторые ключи для плагина TagList, но я не смог этого сделать.Ключи NERDTree было легче переназначить, но из-за способа написания плагина?

Ответы [ 2 ]

2 голосов
/ 05 августа 2012

Современные плагины могут быть написаны для повторного отображения, как встроенные команды vim, если они используют <Plug> (:help using-<Plug>). Плагин может проверить, сопоставил ли пользователь что-то команде <Plug> (пример: <Plug>(textobj-indent-a)), если нет, то он использует свое собственное сопоставление. Таким образом, пользователь может определить нужные ему карты, а плагин заполнит все остальные.

В ответе rkulla он показывает код отображения NERD_tree. Что они делают, так это предоставляют переменные, которые пользователь может установить для изменения своих отображений:

let g:NERDTreeMapDeleteBookmark = 'A'
let g:NERDTreeMapMenu = 'B'
let g:NERDTreeMapHelp = 'C'

Эти операторы могут быть добавлены в ваш vimrc для определения ваших собственных карт (вместо изменения кода плагина).

Другие плагины будут использовать переменную с именем, похожим на no_nerdtree_maps (разные имена для каждого плагина). Если вы установите эту переменную в вашем vimrc, то сможете создавать свои собственные карты для функций / команд плагина.

0 голосов
/ 25 июня 2011

Просто откройте NERD_tree.vim в директории плагинов, и вы увидите раздел «Вызовы переменных init для сопоставлений клавиш» с такими вызовами:

call s:initVariable("g:NERDTreeMapDeleteBookmark", "D")
call s:initVariable("g:NERDTreeMapMenu", "m")
call s:initVariable("g:NERDTreeMapHelp", "?")

...

второй аргумент s: initVariable () - это сочетание клавиш. Просто измените его на то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...