Partage
  • Partager sur Facebook
  • Partager sur Twitter

Emacs

Copier coller, changer mode indentation

    27 mars 2011 à 18:38:32

    Bonjour,

    Voilà : je débute sous emacs et j'ai plusieurs questions :
    - Premièrement, lorsque je copie du texte via M - w et que je veux le recoller dans un autre logiciel (exemple : firefox), il me colle non pas ce que j'ai copié mais une copie faite avant. En revanche si je colle via le clic du milieu de la souris, ca fonctionne.
    Je pense qu'emacs colle dans un autre presse papier, mais comment choisir le même presse papier que "Ctrl-V" ?


    - Ensuite, je ne suis pas convaincu de la manière d'indenter d'emacs. En effet, dans certains languages (je pense entre autre au langage scheme et CSS), il indente ainsi :


    fonction
    {
        si
        {
            .....
            }
        }

    Autrement dit, l'accolade fermante alignée avec le "si" n'est pas celle du si mais celle de fonction... Je préfèrerais que l'indentation se fasse ainsi :
    fonction
    {
        si
        {
            .....
        }
    }

    Ce qui est, je trouve, bien plus lisible.
    Est-ce possible de mettre ce mode d'indentation ?



    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      27 mars 2011 à 18:50:38

      Emacs utilise un presse-papier interne qui apporte un grand nombre de fonctionnalités utiles. Celle que je trouve indispensable est le fait de pouvoir revenu à d'autres coupures précédentes (système du "kill ring") : si tu coupes un truc, puis un deuxième, tu colles (C-y) tu obtiens le deuxième truc coupé, mais tu peux avoir le premier à la place en faisant M-y. Il se souvient ainsi d'un grand nombre de coupure, et c'est souvent super pratique.

      Pour copier vers un fichier externe j'utilise la méthode de copier/coller de X, qui marche à la fois dans Emacs et Firefox : sélectionner le texte, n'appuyer sur rien, et ensuite utiliser "bouton milieu" ou Maj+Insert.

      Pour ton autre question : oui, bien sûr, on peut choisir son style d'indentation. Regarde la documentation de la commande `c-set-style` et de la variable `c-style-alist`.

      PS : il faut se forcer à utiliser un peu la documentation interne d'Emacs. Elle est un peu austère d'aspect mais extrêmement bien fournie, c'est un outil très important pour apprendre Emacs.
      • Partager sur Facebook
      • Partager sur Twitter
        27 mars 2011 à 19:57:51

        Ok... Je n'avais jamais réussi à comprendre comment fonctionnait la touche du milieu de la souris !!! Par contre, maj+insert ne fonctionne qu'en console. Comment configurer un raccourcis clavier pour faire ça sur les autres logiciels que le terminal ? (c'est long d'aller chercher la souris ^^)

        Et pour 'c-set-style', je l'avais vu mais je pensais qu'elle était réservée au C (C-set-style)... Merci beaucoup !

        Je regarde un coup la doc et je vous redis si j'ai un problème.

        Merci !
        • Partager sur Facebook
        • Partager sur Twitter
          27 mars 2011 à 20:11:44

          Je crois que j'ai parlé un peu vite : c-set-style ne marche peut-être pas pour tous les langages. Il marche certainement avec le C et je crois que les modes de la plupart des langages C-like s'en servent (par exemple je crois me souvenir que le mode C++ respecte le mode C). Pour des langages moins proches de C comme Scheme, il y a sans doute des configurations d'indentation à part dans le mode Scheme que tu utilises. Par exemple, j'utilise le mode Tuareg pour OCaml, et il a ses propres réglages d'indentation.
          • Partager sur Facebook
          • Partager sur Twitter
            27 mars 2011 à 20:46:24

            D'accord. Et comment puis-je trouver et modifier les propriétés d'indentation du mode Scheme ?
            • Partager sur Facebook
            • Partager sur Twitter
              30 mars 2011 à 17:19:40

              Je suis allé sur le canal IRC #emacs, et j'ai eu la réponse à mes problèmes (merci beaucoup à eux) :
              ;-----------Indentation--------------
              (setq c-toggle-auto-newline) ;Va automatiquement à la ligne lorsque l'on appuie sur ; { }
              
              (global-set-key (kbd "RET") 'newline-and-indent) ;Indente automatiquement lorsque l'on appuie sur Entrée
              
              
              
              ;------------Copier/coller-------------
              (setq x-select-enable-clipboard t);Copier coller avec autres applications
              

              • Partager sur Facebook
              • Partager sur Twitter
                23 août 2017 à 22:13:14

                Et donc pour autoriser la copie colle dans emacs il faut lancer en console : 

                setq x-select-enable-clipboard t

                Ou c'est un paramètre a modifier dans un fichier config ? 

                • Partager sur Facebook
                • Partager sur Twitter
                La liberté d'autrui étend la mienne à l'infini
                  23 août 2017 à 23:17:40

                  C'est à mettre dans le fichier de configuration.

                  Mais est-ce que c'est vraiment utile en 2017 ? Chez moi le copier-coller marche très bien sans avoir a toucher à la configuration.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Blond, bouclé, toujours le sourire aux lèvres...

                  Emacs

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown