3

Мне нужно использовать URL текущей страницы в качестве аргумента для команды, которую я выполняю через:!. Я не хочу копировать его мышью или печатать.

Есть какой-либо способ сделать это?

Я собираюсь отправить Emacts этот URL-адрес, который должен быть автоматически вставлен в командную строку в Vimperator, и после этого я хочу набрать там текст с описанием страницы / тегов.

2 ответа2

1

Вероятно, это не лучший способ для достижения этой цели, но это обходной путь, который я использовал. Автокоманды имеют доступ к нескольким ключевым словам (см. Http://vimperator.org/help/vimperator/autocommands.xhtml), среди них ключевое слово "url". Так

:au PageLoad * :!echo "<url>" >/tmp/mycurrenturl

устанавливает автокоманду, которая хранит ваш URL в tmpfile, где ваш скрипт может получить к нему доступ.

Буду признателен, если кто-то может опубликовать более элегантное решение.

1

Используя Vimperator 3.4 - в пользовательской команде - я использую URL текущего буфера следующим образом:

command -nargs=0 <name> :execute "!echo " + content.location.href

Это определяет команду пользователя :<name> , которая не принимает аргументов. Он вызывает команду Vimperator :execute которая принимает строку и выполняет ее так, как если бы вы были тем, кто ее набрал. В этом случае он принимает строку "!echo " + content.location.href . content.location.href оценивается как выражение JavaScript (или что-то подобное) и возвращает URL-адрес страницы, на которой была выполнена команда.

Выполнение :<name> на этой странице выводит это (после краткого всплывающего окна терминала - в Windows 7, используя Cygwin's Bash в качестве моей оболочки):

http://superuser.com/questions/363654/vimperator-how-to-use-current-pages-url-as-shell-command-argument

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