На пентадактиле: используйте URL текущей вкладки в команде. Я узнал, как создать команду, которая использует URL текущего буфера. Я использую это, чтобы переписать URL-адрес для использования прокси-сервера hypothes.is "через гипотезу":

map -builtin <C-x><C-V> :execute ':open http://via.hypothes.is/' + buffer.URL

Но когда я нажимаю Cx CV, я вижу всю команду, напечатанную в "области эха":

:execute ':open http://via.hypothes.is/' + buffer.URL

Есть ли способ сделать эту распечатку более краткой, чтобы у всей этой команды был такой псевдоним :via?

1 ответ1

1

определение псевдонима

Простейшим способом было бы дать команде псевдоним и сопоставить привязку клавиш для вызова этого псевдонима.

command! via :execute ':open http://via.hypothes.is/' + buffer.URL
map -b <C-x><C-V> :via

Затем вы можете выполнить команду либо с помощью связывания клавиш, либо в командной строке через ее псевдоним via .

выполнение команды немедленно

Тем не менее, вам действительно нужна команда, чтобы распечатать в командной строке и ждать, пока вы нажмете Enter? Предпочтительным решением было бы просто немедленно выполнить команду при выполнении привязки клавиш. Вы можете сделать это одним из следующих способов:

  1. добавление <CR> в конец команды, которую вы выполняете

    map <C-x><C-v> :via<CR>
    

    (это решение переносимо на Vimperator); или же

  2. используя опцию -ex для команды map .

    map <C-x><C-v> -ex via
    

выполнение команды и печать сообщения

Если по какой-то причине вам не нужен фактический псевдоним, а просто хотите, чтобы команда выполнялась при печати "via" в области эха, вы можете использовать привязку, подобную этой:

map <C-x><C-V> -js 
\ dactyl.open('http://via.hypothes.is/' + buffer.URL);
\ commandline.echo('via',commandline.HL_INFOMSG);
\ setTimeout(function(){ commandline.echo('', commandline.HL_INFOMSG); }, 500);

500 в конце - это задержка (в миллисекундах) до исчезновения сообщения. Если вы хотите, чтобы сообщение оставалось до тех пор, пока вы не введете новую команду или не измените вкладки, просто полностью удалите последнюю строку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .