webdevqa.jp.net

Adobe AcrobatReaderでのVimのようなナビゲーション

Adobe Acrobat Readerは現在、Linuxプラットフォームで利用できる優れたPDFリーダーの1つです。xpdfとEvinceはうまく機能していますが、Acrobatの表示は優れているようです。

私はVimエディターに慣れていて、Vimナビゲーション機能が必要です( hjk、および l 移動する)AdobeReaderで。それ、どうやったら出来るの?

Evinceがそのようなナビゲーションを提供していることを私は知っています。

7
Senthil Kumaran

AutoHotKey を使用して、AdobeReaderのナビゲーションのようにvimを設定しました。このキーバインディングが他のアプリケーションに影響を与えないように、AdobeReaderが現在アクティブなウィンドウである場合にのみアクティブになるようにキーマッピングを構成する必要があります。次の変更された 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_classの名前は、AutoIt3 Window Spyを実行することで判別できます。

唯一の欠点は、AdobeReaderでのSearch/Find操作中です。検索テキストにh/j/k/lが含まれている場合、矢印キーとして解釈されます。この制限を克服するには、自動キーを一時停止するか、タスクバーの通知領域からPause Scriptをクリックします。 この制限を克服するためのより良いアプローチは、大文字(HJKL)を使用することです。 Adobeは大文字と小文字を区別せずに検索するため、検索ではhjkl文字も対象になります。たとえば、taKeはtakeと一致します

3
manav m-n

私の知る限り、これは不可能です。 vimのようなインターフェースを備えたPDFビューアを作成するプロジェクトが進行中ですが、開発は非常に活発であるように見えますが、まだ進む方法があります。興味がある場合は、ここで見つけることができます(LinuxとWindowsのバージョンが利用可能ですが、開発はWindowsに重点を置いています)。

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

そうでなければ、私はあなたが証拠に固執したり、カーソルキーを使用したりしていると思います。

1
Al.

それが可能かどうかはわかりません。

ただし、 Zathura を試してみてください。これは非常にうまく機能し、vimを模倣しようとします。:によってトリガーされるコマンドラインモードもあります。

1
mMontu

Linuxでは、AutoKeyと呼ばれるAutoHotkeyの代替手段があり、これが私の解決策です。

(Ubuntu 14.04でAutoKeyを使用して作成しましたが、長い間更新されていません)

  • 最初にAutokeyをインストールします。 https://code.google.com/p/autokey/downloads/list でダウンロードし、解凍してREADMEに従ってコンパイルし、インストールします(Qtバージョンを選択しました)
  • launcherからautokeyを実行するか、ターミナルの/usr/bin/autokey-qtで実行します。
  • jを使用して下に移動するには、
    • 新しいフレーズを作成する
    • mendeley - upまたは意味のある名前を付けます
    • フレーズボックス(大きなテキストボックス–実際にはエディタです!)に、<up>と入力します。
    • jボタンを使用してSetをホットキーとして割り当てます
    • 最後のSetボタンをクリックしてウィンドウフィルターを設定します
    • 保存して、お気に入りのビューアでテストしてくださいPDFビューア(強調表示と注釈をサポートしているため、私のものはMendeleyです)
  • また、kを上に移動し、spaceをページダウンに、shift + spaceをページアップに作成しました。

参照:

1
SmilingSun

私が書いたこのAutoHotKeyスクリプトは、hjkl、gg、G、C-e、C-y、C-f、C-bに加えて、検索用の/、n、Nをサポートしています。押す / 検索モードになり、 Esc、 Enter、および Ctrl-[ 通常モードに戻ります。正常に機能しない場合は、[エスケープ]を押して通常モードに戻ってみてください。

#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

要点はこちら

コメントに短いバグレポートや提案を残してください!

Ctrl移動コマンドを長時間押し続けると、AutoHotKeyが入力を十分に速く変換できないことに関係するいくつかの既知の問題がありますが、Ctrl以外の移動コマンドではこの問題は発生しないはずです。

残念ながら、私はLinuxまたはMac OS Xについて、それらにもソリューションを提供できるほど十分に知りません。誰かがこれを他のオペレーティングシステムに移植することに成功した場合は、独自の回答を追加するか、手順を使用してこれに編集を提案してください。 :)

1

IronAHK の仕事のようですね!

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

このような基本的なホットキー機能が機能することは知っていますが、より複雑なコマンドのいくつかは、IronAHKではまだサポートされていません。

1
John T

ええと、この質問は1年前のものですが、それでも試してみます。

Acroreadでそれを行う方法がわからないため、トピックから少し外れていますが、試してみることをお勧めします Apvlv

「ApvlvはLinux/WIN32でのPDF/DJVU/UMDビューアであり、その動作はVimのようです。」

あなたがacroreadを離れることをいとわないなら、このpdfリーダーはあなたにたくさんのvim-loveを与えるでしょう。

Apvlvlibpopplerevinceと同じバックエンドであり、現在はxpdf)なので、あなたが言及したのと同じ表示の問題が発生する可能性があります。しかし、それは確かにacroreadよりも速く起動します。これは業界で最も遅いです!幸運を。

免責事項:私はかつてこのプロジェクトのドキュメントを作成しました。

0
Sebastian