aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2018-10-03 09:25:26 -0700
committerGlenn Morris2018-10-03 09:25:26 -0700
commitf5621181111ba7cc58967ee9b1cfa08020d3e3ea (patch)
tree9099bea307086a6898f396d15709f004e2f5c27f
parenta773b0918ce15cbd657c1e77417b231ffb0363fb (diff)
parent9c028d6965c7bb3024ada4f59be133b940438127 (diff)
downloademacs-f5621181111ba7cc58967ee9b1cfa08020d3e3ea.tar.gz
emacs-f5621181111ba7cc58967ee9b1cfa08020d3e3ea.zip
Merge from origin/emacs-26
9c028d6 * lisp/savehist.el (savehist-mode): Doc fix. (Bug#32889) 3a2b5a7 ; * lisp/bindings.el (bindings--define-key): Doc fix. (Bug#3... 6a7a869 Org manual: Rewrite the Org Mobile section # Conflicts: # lisp/savehist.el
-rw-r--r--doc/misc/org.texi293
-rw-r--r--lisp/bindings.el5
-rw-r--r--lisp/savehist.el23
3 files changed, 176 insertions, 145 deletions
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index ccb5f88f93d..9ea78f5ace9 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -325,7 +325,6 @@ Jambunathan K, Dan Davison, Thomas Dye, David O'Toole, and Philip Rooke.
325* Working with source code:: Export, evaluate, and tangle code blocks 325* Working with source code:: Export, evaluate, and tangle code blocks
326* Miscellaneous:: All the rest which did not fit elsewhere 326* Miscellaneous:: All the rest which did not fit elsewhere
327* Hacking:: How to hack your way around 327* Hacking:: How to hack your way around
328* MobileOrg:: Viewing and capture on a mobile device
329* History and acknowledgments:: How Org came into being 328* History and acknowledgments:: How Org came into being
330* GNU Free Documentation License:: The license for this documentation. 329* GNU Free Documentation License:: The license for this documentation.
331* Main Index:: An index of Org's concepts and features 330* Main Index:: An index of Org's concepts and features
@@ -760,12 +759,19 @@ Miscellaneous
760* TTY keys:: Using Org on a tty 759* TTY keys:: Using Org on a tty
761* Interaction:: With other Emacs packages 760* Interaction:: With other Emacs packages
762* org-crypt:: Encrypting Org files 761* org-crypt:: Encrypting Org files
762* Org Mobile:: Viewing and capture on a mobile device
763 763
764Interaction with other packages 764Interaction with other packages
765 765
766* Cooperation:: Packages Org cooperates with 766* Cooperation:: Packages Org cooperates with
767* Conflicts:: Packages that lead to conflicts 767* Conflicts:: Packages that lead to conflicts
768 768
769Org Mobile
770
771* Setting up the staging area:: For the mobile device
772* Pushing to the mobile application:: Uploading Org files and agendas
773* Pulling from the mobile application:: Integrating captured and flagged items
774
769Hacking 775Hacking
770 776
771* Hooks:: How to reach into Org's internals 777* Hooks:: How to reach into Org's internals
@@ -788,12 +794,6 @@ Tables and lists in arbitrary syntax
788* Translator functions:: Copy and modify 794* Translator functions:: Copy and modify
789* Radio lists:: Sending and receiving lists 795* Radio lists:: Sending and receiving lists
790 796
791MobileOrg
792
793* Setting up the staging area:: For the mobile device
794* Pushing to MobileOrg:: Uploading Org files and agendas
795* Pulling from MobileOrg:: Integrating captured and flagged items
796
797@end detailmenu 797@end detailmenu
798@end menu 798@end menu
799 799
@@ -17251,6 +17251,7 @@ emacs -Q --batch --eval "
17251* TTY keys:: Using Org on a tty 17251* TTY keys:: Using Org on a tty
17252* Interaction:: With other Emacs packages 17252* Interaction:: With other Emacs packages
17253* org-crypt:: Encrypting Org files 17253* org-crypt:: Encrypting Org files
17254* Org Mobile:: Viewing and capture on a mobile device
17254@end menu 17255@end menu
17255 17256
17256 17257
@@ -18185,6 +18186,150 @@ Suggested Org crypt settings in Emacs init file:
18185Excluding the crypt tag from inheritance prevents encrypting previously 18186Excluding the crypt tag from inheritance prevents encrypting previously
18186encrypted text. 18187encrypted text.
18187 18188
18189@node Org Mobile
18190@section Org Mobile
18191
18192@cindex smartphone
18193
18194Org Mobile is a protocol for synchronizing Org files between Emacs and
18195other applications, e.g., on mobile devices. It enables offline-views
18196and capture support for an Org mode system that is rooted on a ``real''
18197computer. The external application can also record changes to
18198existing entries.
18199
18200This appendix describes Org's support for agenda view formats
18201compatible with Org Mobile. It also describes synchronizing changes,
18202such as to notes, between the mobile application and the computer.
18203
18204To change tags and TODO states in the mobile application, first
18205customize the variables @code{org-todo-keywords} and @code{org-tag-alist}.
18206These should cover all the important tags and TODO keywords, even if
18207Org files use only some of them. Though the mobile application is
18208expected to support in-buffer settings, it is required to understand
18209TODO states @emph{sets} (see @ref{Per-file keywords}) and
18210@emph{mutually exclusive} tags (see @ref{Setting tags}) only for those set in
18211these variables.
18212
18213@menu
18214* Setting up the staging area:: For the mobile device
18215* Pushing to the mobile application:: Uploading Org files and agendas
18216* Pulling from the mobile application:: Integrating captured and flagged items
18217@end menu
18218
18219@node Setting up the staging area
18220@subsection Setting up the staging area
18221
18222@vindex org-mobile-directory
18223The mobile application needs access to a file directory on
18224a server@footnote{For a server to host files, consider using a WebDAV server,
18225such as @uref{https://nextcloud.com, Nextcloud}. Additional help is at this @uref{https://orgmode.org/worg/org-faq.html#mobileorg_webdav, FAQ entry}.} to interact with Emacs. Pass its location through
18226the @code{org-mobile-directory} variable. If you can mount that directory
18227locally just set the variable to point to that directory:
18228
18229@lisp
18230(setq org-mobile-directory "~/orgmobile/")
18231@end lisp
18232
18233@noindent
18234Alternatively, by using TRAMP (see @ref{Top,TRAMP User Manual,,tramp,}),
18235@code{org-mobile-directory} may point to a remote directory accessible
18236through, for example, SSH and SCP:
18237
18238@lisp
18239(setq org-mobile-directory "/scpc:user@@remote.host:org/webdav/")
18240@end lisp
18241
18242@vindex org-mobile-encryption
18243With a public server, consider encrypting the files. Org also
18244requires OpenSSL installed on the local computer. To turn on
18245encryption, set the same password in the mobile application and in
18246Emacs. Set the password in the variable
18247@code{org-mobile-use-encryption}@footnote{If Emacs is configured for safe storing of passwords, then
18248configure the variable @code{org-mobile-encryption-password}; please read
18249the docstring of that variable.}. Note that even after the mobile
18250application encrypts the file contents, the file name remains visible
18251on the file systems of the local computer, the server, and the mobile
18252device.
18253
18254@node Pushing to the mobile application
18255@subsection Pushing to the mobile application
18256
18257@findex org-mobile-push
18258@vindex org-mobile-files
18259The command @code{org-mobile-push} copies files listed in
18260@code{org-mobile-files} into the staging area. Files include agenda files
18261(as listed in @code{org-agenda-files}). Customize @code{org-mobile-files} to
18262add other files. File names are staged with paths relative to
18263@code{org-directory}, so all files should be inside this directory@footnote{Symbolic links in @code{org-directory} need to have the same name
18264as their targets.}.
18265
18266Push creates a special Org file @samp{agendas.org} with custom agenda views
18267defined by the user@footnote{While creating the agendas, Org mode forces ID properties on
18268all referenced entries, so that these entries can be uniquely
18269identified if Org Mobile flags them for further action. To avoid
18270setting properties configure the variable
18271@code{org-mobile-force-id-on-agenda-items} to @code{nil}. Org mode then relies
18272on outline paths, assuming they are unique.}.
18273
18274Finally, Org writes the file @samp{index.org}, containing links to other
18275files. The mobile application reads this file first from the server
18276to determine what other files to download for agendas. For faster
18277downloads, it is expected to only read files whose checksums@footnote{Checksums are stored automatically in the file
18278@samp{checksums.dat}.}
18279have changed.
18280
18281@node Pulling from the mobile application
18282@subsection Pulling from the mobile application
18283
18284@findex org-mobile-pull
18285The command @code{org-mobile-pull} synchronizes changes with the server.
18286More specifically, it first pulls the Org files for viewing. It then
18287appends captured entries and pointers to flagged or changed entries to
18288the file @samp{mobileorg.org} on the server. Org ultimately integrates its
18289data in an inbox file format, through the following steps:
18290
18291@enumerate
18292@item
18293@vindex org-mobile-inbox-for-pull
18294Org moves all entries found in @samp{mobileorg.org}@footnote{The file will be empty after this operation.} and appends
18295them to the file pointed to by the variable
18296@code{org-mobile-inbox-for-pull}. It should reside neither in the
18297staging area nor on the server. Each captured entry and each
18298editing event is a top-level entry in the inbox file.
18299
18300@item
18301@cindex @samp{FLAGGED}, tag
18302After moving the entries, Org processes changes to the shared
18303files. Some of them are applied directly and without user
18304interaction. Examples include changes to tags, TODO state,
18305headline and body text. Entries requiring further action are
18306tagged as @samp{FLAGGED}. Org marks entries with problems with an error
18307message in the inbox. They have to be resolved manually.
18308
18309@item
18310Org generates an agenda view for flagged entries for user
18311intervention to clean up. For notes stored in flagged entries, Org
18312displays them in the echo area when point is on the corresponding
18313agenda item.
18314
18315@table @asis
18316@item @kbd{?}
18317Pressing @kbd{?} displays the entire flagged note in
18318another window. Org also pushes it to the kill ring. To
18319store flagged note as a normal note, use @kbd{? z C-y C-c C-c}. Pressing @kbd{?} twice does these things: first
18320it removes the @samp{FLAGGED} tag; second, it removes the flagged
18321note from the property drawer; third, it signals that manual
18322editing of the flagged entry is now finished.
18323@end table
18324@end enumerate
18325
18326@kindex ? @r{(Agenda dispatcher)}
18327From the agenda dispatcher, @kbd{?} returns to the view to finish
18328processing flagged entries. Note that these entries may not be the
18329most recent since the mobile application searches files that were last
18330pulled. To get an updated agenda view with changes since the last
18331pull, pull again.
18332
18188@node Hacking 18333@node Hacking
18189@appendix Hacking 18334@appendix Hacking
18190@cindex hacking 18335@cindex hacking
@@ -19149,140 +19294,6 @@ The following example counts the number of entries with TODO keyword
19149(length (org-map-entries t "/+WAITING" 'agenda)) 19294(length (org-map-entries t "/+WAITING" 'agenda))
19150@end lisp 19295@end lisp
19151 19296
19152@node MobileOrg
19153@appendix MobileOrg
19154@cindex iPhone
19155@cindex MobileOrg
19156
19157MobileOrg is a companion mobile app that runs on iOS and Android devices.
19158MobileOrg enables offline-views and capture support for an Org mode system
19159that is rooted on a ``real'' computer. MobileOrg can record changes to
19160existing entries.
19161
19162The @uref{https://github.com/MobileOrg/, iOS implementation} for the
19163@emph{iPhone/iPod Touch/iPad} series of devices, was started by Richard
19164Moreland and is now in the hands Sean Escriva. Android users should check
19165out @uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg
19166Android} by Matt Jones. Though the two implementations are not identical,
19167they offer similar features.
19168
19169This appendix describes Org's support for agenda view formats compatible with
19170MobileOrg. It also describes synchronizing changes, such as to notes,
19171between MobileOrg and the computer.
19172
19173To change tags and TODO states in MobileOrg, first customize the variables
19174@code{org-todo-keywords} and @code{org-tag-alist}. These should cover all
19175the important tags and TODO keywords, even if Org files use only some of
19176them. Though MobileOrg has in-buffer settings, it understands TODO states
19177@emph{sets} (@pxref{Per-file keywords}) and @emph{mutually exclusive} tags
19178(@pxref{Setting tags}) only for those set in these variables.
19179
19180@menu
19181* Setting up the staging area:: For the mobile device
19182* Pushing to MobileOrg:: Uploading Org files and agendas
19183* Pulling from MobileOrg:: Integrating captured and flagged items
19184@end menu
19185
19186@node Setting up the staging area
19187@section Setting up the staging area
19188
19189MobileOrg needs access to a file directory on a server to interact with
19190Emacs. With a public server, consider encrypting the files. MobileOrg
19191version 1.5 supports encryption for the iPhone. Org also requires
19192@file{openssl} installed on the local computer. To turn on encryption, set
19193the same password in MobileOrg and in Emacs. Set the password in the
19194variable @code{org-mobile-use-encryption}@footnote{If Emacs is configured for
19195safe storing of passwords, then configure the variable,
19196@code{org-mobile-encryption-password}; please read the docstring of that
19197variable.}. Note that even after MobileOrg encrypts the file contents, the
19198file names will remain visible on the file systems of the local computer, the
19199server, and the mobile device.
19200
19201For a server to host files, consider options like
19202@uref{http://dropbox.com,Dropbox.com} account@footnote{An alternative is to
19203use webdav server. MobileOrg documentation has details of webdav server
19204configuration. Additional help is at
19205@uref{https://orgmode.org/worg/org-faq.html#mobileorg_webdav, FAQ entry}.}.
19206On first connection, MobileOrg creates a directory @file{MobileOrg/} on
19207Dropbox. Pass its location to Emacs through an init file variable as
19208follows:
19209
19210@lisp
19211(setq org-mobile-directory "~/Dropbox/MobileOrg")
19212@end lisp
19213
19214Org copies files to the above directory for MobileOrg. Org also uses the
19215same directory for sharing notes between Org and MobileOrg.
19216
19217@node Pushing to MobileOrg
19218@section Pushing to MobileOrg
19219
19220Org pushes files listed in @code{org-mobile-files} to
19221@code{org-mobile-directory}. Files include agenda files (as listed in
19222@code{org-agenda-files}). Customize @code{org-mobile-files} to add other
19223files. File names will be staged with paths relative to
19224@code{org-directory}, so all files should be inside this
19225directory@footnote{Symbolic links in @code{org-directory} should have the
19226same name as their targets.}.
19227
19228Push creates a special Org file @file{agendas.org} with custom agenda views
19229defined by the user@footnote{While creating the agendas, Org mode will force
19230ID properties on all referenced entries, so that these entries can be
19231uniquely identified if MobileOrg flags them for further action. To avoid
19232setting properties configure the variable
19233@code{org-mobile-force-id-on-agenda-items} to @code{nil}. Org mode will then
19234rely on outline paths, assuming they are unique.}.
19235
19236Org writes the file @file{index.org}, containing links to other files.
19237MobileOrg reads this file first from the server to determine what other files
19238to download for agendas. For faster downloads, MobileOrg will read only
19239those files whose checksums@footnote{Checksums are stored automatically in
19240the file @file{checksums.dat}.} have changed.
19241
19242@node Pulling from MobileOrg
19243@section Pulling from MobileOrg
19244
19245When MobileOrg synchronizes with the server, it pulls the Org files for
19246viewing. It then appends to the file @file{mobileorg.org} on the server the
19247captured entries, pointers to flagged and changed entries. Org integrates
19248its data in an inbox file format.
19249
19250@enumerate
19251@item
19252Org moves all entries found in
19253@file{mobileorg.org}@footnote{@file{mobileorg.org} will be empty after this
19254operation.} and appends them to the file pointed to by the variable
19255@code{org-mobile-inbox-for-pull}. Each captured entry and each editing event
19256is a top-level entry in the inbox file.
19257@item
19258After moving the entries, Org attempts changes to MobileOrg. Some changes
19259are applied directly and without user interaction. Examples include changes
19260to tags, TODO state, headline and body text. Entries for further action are
19261tagged as @code{:FLAGGED:}. Org marks entries with problems with an error
19262message in the inbox. They have to be resolved manually.
19263@item
19264Org generates an agenda view for flagged entries for user intervention to
19265clean up. For notes stored in flagged entries, MobileOrg displays them in
19266the echo area when the cursor is on the corresponding agenda item.
19267
19268@table @kbd
19269@kindex ?
19270@item ?
19271Pressing @kbd{?} displays the entire flagged note in another window. Org
19272also pushes it to the kill ring. To store flagged note as a normal note, use
19273@kbd{? z C-y C-c C-c}. Pressing @kbd{?} twice does these things: first it
19274removes the @code{:FLAGGED:} tag; second, it removes the flagged note from
19275the property drawer; third, it signals that manual editing of the flagged
19276entry is now finished.
19277@end table
19278@end enumerate
19279
19280@kindex C-c a ?
19281@kbd{C-c a ?} returns to the agenda view to finish processing flagged
19282entries. Note that these entries may not be the most recent since MobileOrg
19283searches files that were last pulled. To get an updated agenda view with
19284changes since the last pull, pull again.
19285
19286@node History and acknowledgments 19297@node History and acknowledgments
19287@appendix History and acknowledgments 19298@appendix History and acknowledgments
19288@cindex acknowledgments 19299@cindex acknowledgments
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 9797052725a..76383ad2cef 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -309,7 +309,10 @@ Normally nil in most modes, since there is no process to display.")
309(make-variable-buffer-local 'mode-line-process) 309(make-variable-buffer-local 'mode-line-process)
310 310
311(defun bindings--define-key (map key item) 311(defun bindings--define-key (map key item)
312 "Make as much as possible of the menus pure." 312 "Define KEY in keymap MAP according to ITEM from a menu.
313This is like `define-key', but it takes the definition from the
314specified menu item, and makes pure copies of as much as possible
315of the menu's data."
313 (declare (indent 2)) 316 (declare (indent 2))
314 (define-key map key 317 (define-key map key
315 (cond 318 (cond
diff --git a/lisp/savehist.el b/lisp/savehist.el
index e555450c209..329929be515 100644
--- a/lisp/savehist.el
+++ b/lisp/savehist.el
@@ -173,9 +173,26 @@ minibuffer history.")
173 "Toggle saving of minibuffer history (Savehist mode). 173 "Toggle saving of minibuffer history (Savehist mode).
174 174
175When Savehist mode is enabled, minibuffer history is saved 175When Savehist mode is enabled, minibuffer history is saved
176periodically and when exiting Emacs. When Savehist mode is 176to `savehist-file' periodically and when exiting Emacs. When
177enabled for the first time in an Emacs session, it loads the 177Savehist mode is enabled for the first time in an Emacs session,
178previous minibuffer history from `savehist-file'. 178it loads the previous minibuffer histories from `savehist-file'.
179The variable `savehist-autosave-interval' controls the
180periodicity of saving minibuffer histories.
181
182If `savehist-save-minibuffer-history' is non-nil (the default),
183all recorded minibuffer histories will be saved. You can arrange
184for additional history variables to be saved and restored by
185customizing `savehist-additional-variables', which by default is
186an empty list. For example, to save the history of commands
187invoked via \\[execute-extended-command], add `command-history' to the list in
188`savehist-additional-variables'.
189
190Alternatively, you could customize `savehist-save-minibuffer-history'
191to nil, and add to `savehist-additional-variables' only those
192history variables you want to save.
193
194To ignore some history variables, add their symbols to the list
195in `savehist-ignored-variables'.
179 196
180This mode should normally be turned on from your Emacs init file. 197This mode should normally be turned on from your Emacs init file.
181Calling it at any other time replaces your current minibuffer 198Calling it at any other time replaces your current minibuffer