emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Elisp: help on string operations for fast file visiting


From: Karl Voit
Subject: [O] Elisp: help on string operations for fast file visiting
Date: Mon, 7 Nov 2016 17:27:01 +0100
User-agent: slrn/pre1.0.0-18 (Linux)

Hi!

For Memacs[1], I'd like to come up with a very fast Org-mode method to
open files independent of their location on your disk. I accomplished
everything necessary so far. However, I've got issues writing an elisp
function for extracting a file and sending it to a function that calls
the operating system app associated. My elisp knowledge is still too
bad :-(

What I've got is a string (from the lookup) which contains:
(1) nothing
(2) one line like "** <2008-06-17 21:43> [[file:/home/user/dir/2008-06-17 
description of file.odp][2008-06-17 description of file.odp]]"
(3) multiple lines like (2) but with different files and links

I'd like to get a "Sorry" message for (1). Easy, if only I know how to
count lines in strings (as opposed to buffers).

For (2) I'd like to call my-open-in-external-app(string).

For (3), I'd like to use the first line just as in (2) as a starter. I
do have some ideas on gracious "error-recovering" on this one but
that's maybe too complicated to code for now: getting rid of
substrings delimited by not-'a-zA-Z0-9' from the end of the link
until a match is found; message in case there is no unique match which
could be found this way.

Could you please help me here? It'd help all users of the file index
module of Memacs.


The mini fragment I have so far is following but the regex seems to
be broken:

#+BEGIN_SRC elisp
    (let (
      (result (replace-regexp-in-string "\r?\n$" ""
                        (shell-command-to-string (concat "grep "
                                         "2008-06-17"
                                         " ~/org/memacs/files.org_archive");; 
hard coded stuff for testing purposes
                                     )
                        )
          )
      )
      (message (concat "result -> " result))
      (re-search-forward " \[\[.+\]\[" nil t 1)
      (let (
        (firstlink ((match-string 1)))
        )
        (message (concat "first link -> " firstlink))
       )
      )
#+END_SRC



[1] https://github.com/novoid/Memacs

-- 
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <

https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github




reply via email to

[Prev in Thread] Current Thread [Next in Thread]