Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#101 Le 31/05/2008, à 16:11

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

tshirtman a écrit :

ah zut j'avais pas vu cette question, j'avais les réponses hmm

pour me faire pardonner les petits détails qui vont bien avec:

crtl-w n< pour déminuer la taille d'un split vertical (remplacer n par un nombre ou l'ommetre pour redimmentionner de 1)
crtl-w n> pour l'augmenter de la même façon

ctrl-w n+ pour augmenter un split horizontale
ctrl-w n- pour le diminuer

ctrl-w H ou J ou K ou L pour déplacer le split courant sur le bords gauche, bas, haut ou droite de l'écran.

smile

Yeah; merci big_smile

C'est vrai que le split est vraiment pratique, surtout sur des gros fichier où on peut éditer 2 fois le même fichier à des endroit différent, le tout avec le même buffer \o/; ce qui apparait sur l'un apparait sur l'autre...


le "lol" est aux boulets ce que le ";" est aux programmeurs
blog | Wiki Fvwm | Essayez le Window Manager From Scatch | Topic WMFS

Hors ligne

#102 Le 31/05/2008, à 16:29

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

philpep-tlse a écrit :
function Vim_c_func ()
set cindent
ino _main int main (int argc, char *argv[])<CR>{<CR>return 0;<CR>}<esc>2ko
ino inc<tab> #include <><esc>i
endfunc
autocmd Filetype c call Vim_c_func ()

Ou beaucoup mieux, les ftplugin qui servent à ça, et proprement (i.e. on ne parasite pas le .vimrc de définitions pour chacun des 42 langages dans lesquels on code)

Accessoirement, tout mapping propre à un type de fichier devrait contenir un <buffer>, -b pour les commandes, et utiliser BufferMenu de Michael Geddes pour les menus.

Pour les onglets, j'avoue ne pas encore y avoir trouvé d'intérêt. Dans ma session de travail, j'ai tendance à monter jusqu'à une bonne 30aine (parfois plus) de fenêtres splittées.

#103 Le 31/05/2008, à 16:31

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

le vertical split sur un écran large c'est un vrais bonheur...

les onglet c'est juste que tu as un seul vim au lieu de 30, et que tu fait gt au lieu de alt-tab...

si tu as un firefox a coté tu passe moins de temps à le chercher je pense... et pour les onglets ils ont un titre tout le temps visible...

Dernière modification par tshirtman (Le 31/05/2008, à 16:33)

Hors ligne

#104 Le 05/06/2008, à 20:19

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Je viens de trouver un lien utile: Pdf qui résume les principaux raccourcis de vim

Je recherche différents trucs pour vim:
- Existe-t-il un plugin de complétition du code (pour le c++, python, java, php essentiellement), de préférence facile à installer?
- Peut on se déplacer de fonction en fonction (de préférence sans utiliser foldmethod, je ne supporte pas ça).

Sinon une astuce : mettre le résultat d'une commande à un ligne donnée du buffer:

:5!ls

(affiche le contenu du répertoire à la ligne 5).

Hors ligne

#105 Le 06/06/2008, à 11:34

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

geenux a écrit :

Je recherche différents trucs pour vim:
- Existe-t-il un plugin de complétition du code (pour le c++, python, java, php essentiellement), de préférence facile à installer?

On en parle ici : http://forum.ubuntu-fr.org/viewtopic.ph … 2#p1659502

Merci pour l'astuce smile

Mais comment le mettre à l'endroit ou est le curseur ?


le "lol" est aux boulets ce que le ";" est aux programmeurs
blog | Wiki Fvwm | Essayez le Window Manager From Scatch | Topic WMFS

Hors ligne

#106 Le 06/06/2008, à 12:00

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Je ne sais pas. Sur la même ligne ça a l'air de marcher en faisant

:,!ls

Mais ça remplace le texte qui était sur la ligne...

Hors ligne

#107 Le 06/06/2008, à 14:34

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

moi je faisait

!!ls

(plus souvent !!date en fait wink)
qui fait la même chose, et en effet ça remplace la ligne, du coup je fait souvent "o<esc>!!date"

je trouve ça un peu suboptimal mais je ne sais pas créer une ligne vide sans passer en insertion hmm.

Hors ligne

#108 Le 06/06/2008, à 14:39

Spalax

Re : Liste de Commandes/Fonctions utile sous VIM

Pour insérer le résultat de la commande après la ligne courante :

:r!ls

je trouve ça un peu suboptimal mais je ne sais pas créer une ligne vide sans passer en insertion hmm.

Il me semble que c'est sur ce fil que je l'avais lu, mais Ctrl+o permet "d'exécuter une touche" en mode normal quand on est en mode insertion.
Par exemple, "Ctrl+o o" en mode insertion, ajoute une ligne et reviens en mode insertion.

Dernière modification par Spalax (Le 06/06/2008, à 14:42)

Hors ligne

#110 Le 06/06/2008, à 15:11

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

tshirtman a écrit :

(plus souvent !!date en fait wink)

fais simplement CTRL-R = strftime("%c")
tu peux mettre le format que tu veux. Regardes "man date" pour les formats

Autre utilité: CTRL-R = 6*7 va marquer 42


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#111 Le 06/06/2008, à 15:19

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

... heu je trouve ça plus long à tapper ^^ et avec date +%... on peut aussi formater wink.

Hors ligne

#112 Le 06/06/2008, à 16:34

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

Pour ce qui est de la longueur de ce qui est à taper, avec une petite abréviation intelligente, le <c-r>= est bien plus court que le :r!ls + jonglage avec J/x/dd/etc

- Existe-t-il un plugin de complétition du code (pour le c++, python, java, php essentiellement), de préférence facile à installer?

Peux-tu préciser ton besoin ? Tu veux de la complétion intelligente contextuelle, ou une alternative à ^P (comme cela t'a été proposé)
NB: installer un plugin pour vim est de plus en plus facile aujourd'hui avec les vimball.

- Peut on se déplacer de fonction en fonction (de préférence sans utiliser foldmethod, je ne supporte pas ça).

Si tes fonctions ne sont pas indentées (genre dans un namespace en C++, ou une classe en Java), et l'{ en debut de ligne, il me semble qu'il y a des séquences de touches capables de sauter de fonction en fonction. Genre ]m dont le résultat est plus ou moins heureux. TagList est une autre façon de s'y prendre.

Autrement, un truc qui devrait bien marcher si tes tags sont à jour:
- extraire les tags associés au fichier courant
- ne garder que ceux qui contiennent des définitions de fonctions
- fusionner tous leurs patterns de recherche
- et exécuter la recherche.
C'est assez simple à écrire.
(Tu peux trouver des bouts de code pouvant te mettre sur la voie dans cette bibliothèque en version beta  (lignes 306 et plus) (qui est entre autres utilisée par un autre script pour rechercher et afficher les fonctions sans définition ou sans déclaration associée, en C ou C++)

#113 Le 06/06/2008, à 18:41

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Pour la complétition j'ai trouvé dans tes plugins mon bonheur.
Il me manque juste quelque chose. L'autocréation de classes : quand on tape class Truc, j'aimerais qu'il me complète la définition de classe, qu'il créé le constructeur/destructeur.
Existe-t-il un moyen comme dans emacs de créer à partir d'une classe, le fichier d'implémentation?

Hors ligne

#114 Le 06/06/2008, à 19:27

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

geenux a écrit :

a- Pour la complétition j'ai trouvé dans tes plugins mon bonheur.
b- Il me manque juste quelque chose. L'autocréation de classes : quand on tape class Truc, j'aimerais qu'il me complète la définition de classe, qu'il créé le constructeur/destructeur.
c- Existe-t-il un moyen comme dans emacs de créer à partir d'une classe, le fichier d'implémentation?

a- Ah!? J'ai ça moi? Tu m'intrigues (soit c'est trop évident pour que je vois ce à quoi tu penses, soit on a une version légèrement différente de "complétion") wink

b-[La dernière fois que j'ai fais ça, mon message s'est fait dégager d'ici en quelques heures, alors il va falloir aller vite.]
Ballades-toi sur le site sur googlecode dont j'ai donné l'adresse juste au dessus. Va sur la page lhCpp, vois si la courte description du wizard (si si, il pose des questions intelligentes sur la sémantique que l'on veut donner à la classe) de génération de classe te va. Si oui, tu vas avoir plein de trucs à récupérer, dont deux par subversion (map-tools/v1.0.0beta, et lhCpp). Au final tu n'es pas obligé de tout utiliser, mais il va te falloir regarder fichier par fichier ce que tu voudras garder (je n'ai pas trop eu le temps de m'occuper de la doc).

L'important (pour ta question), c'est mu-template+map-tools+lhvimlib qui est utilisé par un fichier template de lhcpp (qui requiert aussi plusieurs autoload plugins de lhcpp).

c- Je ne connais rien qui parse automatiquement toutes les fonctions du .h pour générer les squelettes dans le .c/.cpp
Toutes fois, avec peu d'huile de coude et lhcpp, tu as:
- :CppUnmatchedFunctions qui liste les fonctions de la classe courante (ou du pattern en paramètre) pour lesquelles il n'y a pas de déclaration ou pas de définition. Ca, c'est pour naviguer.
- :GOTOIMPL (qui n'est pas complètement bug free sad) , qui permet de générer un squelette d'implémentation à partir d'une (et une seule) déclaration

L'huile de coude, c'est pour appliquer :GOTOIMPL sur chaque fonction de ton .h

Algorithmiquement, le premier est très simple, mais je ne lui connais pas de concurrents. Pour le second, je m'étais appuyé sur le boulot de Robert Kelly IV et son tip sur vim.org, entre temps j'ai repris le flambeaux et je ne connais aucun autre concurrent.

(Si tu veux t'amuser à utiliser les API (qu'un jour je documenterai) de CppUnmatchedFunctions et de GOTOIMPL pour pondre une solution qui fait tout automatiquement, tu es le bienvenu, je pourrais même l'intégrer au reste)

Voilà, HTH (et Hope que cela passe le filtre à pubs des modos)
(Si tu as des questions plus précises, contactes moi peut-être plutôt par mail pour pas polluer plus le fil)

#115 Le 14/06/2008, à 09:15

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Un truc dont j'ai eu besoin aujourd'hui et que je n'ai pas trouvé (en fait, j'ai du mal à comprendre le rechercher remplacer de vim).

Je voulais supprimer toutes les lignes d'un fichier qui contiennent un mot.
Par exemple un fichier

une ligne qui contient test
une ligne qui ne le contient pas
et encore test

Comment faire pour supprimer toutes les lignes contenant le mot "test"?

Hors ligne

#116 Le 14/06/2008, à 09:40

abetsic

Re : Liste de Commandes/Fonctions utile sous VIM

Salut,

Perso je ferai ça avec sed :

sed '/test/d' -i ton_fichier

/test/ = on recherche une ligne contenant test
d = on l'efface (delete)
-i ton_fichier = lire à partir de ton_fichier et enregistrer directement dedans les modifications.
Tu peux virer le -i et utiliser un "> nouveau_fichier" à la fin de la ligne de commande pour que les modifications soient enregistrés dans un autre fichier, ou bien en précisant un suffixe à -i, par exemble -i.new

Avec vim ça serait quelque chose comme ça :

:%s/.*test.*$\n//'

.* = N'importe quoi
$ = fin de ligne
\n = retour chariot

Hors ligne

#117 Le 14/06/2008, à 09:50

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Merci, ça marche big_smile

Hors ligne

#118 Le 14/06/2008, à 12:50

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

:h :g
et :h :v pour l'opération inverse.

-> :g/test/d_

#119 Le 24/06/2008, à 10:52

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

Excellent fil avec des tas de commandes intéressantes que j'ai ajoutée à mon tutoriel perso de vim cool ce n'est pas pour faire de la pub, mais si ca peut aider à compléter ce post ou la doc sur le site, j'ai plus facile de vous filer le lien que de tout recopier :

http://membres.lycos.fr/eclats2vers/unix.php#vim

Sinon, quelqu'un aurait une idée pour que vim insère automatiquement les balises fermantes
en html ? par exemple, taper "<div>" et obtenir "</div>" à la suite

Dernière modification par chimay (Le 24/06/2008, à 10:52)


* Linux est écolo : le code est tout vert
* Un dauphin nage plus vite qu'un nautile nain
* Le but d'un système d'exploitation est d'exploiter l'ordinateur, pas l'utilisateur
* Un ordinateur est composé d'un piano, d'une mangeuse de fromage, d'une mémoire d'éléphant, d'une dalle, d'un lecteur de galette, et d'un moulin, le célèbre moulin de la galette

Hors ligne

#120 Le 24/06/2008, à 14:39

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

chimay a écrit :

Sinon, quelqu'un aurait une idée pour que vim insère automatiquement les balises fermantes
en html ? par exemple, taper "<div>" et obtenir "</div>" à la suite

ino <div> <div></div><esc>5hi

Tu peut même mettre :

autocmd Filetype html ino <div> <div></div><esc>5hi

Mais y'a surement d'autre moyens de le faire \o/

Moi j'ai une autre question : comment on fait dans ce cas pour voir ce qu'on ecris ?


le "lol" est aux boulets ce que le ";" est aux programmeurs
blog | Wiki Fvwm | Essayez le Window Manager From Scatch | Topic WMFS

Hors ligne

#121 Le 24/06/2008, à 19:40

Yannick_LM

Re : Liste de Commandes/Fonctions utile sous VIM

dont le plugin xml, qui est fait pour ça:
http://www.vim.org/scripts/script.php?script_id=1397


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#122 Le 25/06/2008, à 11:04

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

merci à vous deux smile

philpep, j'avais pensé à une solution du genre, mais ça implique de devoir écrire une ligne par balise html

extra le plugin Yannick, c bien ce que je cherchais ... comme je mélange html et php, j'ai fait un :

ln -s xml.vim php.vim

histoire de l'activer aussi pour les .php smile

Dernière modification par chimay (Le 25/06/2008, à 11:05)


* Linux est écolo : le code est tout vert
* Un dauphin nage plus vite qu'un nautile nain
* Le but d'un système d'exploitation est d'exploiter l'ordinateur, pas l'utilisateur
* Un ordinateur est composé d'un piano, d'une mangeuse de fromage, d'une mémoire d'éléphant, d'une dalle, d'un lecteur de galette, et d'un moulin, le célèbre moulin de la galette

Hors ligne

#123 Le 25/06/2008, à 12:19

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

Le principe c'est plutôt que tu aies un fichier ~/.vim/ftplugin/php_tes_def_a_toi.vim qui contienne:

runtime ftplugin/xml.vim

#124 Le 25/06/2008, à 13:13

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

c'est en effet plus propre que le lien, merci smile

Dernière modification par chimay (Le 25/06/2008, à 13:14)


* Linux est écolo : le code est tout vert
* Un dauphin nage plus vite qu'un nautile nain
* Le but d'un système d'exploitation est d'exploiter l'ordinateur, pas l'utilisateur
* Un ordinateur est composé d'un piano, d'une mangeuse de fromage, d'une mémoire d'éléphant, d'une dalle, d'un lecteur de galette, et d'un moulin, le célèbre moulin de la galette

Hors ligne

#125 Le 26/06/2008, à 14:31

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

philpep-tlse a écrit :

Moi j'ai une autre question : comment on fait dans ce cas pour voir ce qu'on ecris ?

heu, vous pouvez répéter la question ? big_smile


* Linux est écolo : le code est tout vert
* Un dauphin nage plus vite qu'un nautile nain
* Le but d'un système d'exploitation est d'exploiter l'ordinateur, pas l'utilisateur
* Un ordinateur est composé d'un piano, d'une mangeuse de fromage, d'une mémoire d'éléphant, d'une dalle, d'un lecteur de galette, et d'un moulin, le célèbre moulin de la galette

Hors ligne