Navigasi seperti Vim di Adobe Acrobat Reader


6

Adobe Acrobat Reader saat ini adalah salah satu pembaca PDF bagus yang tersedia di platform Linux. xpdf dan Evince melakukan tugasnya dengan baik, tetapi tampilan Acrobat tampaknya lebih baik.

Saya sudah terbiasa dengan editor Vim dan saya ingin fitur navigasi Vim (menggunakan h , j , k , dan l untuk bergerak) di Adobe Reader. Bagaimana aku melakukan itu?

Saya tahu Evince menawarkan navigasi semacam itu.


Tidak tahu tentang superuser.com. Saya baru saja memindahkan pertanyaan di sana. Saya akan membiarkan di sini, hanya dalam perawatan itu menarik bagi seseorang.
Senthil Kumaran

Jawaban:


3

Saya telah menetapkan vim seperti navigasi di Adobe Reader menggunakan Autohotkey . Anda perlu mengonfigurasi pemetaan kunci agar hanya aktif ketika Adobe Reader adalah jendela aktif saat ini sehingga pengikatan kunci ini tidak memengaruhi aplikasi lain. Berikut ini dimodifikasi AutoHotKey.ahk Script melakukan itu

#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

Itu ahk_class nama dapat ditentukan dengan menjalankan AutoIt3 Window Spy.

Satu-satunya kelemahan adalah selama Search/Find operasi di Adobe Reader. Jika teks pencarian Anda mengandung h/j/k/l itu akan ditafsirkan sebagai tombol panah. Anda dapat mengatasi batasan ini dengan menangguhkan autokey atau dengan mengklik Pause Script dari area notifikasi taskbar. Pendekatan yang lebih baik untuk mengatasi batasan ini adalah menggunakan huruf besar (HJKL). Karena pencarian adobe case-sensitive, pencarian Anda akan mencakup huruf hjkl juga. misalnya taKe cocok dengan take


1

Sejauh yang saya tahu, ini tidak mungkin. Ada proyek yang sedang berjalan untuk membuat penampil pdf yang memiliki antarmuka seperti vim, tetapi meskipun pengembangannya tampaknya cukup aktif, ia masih memiliki cara untuk melakukannya. Jika itu menarik, Anda dapat menemukannya di sini (versi tersedia untuk Linux dan Windows, meskipun pengembangannya difokuskan pada Windows):

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

Kalau tidak, saya pikir Anda terjebak dengan evince atau menggunakan tombol kursor.


1

Skrip Autohotkey yang saya tulis mendukung hjkl, gg, G, C-e, C-y, C-f, dan C-b, bersama dengan,, Mendesak / membawa Anda ke mode pencarian, dan ESC , Memasukkan , dan Ctrl - [ akan mengembalikan Anda ke mode normal. Jika semuanya tidak berjalan sebagaimana mestinya, coba tekan Escape untuk kembali ke mode normal.

#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

Inilah intinya

Silakan tinggalkan laporan bug pendek atau saran di komentar!

Ada beberapa masalah yang diketahui dengan menahan perintah gerakan Ctrl untuk jangka waktu lama yang harus dilakukan dengan AutoHotKey tidak dapat menerjemahkan input dengan cukup cepat, tetapi perintah gerakan non Ctrl seharusnya tidak memiliki masalah ini.

Sayangnya, saya tidak cukup tahu tentang Linux atau Mac OS X untuk dapat memberikan solusi bagi mereka juga. Jika ada yang mengelola untuk mem-port ini ke sistem operasi lain, silakan tambahkan jawaban Anda sendiri atau sarankan edit untuk yang ini dengan instruksi. :)


1

Saya tidak yakin apakah itu mungkin.

Tetapi Anda harus mencoba Zathura , yang bekerja dengan sangat baik dan mencoba untuk meniru vim - bahkan memiliki mode baris perintah, dipicu oleh :.


1

Di Linux, ada alternatif untuk AutoHotkey yang disebut AutoKey, dan ini solusinya:

(Saya baru saja membuatnya di bawah Ubuntu 14.04 dengan AutoKey meskipun belum lama diperbarui)

  • Instal Autokey terlebih dahulu. Unduh di https://code.google.com/p/autokey/downloads/list , ekstrak dan ikuti README untuk mengkompilasi dan menginstalnya (saya memilih versi Qt)
  • menjalankan autokey, baik dari Launcher, atau jalankan di terminal di /usr/bin/autokey-qt
  • menggunakan j untuk bergerak turun, adil
    • buat frasa baru
    • beri nama mendeley - up atau apa pun yang bermakna
    • di kotak frasa (kotak teks besar - yang sebenarnya adalah editor!), ketik <up>
    • menetapkan j menggunakan Hotkey Set tombol
    • atur Window Filter dengan mengklik yang terakhir Set tombol
    • Simpan dan uji dalam penampil PDF favorit Anda (milik saya adalah Mendeley karena mendukung penyorotan dan anotasi)
  • dan saya juga membuat k untuk naik, space ke halaman bawah, dan shift + space untuk naik halaman.

Ref:


1

Kedengarannya seperti pekerjaan Ironahk !

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

Saya tahu fungsi hotkey dasar seperti ini berfungsi, tetapi beberapa perintah yang lebih kompleks belum didukung oleh IronAHK.


Aku s k::Up sintaks tidak didukung?
Phoshi

0

Meh, pertanyaan ini berumur satu tahun, namun saya akan mencobanya.

Agak topik, karena saya tidak tahu bagaimana melakukannya di acroread, tetapi Anda mungkin ingin mencoba Apvlv :

"Apvlv adalah Penampil PDF / DJVU / UMD Di Linux / WIN32 dan perilakunya seperti Vim."

Jika Anda ingin meninggalkan acroread, pembaca pdf ini akan memberi Anda banyak cinta-vim.

Apvlv berdasarkan pada libpoppler (back-end yang sama dengan memperlihatkan dan sekarang juga xpdf ), jadi Anda mungkin mengalami masalah tampilan yang sama dengan yang Anda sebutkan. Tetapi tentu saja lebih cepat menyala daripada acroread , yang merupakan yang paling lambat di industri! Semoga berhasil.

Penafian: Saya pernah menulis dokumentasi untuk proyek ini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.