vim et les abbréviations ou fonctions.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : vim et les abbréviations ou fonctions.

par Hywan » 03 nov. 2007, 15:00

C'est pas que je sois contre les solutions commerciales. Evidemment, mon côté pingouin m'oblige à prôner le logiciel libre. Seulement, je trouve incroyable que personne ne se soit attaquer à SciTE sur Mac mais bon ...

(tiens, un nouveau message de fab, je réponds au passage)

Oui très peu de bon logiciel, mais la raison pour laquelle je veux un logiciel gratuit, c'est qu'il va pouvoir s'installer partout ; j'entends, sans une nouvelle licence à payer. Et comme je change d'ordi très souvent (entre la fac et mon appart, voire même des dépannages chez les autres), il me faut un logiciel ultra léger et interopérable, le cas de SciTE. C'est aussi le cas de vim, mais il est un brin complexe ^^. Remarquez, je commence à m'y faire hein.

par fab » 03 nov. 2007, 14:58

Enfin disont le franchement j'ai vu très peu d'éditeurs de code valables et complets en gratuit. Y a kate sous KDE mais sinon ... Y a Eclipse mais il est lourd..

par Shrell » 03 nov. 2007, 14:04

hmmm... pico ? :lol:
Sinon j'utilise Coda, qui reprend les fonctionnalités d'édition multiple de subEthaEdit (que j'utilisais avant), et tout plein de choses vraiment pratiques
mais bon, vu que tu as l'air de ne pas vouloir entendre parler de solution commerciale, je ne sais pas trop quelle autre solution te proposer :wink:

par Hywan » 02 nov. 2007, 20:38

Texmate est payant aussi ;-), donc non libre. Ma religion m'interdit d'utiliser des programmes non libres et non open-source hihi.
Je vais regarder du côté de subEthaEdit, sinon je reste sur vim (ça pourra toujours effrayer 2 ou 3 personnes ^^).

Merci :)

Edit : ah mais il est aussi payant ^^, mince. Vim : j'arrive ! (pour l'instant ;-))

par fab » 02 nov. 2007, 17:19

j'ai un petit éditeur c'est subEthaEdit :) sinon y en a qui utilisent Textmate

par Hywan » 02 nov. 2007, 15:59

Bien, comme mon poste a connu un nombre de réponses incalculables, je n'ose mettre la réponse ;-).
Enfin bref, j'ai fais un truc un peu bancale, qui ne marche pas à fond, mais c'est déjà une bonne piste.

Voici mon code :

Code : Tout sélectionner

if !exists("*s:WriteFunc") function s:WriteFunc( ) " Select previous string. let index = 0 while col(".")-index > 0 && strpart(getline("."), col(".")-index-1, 1) !~ '^\s$' let index = index + 1 endwhile let str = strpart(getline("."), col(".")-index, index) " Built new string. let index = stridx(str, '_') let i = 0 let display = "" let current = "" let comment = "\<Tab>/**\n\n\n" while index != -1 && strlen(str) > 0 let current = strpart(str, 0, index) let str = strpart(str, index+1, strlen(str)) let index = stridx(str, '_') " Access. if i == 0 if current == 'pub' let display = 'public ' elseif current == 'pro' let display = 'protected ' elseif current == 'pri' let display = 'private ' else let display = 'public ' endif let comment = comment . "@access " . display " Fonction's name elseif i == 1 let display = display . current . ' ( ' " Arguments else let display = display . '$' . current . ', ' let comment = comment . "\n@param " . current endif let i = i + 1 endwhile if i > 1 let display = strpart(display, 0, strlen(display)-2) endif let display = display . ' ) {' let comment = comment . "\n@return \n@throw \n" execute "normal dd" execute "normal i" . comment . "/\n\<ESC>$" execute "normal i" . display . "\n\<ESC>$" execute "normal \<RIGHT>\<RIGHT>\n" startinsert! endfunction endif inoremap <buffer> func <Esc>:call <SID>WriteFunc()<CR>
Son utilisation :

Code : Tout sélectionner

en mode insertion : pub_maFonction_a_b_c_ puis func (ne sera pas affiché car abbr) affichera : /** * * * @access public * @param a * @param b * @param c * @return * @throw */ public maFonction ( $a, $b, $c ) { | } où | représente l'emplacement du pointeur/curseur.

Voilà, c'est déjà un début, mais je ne suis pas encore satisfait à 100%, j'ai un petit soucis d'affichage dans certains cas.

Je ne sais pas si d'autres personnes utilisent vim sur ce forum, oui ? Ou sinon, dites moi quels sont les outils pratiques et rapides pour développer X langages sur Mac (on écarte Smultron, XCode et Eclipse merci). J'ai réussi à adapter SciTE sur Mac, mais il est vraiment trop moche :s.

Merci pour vos infos :).

vim et les abbréviations ou fonctions.

par Hywan » 30 oct. 2007, 17:58

Bonjour à tous,

je me suis mis à vim récemment (oui ça fait peur). J'arrive à faire à peu prêt tout ce que je veux sauf une chose. J'aimerais avoir des abréviations intelligentes. Je m'explique.

Quand je tape : pubfunc_maFonction, alors vim m'affiche dans mon fichier :

Code : Tout sélectionner

/** * maFonction * * @access public * @param * @return * @throw */ public maFonction ( | ) { }
où | étant la position du curseur par exemple.

J'ai pensé à le faire avec des fonctions (pour ajouter des arguments à la fonction, et que ce soit directement dans la doc), mais impossible d'écrire dans le fichier grr. À chaque fois, il m'écrit dans la partie commande, et pas dans la partie insertion. Et je ne trouve pas comment écrire dans la partie insertion. Les seules fois où je l'ai fais, c'était avec des fichiers de templates, où (.|0)read écrivait directement le contenu du fichier dans la partie insertion de vim.

Voilà, j'espère qu'il y a parmi vous 2 ou 3 fous de vim,
merci.