On Wed, Jul 18, 2012 at 11:48 PM, Nick Dokos wrote: > Matt Price wrote: > > > I'm revising my course syllabi for next Fall and therefore need to > > update all the timestamps. In this case, I need to add 361 days to > > every stamp. Is there a function somewhere that can read a timestamp, > > convert it to a numerical value, change the value, and then record the > > new value in the right format? It would make my life easier if I could > > at least define a macro to do this. > > > > You might be able to do more precise surgery with org-element (just > guessing here: I haven't done anything with org-element yet), but if you > can search for the timestamps simply, you might be able to get away with > just a keyboard macro, e.g. if all timestamps are of the form > and *nothing else* looks like that, then a keyboard > macro that does something like the following: > > search for "<201" > advance a few chars to get to the DD part > ESC 361 S- > > might be all that you need. Then you repeat (once) with C-x e or (many > times) with C-u 1000 C-x e. > > But it really depends on identifying a search string that will not lead > you astray. Also make sure you save a backup of your file before you > start - you may have to do this a couple of times before you get it > right. > > Assuming that the simple search above is sufficient, doing > > C-x ( C-s < 2 0 1 RET 6*C-f ESC 3 6 1 C-x ) > > to define the macro should be enough. kmacro-edit-macro then shows me this: > > --8<---------------cut here---------------start------------->8--- > ;; Keyboard Macro Editor. Press C-c C-c to finish; press C-x k RET to > cancel. > ;; Original keys: C-s < 2 0 1 RET 6*C-f ESC 3 6 1 > > Command: last-kbd-macro > Key: none > > Macro: > > C-s ;; isearch-forward > < ;; self-insert-command > 2 ;; self-insert-command > 0 ;; self-insert-command > 1 ;; self-insert-command > RET ;; org-return > 6*C-f ;; forward-char > ESC > 3 ;; self-insert-command > 6 ;; self-insert-command > 1 ;; self-insert-command > ;; org-shiftup > --8<---------------cut here---------------end--------------->8--- > > HTH, > Nick > Thanks to both you guys -- I tried both solutions, they both work! I love this list. Matt