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:
syl20bnr 2016-03-04 00:51:34 -05:00
parent 919865a3b7
commit 39a3c1983c
3 changed files with 119 additions and 140 deletions

View File

@ -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

View File

@ -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))))