org-mode
tem a capacidade de renderizar código-fonte, com blocos da seguinte sintaxe:
#+NAME: <name>
#+BEGIN_SRC <language> <switches> <header arguments>
<body>
#+END_SRC
Existe um comando existente para inserir rapidamente esses blocos org-mode
ou preciso usar uma ferramenta externa como yasnippet
?
hydra
pacote: blogpost (3) Outro trecho para facilitar a inserção do bloco de origem.Respostas:
Como @kaushalmodi menciona nos comentários, você pode usar
(org) Easy Templates
para acelerar a inserção de diferentes tipos de blocos.O procedimento geral é inserir
<
seguido por um seletor de modelo (geralmente uma única letra) em uma linha vazia e pressionar TAB.O seletor de modelo para um modelo de bloco de origem genérico é
s
, portanto, digitar<s
seguido de TABdará a você o seguinte:O ponto será posicionado no final da primeira linha.
Esta é uma boa primeira aproximação do que você deseja alcançar, mas este é o Emacs, então vamos torná-lo melhor!
Você pode definir modelos personalizados adicionando uma ou mais entradas a uma variável chamada
org-structure-template-alist
. Por exemplo:Esse código adiciona um
#+NAME:
modelo aorg-structure-template-alist
, usandon
como um seletor de modelo. Após a expansão, esse ponto do modelo será posicionado no local de?
.Se você sempre nomear seus blocos de código, também poderá sobrescrever a versão original do modelo de bloco de origem por uma versão estendida que inclua a
#+NAME:
linha:A digitação
<s
seguida por TABdará a você:Esta é apenas a ponta do iceberg; você pode usar uma abordagem semelhante para definir modelos adicionais para blocos de código específicos de idioma, blocos de código com argumentos de cabeçalho específicos etc.
fonte
<s TAB
no Emacs 25 no Mac OS X e parecia funcionar.org-try-structure-completion
função (para Easy-templates). Mas, de qualquer maneira, ele será substituído pelos modelos de estrutura no futuro. cf. code.orgmode.org/bzg/org-mode/commit/…Por que não escrever você mesmo?
fonte
Na minha caixa, 99% do tempo estou criando blocos de origem e 1% do tempo estou fazendo todo o resto. Os modelos Easy de 1% são perfeitos e os 99% eu tenho um YaSnippet.
NAME
uso exclusivo,org-id
mas isso não importa apenas para nós) e, em seguida, pergunta-me qual idioma eu quero usar, limitando-o àqueles que eu disse à Programação Literada em Modo Orgânico (babel)Aqui está o YaSnippet com meu código de suporte no final.
Requer dash e modo org carregado.
Aqui está um exemplo de que você pode esta função de identificação:
Resulta em
fonte
fonte