pdf-tools: README tweak and replacement of transient state key
- Replace `M-SPC` and `S-M-SPC` by the more conventional `SPC m .` - Reorganize the code in packages.el - Add image in README and list bindings with explicit `SPC m` prefix
This commit is contained in:
parent
919865a3b7
commit
39a3c1983c
|
@ -1,6 +1,7 @@
|
|||
#+TITLE: pdf-tools layer
|
||||
#+HTML_HEAD_EXTRA: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css" />
|
||||
|
||||
[[file:img/pdf.png]]
|
||||
|
||||
* Table of Contents :TOC_4_org:noexport:
|
||||
- [[Description][Description]]
|
||||
|
@ -8,7 +9,7 @@
|
|||
- [[Prerequisites][Prerequisites]]
|
||||
- [[Dotfile][Dotfile]]
|
||||
- [[Usage][Usage]]
|
||||
- [[Known Issues ][Known Issues ]]
|
||||
- [[Known Issues][Known Issues]]
|
||||
- [[Key bindings][Key bindings]]
|
||||
- [[PDF View][PDF View]]
|
||||
- [[Leader keys][Leader keys]]
|
||||
|
@ -17,12 +18,15 @@
|
|||
- [[Occur mode][Occur mode]]
|
||||
|
||||
* Description
|
||||
This layer enables support for the [[https://github.com/politza/pdf-tools][=pdf-tools=]] package.
|
||||
|
||||
According to the official repository, "PDF Tools is, among other things, a
|
||||
replacement of DocView for PDF files. The key difference is, that pages are not
|
||||
pre-rendered by e.g. ghostscript and stored in the file-system, but rather
|
||||
created on-demand and stored in memory."
|
||||
This layer enables support for the [[https://github.com/politza/pdf-tools][=pdf-tools=]] package.
|
||||
|
||||
According to the official repository:
|
||||
|
||||
#+begin_quote
|
||||
"PDF Tools is, among other things, a replacement of DocView for PDF files. The
|
||||
key difference is, that pages are not pre-rendered by e.g. ghostscript and
|
||||
stored in the file-system, but rather created on-demand and stored in memory."
|
||||
#+end_quote
|
||||
|
||||
Examples of features that =pdf-tools= provides:
|
||||
- Use =occur= in the pdf file;
|
||||
|
@ -42,7 +46,6 @@ If you use a Debian based system such as Ubuntu, you can skip this step, as
|
|||
=pdf-tools= installation asks whether you want it to try to download
|
||||
automatically all dependencies using ~apt-get~.
|
||||
|
||||
|
||||
** Dotfile
|
||||
After installing the dependencies, add this to your =~/.spacemacs=.
|
||||
|
||||
|
@ -65,16 +68,15 @@ If the compilation does not run successfully, you should confirm whether all
|
|||
dependencies are properly installed and run the command ~pdf-tools-install~.
|
||||
|
||||
* Usage
|
||||
Use ~M-SPC~ or ~s-M-SPC~ to activate the pdf-tools transient state.
|
||||
Use ~SPC m .~ to activate the pdf-tools transient state.
|
||||
The keybindings that the transient displays can be also accessed using ~SPC m~. The
|
||||
navigation keybindings can be used directly.
|
||||
|
||||
|
||||
Try out opening the outline (~O~). The outline window shows the structure of the
|
||||
pdf, displaying all headings.
|
||||
|
||||
You can set annotations by selecting regions and right clicking on the buffer.
|
||||
Additionally, all annotation related functions are can be accessed with ~SPC m a~.
|
||||
Additionally, all annotation related functions can be accessed with ~SPC m a~.
|
||||
|
||||
Searching with =occur= can be done by using =pdf-occur= (~SPC m s s~).
|
||||
|
||||
|
@ -83,11 +85,9 @@ Tips:
|
|||
~SPC m s b~) This command trims the blank parts of the
|
||||
lateral margins, making the useful portion larger.
|
||||
- The last visited page is not saved across Emacs sessions. If you want save it,
|
||||
use the bookmarks commands =bookmark-set= (~C-x r m~) and =bookmark-jump=
|
||||
(~SPC j b~) to save and go to a bookmark, respectively.
|
||||
use the bookmarks commands on ~SPC j b~ to save and go to a bookmark.
|
||||
|
||||
|
||||
* Known Issues
|
||||
* Known Issues
|
||||
Due to =image-mode='s behaviour, the =pdf-tools= buffer might go back to the
|
||||
first page after switching windows. If this happens, you can quickly go back to
|
||||
the previous page in history with =pdf-history-backward= (~``~ in Evil state and
|
||||
|
@ -139,33 +139,33 @@ differently from the default Evil search. To go to the next match, use ~C-s~.
|
|||
|-----------------------+-------------------------------------------|
|
||||
| *Slicing* | |
|
||||
|-----------------------+-------------------------------------------|
|
||||
| ~sm~ | Set slice using mouse |
|
||||
| ~sb~ | Set slice from bounding box |
|
||||
| ~sr~ | Reset slice |
|
||||
| ~SPC m s m~ | Set slice using mouse |
|
||||
| ~SPC m s b~ | Set slice from bounding box |
|
||||
| ~SPC m s r~ | Reset slice |
|
||||
|-----------------------+-------------------------------------------|
|
||||
| *Annotations* | |
|
||||
|-----------------------+-------------------------------------------|
|
||||
| ~aD~ | Delete annotation (select it with mouse) |
|
||||
| ~aa~ | List all attachments in a dired buffer |
|
||||
| ~ah~ | Highlight visual selection |
|
||||
| ~al~ | List all annotations |
|
||||
| ~am~ | Add markup annotation to visual selection |
|
||||
| ~ao~ | Strikeout visual selection |
|
||||
| ~as~ | Add squiggly to visual selection |
|
||||
| ~at~ | Add annotation text |
|
||||
| ~au~ | Underline to visual selection |
|
||||
| ~SPC m a D~ | Delete annotation (select it with mouse) |
|
||||
| ~SPC m a a~ | List all attachments in a dired buffer |
|
||||
| ~SPC m a h~ | Highlight visual selection |
|
||||
| ~SPC m a l~ | List all annotations |
|
||||
| ~SPC m a m~ | Add markup annotation to visual selection |
|
||||
| ~SPC m a o~ | Strikeout visual selection |
|
||||
| ~SPC m a s~ | Add squiggly to visual selection |
|
||||
| ~SPC m a t~ | Add annotation text |
|
||||
| ~SPC m a u~ | Underline to visual selection |
|
||||
|-----------------------+-------------------------------------------|
|
||||
| *Fit image to window* | |
|
||||
|-----------------------+-------------------------------------------|
|
||||
| ~fw~ | Fit width to window |
|
||||
| ~fh~ | Fit height to window |
|
||||
| ~fp~ | Fit page to window |
|
||||
| ~SPC m f w~ | Fit width to window |
|
||||
| ~SPC m f h~ | Fit height to window |
|
||||
| ~SPC m f p~ | Fit page to window |
|
||||
|-----------------------+-------------------------------------------|
|
||||
| *Other* | |
|
||||
|-----------------------+-------------------------------------------|
|
||||
| ~n~ | Toggle night view mode |
|
||||
| ~s~ | Run =pdf-occur= |
|
||||
| ~p~ | Display print version |
|
||||
| ~SPC m n~ | Toggle night view mode |
|
||||
| ~SPC m s~ | Run =pdf-occur= |
|
||||
| ~SPC m p~ | Display print version |
|
||||
|
||||
** Outline buffer mode
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
|
@ -10,10 +10,7 @@
|
|||
;;
|
||||
;;; License: GPLv3
|
||||
|
||||
(setq pdf-tools-packages
|
||||
'(
|
||||
pdf-tools
|
||||
))
|
||||
(setq pdf-tools-packages '(pdf-tools))
|
||||
|
||||
(defun pdf-tools/init-pdf-tools ()
|
||||
(use-package pdf-tools
|
||||
|
@ -22,6 +19,87 @@
|
|||
:config
|
||||
(progn
|
||||
(pdf-tools-install)
|
||||
|
||||
(spacemacs|define-transient-state pdf-tools
|
||||
:title "PDF-tools transient state"
|
||||
:on-enter (setq which-key-inhibit t)
|
||||
:on-exit (setq which-key-inhibit nil)
|
||||
:doc
|
||||
"
|
||||
Navigation^^^^ Scale/Fit^^ Annotations^^ Actions^^ Other^^
|
||||
----------^^^^--------------- ---------^^------------------ -----------^^------ -------^^---------- -----^^---
|
||||
[_j_/_k_] scroll down/up [_W_] fit to width [_al_] list [_s_] search [_q_] quit
|
||||
[_h_/_l_] scroll left/right [_H_] fit to height [_at_] text [_O_] outline
|
||||
[_d_/_u_] pg down/up [_P_] fit to page [_aD_] delete [_p_] print
|
||||
[_J_/_K_] next/prev pg [_m_] slice using mouse [_am_] markup [_o_] open link
|
||||
^^^^ [_b_] slice from bounding box ^^ [_r_] revert
|
||||
^^^^ [_R_] reset slice ^^ [_t_] attachments
|
||||
^^^^ ^^ ^^ [_n_] night mode
|
||||
"
|
||||
:bindings
|
||||
;; Navigation
|
||||
("j" pdf-view-next-line-or-next-page)
|
||||
("k" pdf-view-previous-line-or-previous-page)
|
||||
("l" image-forward-hscroll)
|
||||
("h" image-backward-hscroll)
|
||||
("J" pdf-view-next-page)
|
||||
("K" pdf-view-previous-page)
|
||||
("u" pdf-view-scroll-down-or-previous-page)
|
||||
("d" pdf-view-scroll-up-or-next-page)
|
||||
;; Scale/Fit
|
||||
("W" pdf-view-fit-width-to-window)
|
||||
("H" pdf-view-fit-height-to-window)
|
||||
("P" pdf-view-fit-page-to-window)
|
||||
("m" pdf-view-set-slice-using-mouse)
|
||||
("b" pdf-view-set-slice-from-bounding-box)
|
||||
("R" pdf-view-reset-slice)
|
||||
;; Annotations
|
||||
("aD" pdf-annot-delete)
|
||||
("at" pdf-annot-attachment-dired :exit t)
|
||||
("al" pdf-annot-list-annotations :exit t)
|
||||
("am" pdf-annot-add-markup-annotation)
|
||||
;; Actions
|
||||
("s" pdf-occur :exit t)
|
||||
("O" pdf-outline :exit t)
|
||||
("p" pdf-misc-print-document :exit t)
|
||||
("o" pdf-links-action-perform :exit t)
|
||||
("r" pdf-view-revert-buffer)
|
||||
("t" pdf-annot-attachment-dired :exit t)
|
||||
("n" pdf-view-midnight-minor-mode)
|
||||
;; Other
|
||||
("q" nil :exit t))
|
||||
|
||||
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "ma" "annotations")
|
||||
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "mf" "fit")
|
||||
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "ms" "slice/search")
|
||||
(spacemacs/set-leader-keys-for-major-mode 'pdf-view-mode
|
||||
"." 'spacemacs/pdf-tools-transient-state/body
|
||||
;; Slicing image
|
||||
"sm" 'pdf-view-set-slice-using-mouse
|
||||
"sb" 'pdf-view-set-slice-from-bounding-box
|
||||
"sr" 'pdf-view-reset-slice
|
||||
;; Annotations
|
||||
"aD" 'pdf-annot-delete
|
||||
"at" 'pdf-annot-attachment-dired
|
||||
"ah" 'pdf-annot-add-highlight-markup-annotation
|
||||
"al" 'pdf-annot-list-annotations
|
||||
"am" 'pdf-annot-add-markup-annotation
|
||||
"ao" 'pdf-annot-add-strikeout-markup-annotation
|
||||
"as" 'pdf-annot-add-squiggly-markup-annotation
|
||||
"at" 'pdf-annot-add-text-annotation
|
||||
"au" 'pdf-annot-add-underline-markup-annotation
|
||||
;; Fit image to window
|
||||
"fw" 'pdf-view-fit-width-to-window
|
||||
"fh" 'pdf-view-fit-height-to-window
|
||||
"fp" 'pdf-view-fit-page-to-window
|
||||
;; Other
|
||||
"ss" 'pdf-occur
|
||||
"p" 'pdf-misc-print-document
|
||||
"O" 'pdf-outline
|
||||
"n" 'pdf-view-midnight-minor-mode)
|
||||
|
||||
(evil-define-key 'visual pdf-view-mode-map "y" 'pdf-view-kill-ring-save)
|
||||
|
||||
;; TODO: Make `/', `?' and `n' work like in Evil
|
||||
(evilified-state-evilify pdf-view-mode pdf-view-mode-map
|
||||
;; Navigation
|
||||
|
@ -46,44 +124,7 @@
|
|||
;; Actions
|
||||
"r" 'pdf-view-revert-buffer
|
||||
"o" 'pdf-links-action-perform
|
||||
"O" 'pdf-outline
|
||||
)
|
||||
|
||||
(evil-define-key 'visual pdf-view-mode-map
|
||||
"y" 'pdf-view-kill-ring-save
|
||||
)
|
||||
|
||||
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "ma" "annotations")
|
||||
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "mf" "fit")
|
||||
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "ms" "slice/search")
|
||||
|
||||
(spacemacs/set-leader-keys-for-major-mode 'pdf-view-mode
|
||||
;; Slicing image
|
||||
"sm" 'pdf-view-set-slice-using-mouse
|
||||
"sb" 'pdf-view-set-slice-from-bounding-box
|
||||
"sr" 'pdf-view-reset-slice
|
||||
;; Annotations
|
||||
"aD" 'pdf-annot-delete
|
||||
"at" 'pdf-annot-attachment-dired
|
||||
"ah" 'pdf-annot-add-highlight-markup-annotation
|
||||
"al" 'pdf-annot-list-annotations
|
||||
"am" 'pdf-annot-add-markup-annotation
|
||||
"ao" 'pdf-annot-add-strikeout-markup-annotation
|
||||
"as" 'pdf-annot-add-squiggly-markup-annotation
|
||||
"at" 'pdf-annot-add-text-annotation
|
||||
"au" 'pdf-annot-add-underline-markup-annotation
|
||||
;; Fit image to window
|
||||
"fw" 'pdf-view-fit-width-to-window
|
||||
"fh" 'pdf-view-fit-height-to-window
|
||||
"fp" 'pdf-view-fit-page-to-window
|
||||
;; Other
|
||||
"ss" 'pdf-occur
|
||||
"p" 'pdf-misc-print-document
|
||||
"O" 'pdf-outline
|
||||
"n" 'pdf-view-midnight-minor-mode
|
||||
)
|
||||
|
||||
|
||||
"O" 'pdf-outline)
|
||||
(evilified-state-evilify pdf-outline-buffer-mode pdf-outline-buffer-mode-map
|
||||
"-" 'negative-argument
|
||||
"j" 'next-line
|
||||
|
@ -104,78 +145,16 @@
|
|||
"''" 'pdf-outline-move-to-current-page
|
||||
"Q" 'pdf-outline-quit-and-kill
|
||||
"q" 'quit-window
|
||||
"F" 'pdf-outline-follow-mode
|
||||
)
|
||||
|
||||
"F" 'pdf-outline-follow-mode)
|
||||
(evilified-state-evilify pdf-annot-list-mode pdf-annot-list-mode-map
|
||||
"f" 'pdf-annot-list-display-annotation-from-id
|
||||
"d" 'tablist-flag-forward
|
||||
"x" 'tablist-do-flagged-delete
|
||||
"u" 'tablist-unmark-forward
|
||||
"q" 'tablist-quit
|
||||
)
|
||||
|
||||
"q" 'tablist-quit)
|
||||
(evilified-state-evilify pdf-occur-buffer-mode pdf-occur-buffer-mode-map
|
||||
"q" 'tablist-quit
|
||||
"g" 'pdf-occur-revert-buffer-with-args
|
||||
"r" 'pdf-occur-revert-buffer-with-args
|
||||
"*" 'spacemacs/enter-ahs-forward
|
||||
"?" 'evil-search-backward
|
||||
)))
|
||||
|
||||
(spacemacs|define-transient-state pdf-tools
|
||||
:title "PDF-tools transient state"
|
||||
:on-enter (setq which-key-inhibit t)
|
||||
:on-exit (setq which-key-inhibit nil)
|
||||
:doc
|
||||
"
|
||||
Navigation^^^^ Scale/Fit^^ Annotations^^ Actions^^ Other^^
|
||||
----------^^^^--------------- ---------^^------------------ -----------^^------ -------^^---------- -----^^---
|
||||
[_j_/_k_] scroll down/up [_W_] fit to width [_al_] list [_s_] search [_q_] quit
|
||||
[_h_/_l_] scroll left/right [_H_] fit to height [_at_] text [_O_] outline
|
||||
[_d_/_u_] pg down/up [_P_] fit to page [_aD_] delete [_p_] print
|
||||
[_J_/_K_] next/prev pg [_m_] slice using mouse [_am_] markup [_o_] open link
|
||||
^^^^ [_b_] slice from bounding box ^^ [_r_] revert
|
||||
^^^^ [_R_] reset slice ^^ [_t_] attachments
|
||||
^^^^ ^^ ^^ [_n_] night mode
|
||||
"
|
||||
:bindings
|
||||
;; Navigation
|
||||
("j" pdf-view-next-line-or-next-page)
|
||||
("k" pdf-view-previous-line-or-previous-page)
|
||||
("l" image-forward-hscroll)
|
||||
("h" image-backward-hscroll)
|
||||
("J" pdf-view-next-page)
|
||||
("K" pdf-view-previous-page)
|
||||
("u" pdf-view-scroll-down-or-previous-page)
|
||||
("d" pdf-view-scroll-up-or-next-page)
|
||||
;; Scale/Fit
|
||||
("W" pdf-view-fit-width-to-window)
|
||||
("H" pdf-view-fit-height-to-window)
|
||||
("P" pdf-view-fit-page-to-window)
|
||||
("m" pdf-view-set-slice-using-mouse)
|
||||
("b" pdf-view-set-slice-from-bounding-box)
|
||||
("R" pdf-view-reset-slice)
|
||||
;; Annotations
|
||||
("aD" pdf-annot-delete)
|
||||
("at" pdf-annot-attachment-dired :exit t)
|
||||
("al" pdf-annot-list-annotations :exit t)
|
||||
("am" pdf-annot-add-markup-annotation)
|
||||
;; Actions
|
||||
("s" pdf-occur :exit t)
|
||||
("O" pdf-outline :exit t)
|
||||
("p" pdf-misc-print-document :exit t)
|
||||
("o" pdf-links-action-perform :exit t)
|
||||
("r" pdf-view-revert-buffer)
|
||||
("t" pdf-annot-attachment-dired :exit t)
|
||||
("n" pdf-view-midnight-minor-mode)
|
||||
;; Other
|
||||
("q" nil :exit t))
|
||||
|
||||
;; pdf-view-mode-map is not recognized unless wrapped in with-eval-after-load
|
||||
(with-eval-after-load "pdf-view"
|
||||
(define-key pdf-view-mode-map (kbd "M-SPC")
|
||||
|
||||
'spacemacs/pdf-tools-transient-state/body)
|
||||
(define-key pdf-view-mode-map (kbd "s-M-SPC")
|
||||
'spacemacs/pdf-tools-transient-state/body)))
|
||||
"?" 'evil-search-backward))))
|
||||
|
|
Loading…
Reference in New Issue