Как заставить elinks создавать дамп веб-страницы по URL под курсором в новом буфере / вкладке vim? - PullRequest
0 голосов
/ 11 сентября 2010

Я пытаюсь заставить elinks создавать дамп веб-страницы по URL, который начинается с текущей позиции буфера в vim (и заканчивается в EOL), путем сопоставления этого сочетания клавиш и помещения его в мой .vimrc:

nmap owp :norm yE \| new \| .!elinks -dump @"<CR>

Это возвращает оставшуюся часть строки в регистр ". Затем предполагается открыть новый буфер и вызвать elinks, который должен сбросить отображаемую веб-страницу в этот новый буфер. Когда я запускаю команду, URL-адрес восстанавливается, и вот и все. Новый буфер не открывается и elinks не вызывается.

  1. Что я здесь не так делаю?
  2. Есть ли более умный способ получить URL под курсором? Этот метод не работать с URL-адресами, которые находятся в середине строки.

1 Ответ

0 голосов
/ 11 сентября 2010

Неважно. Покопался в руководстве по vim и нашел несколько обходных путей. Одна проблема была с этим:

.!elinks -dump @"<CR>

это не будет работать, как ожидалось. Все после! оператор передается в оболочку дословно через vim - поэтому значение регистра не будет передано elinks. Другая проблема заключается в том, что разделитель команд как-то не работает после :norm yE. Окончательное решение обойти эти проблемы было следующим:

function! Browser ()
  normal yE
  new 
  execute ".!elinks -dump " . @"
  set nomodified
endfunction
nmap owp :call Browser ()<CR>

Обратите внимание на использование execute, чтобы обойти ограничение "!" оператор. Мне все еще нужно найти решение для вопроса 2. Тем не менее,

...