Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#76 Le 08/04/2008, à 08:32

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Je viens de découvrir un truc: en mode insertion C-w supprime le mot précédent.
pratique ton astuce philpep-tlse

Hors ligne

#77 Le 08/04/2008, à 10:32

Yannick_LM

Re : Liste de Commandes/Fonctions utile sous VIM

Juste pour dire qu'il y a un script qui s'appelle supertab, qui est très sympa à l'usage :
http://vim.sourceforge.net/scripts/script.php?script_id=182

Vous pouvez ainsi faire toutes vos complétions avec la touche tabulation.

Et sinon, dans le lien de philpep-tlse, l'utilisation de ctags est mentionnée, mais pas celle de exuberant-ctags.
Si vous installez ce paquet, il y a peu de langages qui ne seront plus reconnus cool

Asm Asp Awk Basic BETA C C++ C# Cobol Eiffel Erlang Fortran HTML Java JavaScript Lisp Lua Make Pascal Perl PHP Python REXX Ruby Scheme Sh SLang SML SQL Tcl Vera Verilog Vim YACC

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

Hors ligne

#78 Le 08/04/2008, à 14:54

Spalax

Re : Liste de Commandes/Fonctions utile sous VIM

Malheureusement, Ada fait partie des peu de langages qui ne sont pas reconnus...

Hors ligne

#79 Le 08/04/2008, à 18:29

Yannick_LM

Re : Liste de Commandes/Fonctions utile sous VIM

Transfuge désormais sous Gentoo

Gentooïste et adaïste : tu cumules tongue

EDIT : sinon, un petit tour sur vim.org et tu tombes sur  ada.vim

Dernière modification par Yannick_LM (Le 08/04/2008, à 18:32)


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

Hors ligne

#80 Le 08/04/2008, à 19:06

Spalax

Re : Liste de Commandes/Fonctions utile sous VIM

Ce plugin a l'air intéressant ; il faudra que je l'essaye.
Merci

Hors ligne

#81 Le 10/04/2008, à 15:34

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

Voici un lien qui montre deux scriptes vim totalement inutile mais assez impressionnant: http://www.linusakesson.net/programming/vim/index.php


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

Hors ligne

#82 Le 10/04/2008, à 16:00

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

moi j'utilise ctrl-y en mode insertion depuis que je l'ai découvert, ça copie le character à la même place à la ligne au dessus, si on a deux lignes quasi identiques (ça arrivent souvent en prog) c'est une alternative interressante à <echap> yypI et remplacer.

Dernière modification par tshirtman (Le 10/04/2008, à 16:00)

Hors ligne

#83 Le 02/05/2008, à 19:55

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

Scandale !! J'ai du aller en 4ème page de "Trucs et astuces" pour trouver ce topic...

Y'avais même un gars qui parlait d'emacs (Pour ceux qui ne connaissent pas vous ratez rien) avant nous !

tongue

Bref, 2 astuces sympathiques que j'ai apprises sur IRC :

1) Améliorer l'affichage de man
Vous avez l'habitude de faire un K pour visualiser le man de la commande qui se trouve sous le curseur. Mais si la commande n'y est pas encore, ou si vous voulez avoir un beau affichage (split de la fenêtre) pour voir le man d'une commande :
Dans ~/.vimrc :

runtime ftplugin/man.vim

Pour visualiser le man de vim :

:Man vim

2) La sélection en tableau :

Genre vous avez un texte comme ça :

Style XTerm		MiniIcon 22x22/xterm.png
Style aterm		MiniIcon 22x22/aterm.png
Style Eterm		MiniIcon 22x22/Eterm.png
Style URxvt		MiniIcon 22x22/urxvt.png

Malheur ! Il faut mettre img/ avant 22x22 !
Dans ce cas on ce place au premier 2; ctrl + v, avec le curseur on sélectionne tout ce qu'on a besoin de changer (toute la colonne qui commence par 2); enfin un petit I (majuscule) pour se mettre en insertion.
Ensuite on écrit img/, <echap> et hop le tour est joué tongue

Dernière modification par philpep-tlse (Le 02/05/2008, à 20:18)


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

Hors ligne

#84 Le 02/05/2008, à 22:53

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

diantre, je connaissait ce mode de sélection mais seulement pour copier coller, j'avais bien tenter i (minuscule) pour insérer mais ça marche pas... merci pour le truc smile

Hors ligne

#85 Le 03/05/2008, à 07:56

abetsic

Re : Liste de Commandes/Fonctions utile sous VIM

Pour rajouter le texte à la fin du bloc de selection au lieu du début, il faut taper sur "A" au lieur de "I" (utile pour rajouter à la fin d'une ligne).

Hors ligne

#87 Le 06/05/2008, à 17:01

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

Hop, je ne sais pas si quelqu'un l'a déjà dit, mais on peut exécuter des morceau de programmes directement dans vim et récupérer la sortie dans son fichier.

Par exemple (Pas très utile certes lol )
Un programme C tout con avec un morceau de script bash dedans :

#include <stdio.h>

int main(void)
{
        for i in 0 1 2 3 4 5 6 7 8 9; do
        echo -e "printf(\"$i x 12 = $(($i*12))\");"
        done
        return 0;
}

On se met sur le f de for et on se place en mode visuel avec v.
On sélectionne tout notre morceau de code bash (jusqu'a done inclu)

Ensuite on tape : normalement '<, '> s'écrit tout seul donc on a juste à rajouter !bash.

Finalement la commande est :

:'<, '>!bash

Et voilà le travail :


#include <stdio.h>

int main(void)
{
printf("0 x 12 = 0");
printf("1 x 12 = 12");
printf("2 x 12 = 24");
printf("3 x 12 = 36");
printf("4 x 12 = 48");
printf("5 x 12 = 60");
printf("6 x 12 = 72");
printf("7 x 12 = 84");
printf("8 x 12 = 96");
printf("9 x 12 = 108");
        return 0;
}

Dans le même genre si vous avez un Makefile, vous pouvez directement compiler avec :!make

Dernière modification par philpep-tlse (Le 06/05/2008, à 17:12)


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

Hors ligne

#88 Le 06/05/2008, à 17:32

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

Rigolo.

Par contre, pour :!make, mieux vaut l'oublier et passer à la vitesse supérieure: :make (:h quickfix)

#89 Le 08/05/2008, à 00:19

Yannick_LM

Re : Liste de Commandes/Fonctions utile sous VIM

@Luc Hermitte :
gros +1

Dans le même genre, préférez :grep et :sort à :!grep et :!sort.


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

Hors ligne

#90 Le 08/05/2008, à 00:57

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

moi je me suis fait des raccourcis pour commenter/décommenter du code... par contre c'est dépendant du type de langage

map <F5> :s/^/#/ <CR>:let @/ = ""<CR>
map <F6> :s/^#// <CR>:let @/ = ""<CR>

on peut faire F5 ou F6 sur une ligne ou sur tout une sélection de code... là ça met des # en début de ligne, ce qui marche comme commentaire en python et en bash entre autre...

Dernière modification par tshirtman (Le 08/05/2008, à 00:58)

Hors ligne

#91 Le 08/05/2008, à 11:14

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

J'ai juste une touche pour cela : <m-x>, qui bascule les commentaires grâce à EnhancedCommentify -- et <localleader>0 qui entoure d'un #if 0/#endif.
Il existe un autre plugin qui sait faire cela: NerdCommenter. Et quantité de tips sur vim.wikia que l'on n'a pas encore fusionnés.
Les plugins ont l'avantage de supporter quantité de langages différents, d'être customisables, et de ne parasiter aucun historique, ni aucun registre.
(mais j'ai l'impression que cela a déjà été discuté)

#92 Le 08/05/2008, à 15:20

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

ça a déja été discuté oui, mais j'ai la faiblesse d'aimer bricoler ma solution plutot que d'utiliser ce qu'a fait un autre, quand je peut... bien sur je ne vais pas reprogrammer mon editeur de texte, mais si deux lignes conf font ce que je veux, installer un plugin je trouve que c'est moins propre... mais en effet c'est pas super lourd niveau argumentaire, la vérité c'est juste que je préfere wink (et j'aime pas les .vimrc de 500 lignes accompagnés d'un dossier pleins d'extensions, ça double le temps de démarrage de vim et quand on a un problème vas trouver d'ou ça vient...)

bref et puis je suis content je l'ai un peu amélioré tout à l'heure (oui ça pourris toujours l'historique de la dernière recherche wink) maintenant ça comment pas en début de ligne (charactère 0) mais juste avant le texte, ce qui fait quand même plus jolis...

map <F5> :s/\(^ *\)/\1#/ <CR>:let @/ = ""<CR>
map <F6> :s/\(^ *\)#/\1/ <CR>:let @/ = ""<CR>

après si je veux supporter d'autres langages il faudras que je duplique ça suivant les types de fichiers... ça pourrais devenir lourd mais je sais comment faire.. la bonne nouvelle c'est que je n'en ais pas besoin wink

Hors ligne

#93 Le 08/05/2008, à 16:04

Beta Pictoris

Re : Liste de Commandes/Fonctions utile sous VIM

geenux a écrit :

Je viens de découvrir un truc: en mode insertion C-w supprime le mot précédent.
pratique ton astuce philpep-tlse

Toujours en mode insertion, toute commande qui suit un '<c-o>' sera exécutée en mode normal.

Par exemple, si on veut coller du texte en mode insertion, on peut faire un '<c-o>P' au lieu d'un '<esc>pa'

Hors ligne

#94 Le 30/05/2008, à 23:25

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

Une autre astuce : les commandes automatiques (je connais pas le vrai nom).

Bref, par exemple si vous avez ça dans votre ~/.vimrc

ino _main int main (int argc, char *argv[])<CR>{<CR>return 0;<CR>}<esc>2ko

si en mode insertion vous tapez _main ça va exécuter l' "alias" _main (je sais vraiment pas comment ça s'appelle tongue )

C'est à dire :
ecrire "int main (int argc, char *argv[])"
saut de ligne <CR>
ecrire "{"
saut de ligne <CR>
ecrire "return 0;"
saut de ligne <CR>
ecrire "}"
quitter le mode insertion <esc>
remonter de 2 ligne 2k
inserer une ligne en dessous : o

Finalement ça écris ça :

int main (int argc, char *argv[])
{

        return 0;
}

et place le curseur juste au dessus de return 0 \o/

Vraiment pratique wink

Dernière modification par philpep-tlse (Le 30/05/2008, à 23:48)


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

Hors ligne

#95 Le 31/05/2008, à 00:53

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

ah c'est comme "ab" mais en plus souple, (ab ça fait juste un remplacement auto de texte, je m'en suis fait un sur GPL_LICENSE ça remplace par le gros bloc de gpl dès que j'ai finis de le tapper.

Mais ça ça permet aussi de faire des opérations de pré et post traitement ce qui peut être interressant.

sinon vu que mon écran est petit (eeepc) je me suis mis a chercher comment me passer des split.. (deux ça vas mais plus....)

la solution est simple est élégante... les onglets, pour ceux qui ne connaissent pas, il suffit de tapper

:tabnew nom_du_fichier

pour l'ouvrir dans un onglet, on peut toujours utiliser la souris pour passer d'un onglet à l'autre, mais le raccourcis à connaitre c'est gt (passe à l'onglet suivant) et bien sur son pendant gT (onglet précédant).

smile

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

Hors ligne

#96 Le 31/05/2008, à 01:57

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

Merci pour le gt et le gT, je trouvait que :tabnext et :tabprevious c'était long a faire big_smile

Sinon, vous pouvez effectuer des action suivant le type de fichier...

Par exemple pour avoir cindent seulement sur les fichier c :

~/.vimrc

autocmd Filetype c set cindent

où même appliquer une fonction :

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 ()

J'ai l'impression que les fonction doivent commencer par une majuscule, y'a une raison ?

Une autre question, pour coller du texte après le curseur c'est p, mais comment coller avant le curseur ?


Autre astuce :
Pour couper l'écran en 2 horizontalement :split

Mais comment passer d'un écran à l'autre ?
Comment couper verticalement ?
tongue

Dernière modification par philpep-tlse (Le 31/05/2008, à 02:06)


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

Hors ligne

#97 Le 31/05/2008, à 06:50

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

tshirtman a écrit :

moi je me suis fait des raccourcis pour commenter/décommenter du code... par contre c'est dépendant du type de langage

map <F5> :s/^/#/ <CR>:let @/ = ""<CR>
map <F6> :s/^#// <CR>:let @/ = ""<CR>

on peut faire F5 ou F6 sur une ligne ou sur tout une sélection de code... là ça met des # en début de ligne, ce qui marche comme commentaire en python et en bash entre autre...

On a déjà parlé de ça en début de poste avec une seule touche pour commenter/décommenter:
http://forum.ubuntu-fr.org/viewtopic.ph … 7#p1203987

Une autre astuce : les commandes automatiques (je connais pas le vrai nom).

Ouais le plus simple reste tout de même les templates qui ont déjà été discuté dans ce post: http://forum.ubuntu-fr.org/viewtopic.ph … 7#p1201377

EDIT: Enfin c'est vrai que pour le main les templates ne servent à rien, car on en a qu'un par projet et non 14. Donc en effet ta méthode est meilleur pour le main, par contre je vous conseil d'utiliser les templates pour les .h wink

Dernière modification par scholi (Le 31/05/2008, à 06:55)


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

Hors ligne

#98 Le 31/05/2008, à 07:30

philpep-tlse

Re : Liste de Commandes/Fonctions utile sous VIM

philpep-tlse a écrit :

Pour couper l'écran en 2 horizontalement :split

Mais comment passer d'un écran à l'autre ?
Comment couper verticalement ?
tongue

Je me repond moi même :

Couper horizontalement :sp
Couper verticalement :vs

Et passer d'un ecran a l'autre : ctrl-w w

Merci à yannick_lm dans son vieux post tongue

Sympa les templates, je connaissais pas smile Pareil pour les ftplugin \o/


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

Hors ligne

#99 Le 31/05/2008, à 10:27

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

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

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

Hors ligne

#100 Le 31/05/2008, à 13:28

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

ça c'est une cool info. Je vais du coups utiliser plus souvent les splits au lieu des tabs...


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

Hors ligne

Haut de page ↑