Nawigacja podobna do Vima n Adobe Acrobat Reader

6

Adobe Acrobat Reader jest obecnie jednym z dobrych czytników PDF dostępnych na platformie Linux. xpdf i Evince wykonują swoją pracę dobrze, ale wyświetlanie programu Acrobat wydaje się być lepsze.

Jestem przyzwyczajony do edytora Vim i chcę funkcji Vima nawigacyjnych (za pomocą h, j, ki ldo poruszania się) w programie Adobe Reader. W jaki sposób mogę to zrobić?

Wiem, że Evince oferuje tego rodzaju nawigację.

Senthil Kumaran
źródło
Nie wiedziałem o superuser.com. Właśnie przeniosłem tam pytanie. Wpuszczę tutaj, na wszelki wypadek interesuje to kogoś.
Senthil Kumaran,

Odpowiedzi:

3

Mam ustawiony vimjak nawigacja w programie Adobe Reader za pomocą AutoHotkey . Musisz skonfigurować mapowanie klawiszy, aby było aktywne tylko wtedy, gdy Adobe Reader jest aktywnym oknem, aby to powiązanie klawiszy nie wpłynęło na inne aplikacje. Robi to następujący zmodyfikowany skrypt AutoHotKey.ahk

#IfWinActive ahk_class AcrobatSDIWindow
h::Send {Left}
Return

#IfWinActive ahk_class AcrobatSDIWindow
j::Send {Down}
Return

#IfWinActive ahk_class AcrobatSDIWindow
k::Send {Up}
Return

#IfWinActive ahk_class AcrobatSDIWindow
l::Send {Right}
Return

ahk_classNazwa może być określona przez uruchomiony AutoIt3 Window Spy.

Jedyną wadą jest Search/Findpraca w programie Adobe Reader. Jeśli tekst do wyszukania zawiera h/j/k/l, będzie interpretowany jako klawisze strzałek. Możesz obejść to ograniczenie, zawieszając klucz automatyczny lub klikając Pause Scriptw obszarze powiadomień paska zadań. Lepszym podejściem do pokonania tego ograniczenia jest użycie wielkich liter (HJKL). Ponieważ program Adobe wyszukuje bez rozróżniania wielkości liter, wyszukiwanie obejmuje również litery hjkl. na przykład mecze Taka z Take

manav mn
źródło
1

O ile mi wiadomo, nie jest to możliwe. W toku jest projekt stworzenia przeglądarki plików pdf z interfejsem podobnym do vima, ale chociaż rozwój wydaje się być dość aktywny, ma jeszcze wiele do zrobienia. Jeśli jest to interesujące, możesz je znaleźć tutaj (wersje są dostępne dla systemu Linux i Windows, chociaż rozwój koncentruje się na systemie Windows):

http://code.google.com/p/apvlv/

W przeciwnym razie myślę, że utkniesz z evince lub używasz klawiszy kursora.

Glin.
źródło
1

Ten skrypt AutoHotKey, który napisałem, obsługuje wyszukiwanie hjkl, gg, G, Ce, Cy, Cf i Cb, a także /, n i N. Naciśnięcie /powoduje przejście do trybu wyszukiwania, a Esc, Enteroraz Ctrl- [wprowadzi Cię z powrotem w trybie normalnym. Jeśli coś nie działa tak, jak powinno, spróbuj nacisnąć Escape, aby wrócić do trybu normalnego.

#IfWinActive ahk_class AcrobatSDIWindow
h:: 
if (inAcrobatSearchMode)
  Send h
else Send {Left}
return

j::
if (inAcrobatSearchMode)
  Send j 
else Send {Down}
return

k::
if (inAcrobatSearchMode)
  Send k 
else Send {Up}
return

l::
if (inAcrobatSearchMode)
  Send l 
else Send {Right}
return

n::
if (inAcrobatSearchMode)
  Send n
else Send {F3}{Esc}
return

+n::
if (inAcrobatSearchMode)
  Send N
else Send +{F3}{Esc}
return

+g::
if (inAcrobatSearchMode)
  Send G
else Send {End} 
return

; see http://stackoverflow.com/questions/1794258/detect-a-double-key-press-in-autohotkey

g::
if (inAcrobatSearchMode)
  Send g
else {
  if (A_PriorHotkey <> "g" or A_TimeSincePriorHotkey > 400) {
      ; Too much time between presses, so this isn't a double-press.
      KeyWait, g
      return
  }
  Send {Home}
}
return

/::
if (inAcrobatSearchMode)
  Send /
else {
  inAcrobatSearchMode := true
  Send ^f
}
return

Esc::
inAcrobatSearchMode := false
Send {Esc}
return

^[::
inAcrobatSearchMode := false
Send {Esc}
return

Enter::
if (inAcrobatSearchMode) {
  inAcrobatSearchMode := false
}
Send {Enter}
return

;go back into normal mode after scrolling with any control command

^e::
inAcrobatSearchMode := false
Send {Esc}{Down}
return

^y::
inAcrobatSearchMode := false
Send {Esc}{Up}
return

^f::
inAcrobatSearchMode := false
Send {Esc}{PgDn}
return

^b::
inAcrobatSearchMode := false
Send {Esc}{PgUp}
return

#IfWinActive

Oto sedno

W komentarzach pozostaw krótkie raporty o błędach lub sugestie!

Istnieją pewne znane problemy z przytrzymywaniem poleceń ruchu Ctrl przez długi czas, które mają związek z tym, że AutoHotKey nie jest w stanie wystarczająco szybko przetłumaczyć danych wejściowych, ale polecenia ruchu inne niż Ctrl nie powinny mieć tego problemu.

Niestety, nie wiem wystarczająco dużo o Linuksie lub Mac OS X, aby móc dostarczyć dla nich również rozwiązania. Jeśli komuś uda się przenieść to na inne systemy operacyjne, dodaj swoją odpowiedź lub zasugeruj edycję tego z instrukcjami. :)

Gordon Gustafson
źródło
1

Nie jestem pewien, czy to możliwe.

Ale powinieneś wypróbować Zathurę , która działa bardzo dobrze i próbuje naśladować vima - ma nawet tryb wiersza poleceń, uruchamiany przez :.

mMontu
źródło
Mam nadzieję, że mogę dodawać adnotacje do plików pdf za pomocą Zathury ..
Student
1

W Linuksie istnieje alternatywa dla AutoHotkey, która jest wywoływana AutoKey, a oto moje rozwiązanie:

(Właśnie zrobiłem to pod Ubuntu 14.04 z, AutoKeychociaż nie był aktualizowany od dłuższego czasu)

  • Najpierw zainstaluj Autokey. Pobierz go na https://code.google.com/p/autokey/downloads/list , rozpakuj go i śledź, READMEaby go skompilować i zainstalować (wybrałem wersję Qt)
  • uruchom autokeyalbo z Launchera, albo uruchom go w terminalu na/usr/bin/autokey-qt
  • użyć, jaby przejść w dół, po prostu
    • utwórz nową frazę
    • nazwij to mendeley - uplub cokolwiek znaczącego
    • w polu frazy (duże pole tekstowe - które tak naprawdę jest edytorem!) wpisz <up>
    • przypisz jjako Setklawisz skrótu za pomocą przycisku
    • ustaw Filtr okien, klikając ostatni Setprzycisk
    • Zapisz i przetestuj w swojej ulubionej przeglądarce PDF (moja jest Mendeley, ponieważ obsługuje podświetlanie i adnotacje)
  • i ja też postanowiłem kprzejść do góry, spacedo strony w dół i shift + spacedo strony w górę.

Ref:

SmilingSun
źródło
1

Brzmi jak praca dla IronAHK !

k::send {up}
j::send {down}
l::send {right}
h::send {left}

Wiem, że taka podstawowa funkcja skrótu działa, ale niektóre bardziej złożone polecenia nie są jeszcze obsługiwane przez IronAHK.

John T.
źródło
Czy k::Upskładnia nie jest obsługiwana?
Phoshi
0

Meh, to pytanie ma rok, a jednak spróbuję.

Nie na temat, bo nie wiem, jak to zrobić w acroread, ale możesz wypróbować Apvlv :

„Apvlv to przeglądarka plików PDF / DJVU / UMD pod Linux / WIN32, a jego zachowanie [jest] podobne do Vima.”

Jeśli chcesz opuścić acroread, ten czytnik pdf da ci dużo vim-miłości.

Apvlv jest oparty na libpoppler (ten sam back-end co evince, a teraz także xpdf ), więc możesz napotkać te same problemy z wyświetlaniem, o których wspomniałeś. Ale z pewnością odpala szybciej niż acroread , który jest najwolniejszy w branży! Powodzenia.

Uwaga: Kiedyś napisałem dokumentację dla tego projektu.

Sebastian
źródło