A própria organização fornece um recurso para filtrar / pesquisar informações armazenadas em .org
arquivos de várias maneiras. É chamado de "Agenda" . O org-mode
manual fornece informações abrangentes sobre como usá-lo (verifique o link acima ou faça isso C-h i m Org Mode
RETno Emacs e navegue até o capítulo "Vistas da agenda"), para que não faça sentido repetir todas essas informações aqui. O texto introdutório do manual resume o que você pode fazer com ele (grifo meu):
A organização pode selecionar itens com base em vários critérios e exibi-los em um buffer separado. São fornecidos sete tipos diferentes de vistas:
- uma agenda que é como um calendário e mostra informações para datas específicas,
- uma lista TODO que abrange todos os itens de ação inacabados,
- uma visualização de correspondência, títulos de exibição com base nas tags, propriedades e estado TODO associados a eles,
- uma exibição da linha do tempo que mostra todos os eventos em um único arquivo organizacional, na exibição ordenada por tempo,
- uma exibição de pesquisa de texto que mostra todas as entradas de vários arquivos que contêm palavras-chave especificadas ,
- uma exibição de projetos bloqueados mostrando projetos que atualmente não se movem e
- visualizações personalizadas que são pesquisas especiais e combinações de visualizações diferentes.
A única coisa que você precisa fazer para começar a usar a agenda para pesquisar suas anotações é adicionar os arquivos que deseja pesquisar org-agenda-files
:
As informações a serem mostradas são normalmente coletadas de todos os arquivos da agenda, os arquivos listados na variável org-agenda-files
. Se um diretório fizer parte desta lista, todos os arquivos com a extensão .org
nesse diretório farão parte da lista.
Portanto, no seu caso, você deseja adicionar algo assim ao seu arquivo init:
(setq org-agenda-files '("/path/to/Notes/Linux" "/path/to/Notes/Programming"))
Para muitos exemplos e conselhos práticos, também recomendo que você consulte o artigo sobre Pesquisa avançada no Worg .
[UPDATE] Limitando a pesquisa a conjuntos de arquivos específicos
Conforme mencionado nos comentários, o OP deseja restringir as pesquisas a conjuntos específicos de arquivos. Em termos técnicos, isso significa definir org-agenda-files
valores diferentes, dependendo do contexto. Isso pode ser alcançado usando variáveis locais do diretório :
A maneira usual de definir variáveis locais do diretório é colocar um arquivo nomeado .dir-locals.el
em um diretório. Sempre que o Emacs visitar qualquer arquivo nesse diretório ou em qualquer um de seus subdiretórios, aplicará as variáveis locais de diretório especificadas em .dir-locals.el
, [...].
Por exemplo, digamos que
ao visitar os arquivos armazenados, Notes/Linux
você deseja usar a agenda para pesquisar apenas os .org
arquivos armazenados Notes/Linux
.
ao visitar os arquivos armazenados Notes/Programming
, você deseja usar a agenda para pesquisar apenas os .org
arquivos armazenados Notes/Programming
.
Aqui está o que fazer para habilitar esse comportamento:
Adicione um .dir-locals.el
arquivo com o seguinte conteúdo a ambos Notes/Linux
e Notes/Programming
:
((nil . ((org-agenda-files . (".")))))
Isso define a lista de org-agenda-files
para incluir todos os arquivos no diretório atual.
Adicione o seguinte código ao seu arquivo init:
(add-hook 'org-agenda-mode-hook #'hack-dir-local-variables-non-file-buffer)
Esta etapa é necessária para garantir que *Org Agenda*
(um buffer que não seja de arquivo ) respeite as configurações locais do diretório org-agenda-files
.
Da próxima vez que você visitar um arquivo armazenado em Notes/Linux
ou Notes/Programming
, o Emacs perguntará se você deseja aplicar as configurações armazenadas .dir-locals.el
. Pressione !para dizer ao Emacs para aplicar as configurações e marcá-las como seguras para sessões futuras (você não será solicitado a fornecer novamente arquivos no mesmo diretório).
M-x org-search-view
Aqui está o link para a documentação: orgmode.org/manual/Search-view.html