Existe uma maneira simples de usar todos os arquivos organizacionais mencionados em um arquivo principal para a tabela de relógio do modo organizacional


9

Estou usando o modo organizacional para acompanhar o tempo que gasto em vários projetos. Eu tenho um arquivo organizacional principal e mais dois para dois grandes projetos em que estou trabalhando. Todos os três estão listados em org-agenda-files. Criei uma tabela de relógio no arquivo organizacional principal e defina

:scope agenda-with-archives

no cabeçalho da tabela de horário para resumir o tempo gasto. Tudo isso funciona bem.

No entanto, também tenho alguns projetos menores que também rastrearam o tempo em seu próprio arquivo organizacional (localizado no subdiretório que contém tudo sobre esses projetos) e gostaria de rastrear o tempo também.

É claro que eu poderia adicionar esses arquivos org-agenda-files, mas isso significaria atualizar o meu .emacstoda vez que eu iniciar um novo projeto pequeno. Não é o fim do mundo, é claro, mas como eu já tenho um link para os pequenos arquivos-org-projeto no arquivo principal da organização (veja o exemplo abaixo), gostaria de definir :scopealgo como

:scope agenda-with-archives linked-org-files

Idealmente (embora ainda não o esteja usando), seria ótimo incluir arquivos de projetos menores (algo como :scope linked-org-files-with-archives).

Aqui está um exemplo de como meu arquivo organizacional principal está estruturado:

* Small project 1
  See file:~/Projects/Project 1/notes_project_1.org for more details.
* Small project 2
  See file:~/Projects/Project 2/notes_project_2.org.
** DONE Some small task I can do quickly
   CLOCK: [2014-12-05 vr 12:19]--[2014-12-05 vr 12:40] =>  0:21
   Some info on the small task.

Alguma idéia de como conseguir isso?

Respostas:


6

Você pode usar

:scope some-function

onde a função some-functionretorna a lista necessária de arquivos. Por exemplo:

(defun some-function () org-agenda-files)

ou

(defun some-function ()
  (append org-agenda-files
          (file-expand-wildcards "your-path/*.org")))

(defun some-function () org-agenda-files)with :scope (some-function)não funciona para mim e não é mencionado nos documentos. Ainda é suportado?
avv

Qual versão do modo organizacional você usa? Algum erro é gerado?
artscan

11
Lisp error: (wrong-type-argument stringp some-function). Org mode version 9.0.7
avv

Editado para corrigir a linha do escopo - que deve corrigir os erros do lisp.
NickD

3

Eu tenho tido problemas com isso também.

A resposta do @ artscan me apontou na direção certa, mas retorna um argument typeerro. Soltar os parênteses resolve o problema.

Eu comentaria a resposta do artscan, mas não tenho reputação suficiente.

Para resumir, então, aqui está o que eu uso:

Na tabela, forneça :scope efls/org-files-productive. Sem parênteses. Defina uma função simples para retornar uma sequência de arquivos.

Por exemplo, eu uso algo assim:

(defun efls/org-files-productive ()
 "Return productive org files."
 '("/Users/efls/org/file1.org" "/Users/efls/org/file2.org" "/Users/efls/org/file3.org"))

Você poderia, é claro, também simplesmente digitar uma lista de arquivos depois :scope, mas então você fazer parênteses necessidade encerram a lista: scope: ("Users/efls/org/file1.org" "…").

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.