#101 Le 31/05/2008, à 16:11
- philpep-tlse
Re : Liste de Commandes/Fonctions utile sous VIM
ah zut j'avais pas vu cette question, j'avais les réponses
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çonctrl-w n+ pour augmenter un split horizontale
ctrl-w n- pour le diminuerctrl-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.
Yeah; merci
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
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
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
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 )
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 .
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
#109 Le 06/06/2008, à 14:42
- tshirtman
Re : Liste de Commandes/Fonctions utile sous VIM
Oh merci!
Hors ligne
#110 Le 06/06/2008, à 15:11
- scholi
Re : Liste de Commandes/Fonctions utile sous VIM
(plus souvent !!date en fait )
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 .
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
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")
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 ) , 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
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 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
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
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
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
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
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 ?
* 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