Mode organisation par défaut sur Alt-Enter pour les puces


9

Je veux que le mode organisation par défaut soit alt-enter lorsque sous les puces, de sorte que pour les puces, je peux simplement appuyer sur Entrée pour créer une nouvelle puce.

Ainsi, par exemple:

  • banane
  • Pomme
  • Kiwi [CURSEUR DE LA SOURIS ICI]

Lorsque j'appuie sur Entrée, je souhaite le comportement suivant (qui se produit lorsque j'appuie sur M-Entrée):

  • banane
  • Pomme
  • kiwi
  • [CURSEUR DE LA SOURIS ICI]

Au lieu de:

  • banane
  • Pomme
  • kiwi

[CURSEUR DE LA SOURIS ICI]

C'est la valeur par défaut pour la plupart des autres applications, mais pourquoi pas pour le mode org?

Cela améliorerait considérablement mon flux de travail. Mais je ne sais pas comment! Merci d'avance.


1
Bienvenue sur Emacs.SE! Il serait utile que vous puissiez expliquer ce que vous avez essayé de faire jusqu'à présent (et quelles références vous avez recherchées qui vous ont laissé coincé). Pour commencer, jetez un œil à la description suivante des raccourcis clavier Emacs , qui vous permettra de démarrer avec les concepts.
Dan

1
Je pense que l'ancien est le comportement par défaut en mode org. Pouvez-vous démarrer vos emacs avec uniquement le mode org chargé et réessayer?
Leu_Grady

Comment mettriez-vous fin à une liste?
SabreWolfy

1
Pas la solution, mais d'après mon expérience, m'y habituer M-RETest beaucoup plus bénéfique. M-RETferait la bonne chose quand le point est dans (i) une liste (ii) un titre (iii) une cellule de tableau org (iv) ... Au moment où vous commencez à aimer M-RET, vous découvrez C-u M-RETet vous l'aimez encore plus! :)
Kaushal Modi

Réponses:


3

Vous pourriez essayer cette version. Il ajoute des éléments et des en-têtes avec un retour régulier, et avec un double retour sur une entrée vide termine la liste. Il modifie également le retour dans une table pour ajouter des lignes ou terminer une table sur une ligne vide. C'est légèrement testé;)

(defun scimax/org-return ()
  "Add new list or headline "
  (interactive)
  (cond
   ((org-in-item-p)
    (if (org-element-property :contents-begin (org-element-context))
    (org-insert-heading)
      (beginning-of-line)
      (kill-line)
      (org-return)))
   ((org-at-heading-p)
    (if (not (string= "" (org-element-property :title (org-element-context))))
    (org-insert-heading)
      (beginning-of-line)
      (kill-line)
      (org-return)))
   ((org-at-table-p)
    (if (-any?
     (lambda (x) (not (string= "" x)))
     (nth
      (- (org-table-current-dline) 1)
      (org-table-to-lisp)))
    (org-return)
      ;; empty row
      (beginning-of-line)
      (kill-line)
      (org-return)))
   (t
    (org-return))))

(define-key org-mode-map (kbd "RET")
  'scimax/org-return)

Réponse développée par le même auteur kitchingroup.cheme.cmu.edu/blog/2017/04/09/…
joelostblom


0

Vous pouvez le faire comme ceci:

 (defun my/org-list-new-item ()
   (interactive)
   (if (org-in-item-p) (org-insert-heading) (org-return)))
 (define-key org-mode-map (kbd "RET") 'my/org-list-new-item)

Mais je ne recommande vraiment pas de l'utiliser comme ça.


Et il n'a pas le comportement de msword (double entrée pour effacer l'élément de liste vide et aller au texte «normal»). Bien sûr, cela pourrait être fait simplement ajouter plus d'élisp.
Maxim Kim
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.