Forum Astuces.divers [Éditeur/Emacs] Autocompletion sous (X)emacs

Posté par  .
Étiquettes : aucune
0
5
mar.
2002
Amis feignants, un petit raccorci clavier fort utile. Lorsqu'on tape un texte/programme/tout ce que vous voulez, il y a en general des termes qui reviennent frequements. Vous en avez marre d'avoir a retaper inlassablement des 'subsubection', 'fonction_de_la_mort_qui_tue' ou 'dihydrogenophosphate' selon votre specialite ? La combinaison 'ESC-CTRL-/' est faite pour vous. Vous obtiendrez l'autocompletion d'un mot qui reviens frequement dans un texte en ne tapant que le debut du dit mot, suivi de la formule magique precitee !
  • # ESC? Non, meta!

    Posté par  . Évalué à 0.

    C'est la séquence de touches Meta-Control-/ en fait. Meta peut s'obtenir, en général, en faisant Escape, mais peut aussi s'obtenir par la pression de la touche Alt, ou de la touche "windows", selon les configurations de X et de Emacs.
    Ce qui est quand même plus pratique
    • [^] # Re: ESC? Non, meta!

      Posté par  . Évalué à 2.

      meme pas besoin de control !
      avec Meta+/ ca suffit :)
      amusez-vous bien
      • [^] # Les deux !

        Posté par  (site Web personnel) . Évalué à 1.

        En fait il y a deux racourcis :

        • Ctrl + meta + /
          fait la complétion et s'arrète à la première ambiguïté. (à la bash quoi)
          on tape alors la lettre qui manque et on refait Ctrl + meta + /


        • meta + /
          fait la complétion. Si il y a ambiguïté, il choisit la plus récente complétion.
          Pour en choisir une autre, refaire meta + /


        Les deux ont leur utilité. C'est proche mais différent. Et super pratique. Juste qu'il faut se faire greffer qques doigts supplémentaires ...
        • [^] # Re: Les deux !

          Posté par  . Évalué à 1.

          Ctrl + meta + / ca fait 4 touches a la fois sur un clavier francais !

          plus simple :
          (global-set-key [f7] 'dabbrev-expand)
          (global-set-key [C-f7] 'dabbrev-completion)
  • # la même chose sous vim

    Posté par  . Évalué à 3.

    et pour avoir le même effet sous vim, c'est CTRL-N ou CTRL-P

    voilà c'est tout
    (non, y a pas de troll :þ )
  • # Dans la série vim est ton ami ...

    Posté par  . Évalué à 1.

    Ajoutez dans votre ~/.vimrc :

    function InsertTabWrapper(direction)
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k'
    return "\<tab>"
    elseif "backward" == a:direction
    return "\<c-p>"
    else
    return "\<c-n>"
    endif
    endfunction

    inoremap <tab> <c-r>=InsertTabWrapper("forward")<cr>

    inoremap <s-tab> <c-r>=InsertTabWrapper("backward")<cr>

    et vous pouvez faire de la complétion avec la touche TAB et ça rox
    • [^] # Shift-TAB sous emacs ca roxor aussi

      Posté par  . Évalué à 1.

      Mettre dans votre ~/.emacs :

      (global-set-key [S-tab] 'dabbrev-expand)

      ou suivant les claviers (lancer xev pour avoir la valeur de la touche TAB):

      (global-set-key [S-backtab] 'dabbrev-expand)
  • # Phote !

    Posté par  . Évalué à 1.

    s/feignants/fainéants/
  • # Re: Autocompletion sous (X)emacs

    Posté par  (site Web personnel) . Évalué à 1.

    En cherchant comment immiter le "intellisense" utilisé par msvc, j'en suis arrivé à un truc pas mal. Dans mon répertoire ou se trouve mes sources je tape : etags *.c *.h Puis j'ajoute à mon ~/.emacs (setq tags-table-list '("./" "~/")) (global-set-key [C-tab] 'dabbrev-expand) Enfin lorsque j'ouvre une fichier pour l'éditer il me suffit de taper sur [C-tab] pour avoir la completion des structures par exemple, ou encore des noms de fonction. Pour ameliorer le système j'ai tapé dans mon repertoire home etags /usr/include/*.h /usr/local/include/*.h Cela donne déjà des résultats satisfaisants, mais lorsque on tape get c'est long de passer tous les choix possibles en revue alors il faut essayer dabbrev-completion. Mais chez moi cela ne me propose pas une liste aussi complète que celle accessible par dabbrev-expand : c'est le premier problème... Aussi pour aller à la définition d'une fonction j'ai ajouté à mon ~/.emacs (global-set-key [S-tab] 'find-tag-other-window) Là encore tant que je reste dans les fonctions définies dans mon source cela marche pas mal. Mais dés qu'il s'agit de trouver printf ou scanf c'est sans résultat. Pareil pour la completion : cela ne marche pas. Donc si quelqu'un sait comment améliorer la configuration d'emacs pour avoir un moyen de parcourir notre code aisaiment, je suis preneur !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.