Eu sou capaz de calcular datas assim:
#+NAME: mytbl
| # | [2014-12-14 Sun] | 30 | <2015-01-13 Tue> |
#+TBLFM: $4=$2+$3;D
mas o que eu quero fazer é fazer com que essa data apareça como uma data da agenda, algo como:
DEADLINE: $remote(mytbl,@1$4)
mas isso não funciona. Não consigo encontrar nenhuma sintaxe, nem mesmo uma macro, que permita nada além de uma data literal para uma entrada na agenda.
Alguma ideia?
org-mode
org-agenda
jtgd
fonte
fonte
org-mode
e que não pode ser facilmente alterado (na minha opinião) - existe até um observe na sequência de documentos a variável timestamp que desaconselha ajustes.org-time-stamp-formats
é uma variável definida emorg.el
. Seu valor é("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>")
Esta variável pode ser arriscada se usada como uma variável local do arquivo. Documentação: Formatosformat-time-string
usados para carimbos de data e hora. Não é recomendável alterar essa constante. Veja também, o costume tempo formato de carimbo: orgmode.org/manual/Custom-time-format.html#Custom-time-formatRespostas:
Tente o seguinte:
Calcule o prazo em uma planilha, também conhecida como tabela .
Crie uma nova tabela 1x1 que faça referência ao prazo calculado da primeira tabela usando a
remote(NAME-OR-ID,REF)
funçãoPasse a tabela de prazo 1x1 como variável via cabeçalho
:var name=value
para oSRC
bloco nomeado , por exemplo, set_deadline elisp code block abaixo.Avalie o bloco SRC usando C-c C-ce o prazo será adicionado ao arquivo de modo organizacional em um
#+RESULTS:
bloco.Adicionar o
:results raw
cabeçalho ao bloco de código força a saída para o formato org-mode, que será reconhecido como uma instrução org regular.Como um bônus adicional, o uso de um bloco src nomeado também incentiva a reutilização de código por meio de chamadas de função em linha.
Como antes, avalie cada função embutida usando C-c C-ce um novo prazo será adicionado ao arquivo de modo organizacional.
Espero que tenha ajudado!
Nota: Esse código foi testado usando as seguintes versões do emacs e org-mode.
fonte
replace
não se comportar conforme o esperado, tente atualizar oraw
cabeçalho com odrawer
cabeçalho. Depois que troquei, tudo funcionou como esperado. Espero que ajudei! Obrigado por fazer sua pergunta e seu código elisp!drawer
coisa funciona perfeita agora. Tanto para aprender sobre o modo organizacional, é bom ter assistentes como você por perto. Quanto aos outros exemplos publicados, tentei um e funcionaraw
sem anexar. Mas meu aplicativo funciona, então estou feliz.Muito obrigado Melioratus, que resposta excelente! É incrível como você usou os vários mecanismos do modo Org para fazer isso. A parte mais significativa disso para mim foi o
:results raw
texto produzido a ser verificado novamente na criação da agenda. Essa foi a chave.Quando examinei como expandir isso para lidar com muitas datas, me perguntei se não poderia simplesmente fazer os cálculos de datas no elisp. Ainda sou muito novo para elisp, mas tentei um pouco e descobri isso.
Minha tarefa é calcular a data em que meus medicamentos acabam adicionando 30 dias ao dia em que inicio a garrafa. O que eu fiz foi isso.
No meu .emacs, escrevi algumas funções:
Tentei manter essas funções genéricas e não focadas nos remédios para reutilização. Pode haver maneiras melhores de fazer isso, como eu disse que sou novato.
Então, no meu arquivo .org, faço o seguinte:
Bonito e arrumado, uma linha por instância. Fazer Cc Cc no bloco gera a manchete e DEADLINE com a data e aparece perfeitamente na agenda. Funciona bem e estou feliz com os resultados. Mais uma vez obrigado pela dica para você e lista de advogados.
ps A única coisa que não funciona é a
replace
. Ele sempre é anexado ao bloco # + RESULTS, então eu tenho que excluí-lo antes de gerá-lo. É menor, mas não entendo o porquê.fonte