代码之家  ›  专栏  ›  技术社区  ›  prosseek

在elisp中连接字符串

  •  35
  • prosseek  · 技术社区  · 14 年前

    .emacs 文件:

    (setq org_base_path "~/smcho/time/")
    (setq org-default-notes-file-path (concatenate 'string org_base_path "notes.org"))
    (setq todo-file-path (concatenate 'string org_base_path "gtd.org"))
    (setq journal-file-path (concatenate 'string org_base_path "journal.org"))
    (setq today-file-path (concatenate 'string org_base_path "2010.org"))
    

    当我这么做的时候 C-h v型 today-file-path 雷特 要检查,它没有指定变量。

    我的代码怎么了?有没有其他方法连接路径字符串?

    编辑

    3 回复  |  直到 3 年前
        1
  •  71
  •   offby1    14 年前

    你可以用 (concat "foo" "bar") (concatenate 'string "foo" "bar")

        2
  •  29
  •   Jürgen Hötzel    14 年前

    要生成相对于目录的文件名,请执行以下操作:

    (let ((default-directory "~/smcho/time/"))
      (setq org-default-notes-file-path (expand-file-name "notes.org"))
      (setq todo-file-path (expand-file-name "gtd.org"))
      (setq journal-file-path (expand-file-name "journal.org"))
      (setq today-file-path (expand-file-name "2010.org")))
    
        3
  •  28
  •   OTZ    14 年前

    将其插入.emacs并重新启动emacs(或在缓冲区中计算S-exp)以查看效果:

    (setq org-base-path (expand-file-name "~/smcho/time"))
    
    (setq org-default-notes-file-path (format "%s/%s" org-base-path "notes.org")
          todo-file-path              (format "%s/%s" org-base-path "gtd.org")
          journal-file-path           (format "%s/%s" org-base-path "journal.org")
          today-file-path             (format "%s/%s" org-base-path "2010.org"))