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.

#26 Le 21/09/2007, à 11:56

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

ah bizzare... normalement il garde le tampon. Le problème vient peut être du faite que tu effaces un caractère ou un espace avant de coller (ce qui supprime le tampon). La solution reste d'utiliser les registres. Tu fais

"ay

("a signifie qu'il va copier le texte dans le registre a et non dans le tampon par défaut, "b, "c, etc. fonctionne aussi très bien)

pour coller:

"ap

EDIT: oui c'est très bien de signaler [CTRL]+P, c'est une commande géniale! Je ne connaissais pas [CTRL]-N. quelle est la différence entre les deux?

Dernière modification par scholi (Le 21/09/2007, à 11:59)


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

Hors ligne

#27 Le 21/09/2007, à 12:48

CasseTaTele

Re : Liste de Commandes/Fonctions utile sous VIM

oui c'est bizarre,
j'ai vu que tu avais mis les commandes "ay et "ap mais j'aurais préféré pouvoir faire un copier collé avec une seule touche...

L'appuie sur [Ctrl]+N ou [Ctrl]+P affiche une liste de choix possible pour compléter le mot avant le curseur. [Ctrl]+N permet de sélectionner le mot suivant dans cette liste (N=next) et [Ctrl]+P le mot précédent (P=previous)

J'avais ouvert un topic aussi pour essayer de comprendre comment transformer Vim en véritable IDE pour la programmation: http://forum.ubuntu-fr.org/viewtopic.php?id=145713
j'ai encore du mal avec gdb mais sinon les tags (pour aller directement à la définition d'une fonction) et l'auto-complétion marche bien.

Hors ligne

#28 Le 21/09/2007, à 15:34

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

pour ton problème de copier-coller, utilise un mappage (à mettre dans le .vimrc):

vmap <F11> "ay
map <F12> "ap

comme ça plus besoin de taper des long truc. Un F11 pour copier et un F12 pour coller. Tu peux bien sûr changer le F11, F12 en ce que tu veux...

Dernière modification par scholi (Le 21/09/2007, à 15:36)


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

Hors ligne

#29 Le 24/09/2007, à 09:01

CasseTaTele

Re : Liste de Commandes/Fonctions utile sous VIM

ça marche pas !
"ay et "ap fonctionnent sous gvim
mais le mappage ne marche pas, voila mon .gvimrc

" Un exemple de fichier gvimrc.
" Ces commandes sont exécutées lors du lancement de l'interface graphique.
"
" Mainteneur :  Bram Moolenaar <Bram@vim.org>
" Dernières modifications : 2 Fév 1999
"
" Pour l'utiliser, copiez le dans
"      pour Unix et OS/2 :  ~/.gvimrc
"             pour Amiga :  s:.gvimrc
"  pour MS-DOS and Win32 :  $VIM\_gvimrc

" Passe les commandes externes par un tuyau au lieu d'un pseudo-tty
"set noguipty

" Active la fonte X11 à utiliser
" set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1

" Rend la ligne de commande de 2 lignes plus grande
set ch=2

" Permet le shift-insert fonctionnel comme dans les Xterm
map <S-Insert> <MiddleMouse>
map! <S-Insert> <MiddleMouse>

vmap <F2> "ay
map <F3> "ap

set ai " toujours utiliser l'autoindentation
set tabstop=4 "tabulations de 4 caractères
set nu
set bs=2 "allows backspacing over line breaks, autoindents, and the start of insert

set showmatch " mettre en surbrillance la parenthèse (etc.) correspondante
set showcmd " Montrer les commandes en cours dans la ligne de statut
set ignorecase " Ignorer la casse par défaut dans les recherches
set incsearch  " Commencer la recherche immédiatement, sans attendre la fin de l'entrée du pattern

" Ne fait ceci que pour Vim de version 5.0 et ultérieures.
if version >= 500

  " J'aime avoir des chaînes éclairées dans les commentaires C
  let c_comment_strings=1

  " Active la coloration syntaxique.
  syntax on

  " Active la coloration de la chaîne recherchée.
  set hlsearch

  " Pour la version Win32, on a "K" qui cherche le keyword dans un fichier d'aide
  "if has("win32")
  "  let winhelpfile='windows.hlp'
  "  map K :execute "!start winhlp32 -k <cword> " . winhelpfile <CR>
  "endif

  " Cache le pointeur de souris lorsque l'on tape
  set mousehide

  " Utilise des couleurs sympathiques
  " Le fond pour le texte normal est en gris clair
  " Le texte sous la dernière ligne est en gris sombre
  " Le curseur est gris
  " Les constantes ne sont pas soulignées mais ont un fond légèrement plus clair
  "highlight Normal guibg=grey
  "highlight Cursor guibg=Green guifg=NONE
  "highlight NonText guibg=grey80
  "highlight Constant gui=NONE guibg=grey
  "highlight Special gui=NONE guibg=grey

  colors torte

endif



syntax enable			" enable syntax highlighting
"set previewheight=12		" set gdb window initial height
"run macros/gdb_mappings.vim	" source key mappings listed in this document
"set asm=0				" don't show any assembly stuff
"set gdbprg=gdb_invocation		" set GDB invocation string (default 'gdb')

Hors ligne

#30 Le 24/09/2007, à 21:36

itsmokes

Re : Liste de Commandes/Fonctions utile sous VIM

Intéressant ce .gvimrc. Du coup mon .vimrc est moins dépouillé smile

Hors ligne

#31 Le 25/09/2007, à 08:44

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

vmap signifie que tu dois l'utiliser en mode visuel, sinon utilises map au lieu de vmap. Je testerai ce soir...


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

Hors ligne

#32 Le 25/09/2007, à 09:16

CasseTaTele

Re : Liste de Commandes/Fonctions utile sous VIM

j'ai essayé les deux ça change rien...

Hors ligne

#33 Le 25/09/2007, à 14:13

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

ça marche très bien chez moi! Il faut juste être en mode normal pour coller et non en insert mode. Sinon rajoute un <esc> dans le mappage pour que cela fonctionne en insert mode

:map <F12> <esc>"api

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

Hors ligne

#34 Le 25/09/2007, à 14:20

CasseTaTele

Re : Liste de Commandes/Fonctions utile sous VIM

ça marche pas...
j'ai essayé de mettre F3 et F4 pour copier/coller mais à chaque fois que j'appuie dessus, en mode commande ça bip et en mode insert ça marque <F3> et <F4>...

Hors ligne

#35 Le 25/09/2007, à 18:36

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

j'ai testé sous windows et ça marche. Je testerai sous Linux ce soir


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

Hors ligne

#36 Le 26/09/2007, à 19:00

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

Je confirme, sous Linux ça marche nickel. Petite précision et récapitulation tout de même:

:map <F11> "ay
:map <F12> "ap
:imap <F12> <Esc>"apa

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

Hors ligne

#37 Le 27/09/2007, à 08:58

CasseTaTele

Re : Liste de Commandes/Fonctions utile sous VIM

chez moi ça ne marche pas...
tu peux poster ton fichier ~/.gvimrc stp ?
j'utilise le même fichier .gvimrc chez moi (ubuntu feisty) et au boulot (fedora 6) et j'ai le même problème...donc ça doit venir de là...

Hors ligne

#38 Le 27/09/2007, à 09:52

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

je n'ai pas de fichier .gvimrc, seulement un .vimrc. Ton problème vient peut-être de là...

syntax on
set laststatus=2
set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'\ \ %{strftime('%H:%M')}
hi User1 term=inverse,bold cterm=inverse,bold ctermsyntax on
ab HTML <!DOCTYPE<space>HTML<space>PUBLIC<space>"-//W3C//DTD<space>HTML<space>4.01//EN"<CR>"http://www.w3.org/TR/html4/strict.dtd"><CR><html><CR><CR><head><CR><tab><title></title><CR><tab><meta<space>http-equiv="Content-Type"<space>content="text/html;<space>charset=utf-8"><CR></head><CR><body><CR><CR></body><CR></html><esc>2kAfg=red

Dernière modification par scholi (Le 27/09/2007, à 09:54)


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

Hors ligne

#39 Le 27/09/2007, à 12:40

CasseTaTele

Re : Liste de Commandes/Fonctions utile sous VIM

euhh, ça me parait bizzare ton vimrc... :
<!DOCTYPE<space>HTML<space>PUBLIC<space>"-//W3C//DTD<space>HTML<space>4.01//EN"<CR>"http://www.w3.org/TR/html4/strict.dtd"><CR><html><CR><CR><head><CR><tab><title></title><CR><tab><meta<space>http-equiv="Content-Type"<space>content="text/html;<space>charset=utf-8"><CR></head><CR><body><CR><CR></body><CR></html><esc>2kAfg=red
c'est pas de l'html plutot ?
t'es sur que tu as bien copié ton vimrc?

Dernière modification par CasseTaTele (Le 27/09/2007, à 12:40)

Hors ligne

#40 Le 27/09/2007, à 15:48

CasseTaTele

Re : Liste de Commandes/Fonctions utile sous VIM

scholi a écrit :

je n'ai pas de fichier .gvimrc, seulement un .vimrc. Ton problème vient peut-être de là...

Effectivement ça venait de là !
j'ai simplement renomé mon .gvimrc en .vimrc et tout marche nickel !!!!
merci beaucoup !! big_smile

Hors ligne

#41 Le 27/09/2007, à 16:04

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

nickel! smile

Sinon c'est pas vraiment du HTML, c'est juste une abbréviation. Si j'écris HTML, cela se transforme en l'en-tête d'un fichier HTML. C'est pratique si tu écris souvent des fichiers HTML


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

Hors ligne

#42 Le 27/09/2007, à 16:20

jackosking

Re : Liste de Commandes/Fonctions utile sous VIM

Oui enfin il y a bien plus pratique. Quand j'étais geek j'avais fait en sorte que lorsque je creeai un fichier .h il me mettait le#ifdef #def et #endif directement + l'entete de doc.
Pour les .c ca mettait le #include.
etc.

Mais tout ca ct le bon vieux temps.

Hors ligne

#43 Le 28/09/2007, à 17:31

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

ouais sauf que si tu ouvres un vim vierge, tapes ton document et seulement après enregistre en .c, cela ne marche pas...


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

Hors ligne

#44 Le 28/09/2007, à 21:39

gdott9

Re : Liste de Commandes/Fonctions utile sous VIM

jackosking a écrit :

Oui enfin il y a bien plus pratique. Quand j'étais geek j'avais fait en sorte que lorsque je creeai un fichier .h il me mettait le#ifdef #def et #endif directement + l'entete de doc.
Pour les .c ca mettait le #include.
etc.

Mais tout ca ct le bon vieux temps.

Et t'avais fait ca comment ?
J'ai cherché un peu sur la doc de vim, j'ai pas encore trouvé...

Donc si tu pouvais poster ton .vimrc ou au moins un exemple please !!
Ca me serait très utile !!

Hors ligne

#45 Le 28/09/2007, à 22:16

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

~/.vim/templates/new.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
	<title></title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

</body>
</html>

bon à vous de voir quoi mettre dedans

~/.vim/filetype.vim

function NewHTMLfile()
	0r ~/.vim/templates/new.html
	exec "normal 9j"
	start
endfunction

au! BufNewFile *.html call NewHTMLfile()

PS: La ligne exec "normal 9j" permet de placer le curseur sur la bonne line (9j) (dans cette exemple le curseur sera placé juste après la balise <body>)

Dernière modification par scholi (Le 28/09/2007, à 23:13)


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

Hors ligne

#46 Le 28/09/2007, à 23:56

gdott9

Re : Liste de Commandes/Fonctions utile sous VIM

Merci beaucoup !!:D
Ca va me faciliter grandement la vie...

Hors ligne

#47 Le 29/09/2007, à 19:30

neub

Re : Liste de Commandes/Fonctions utile sous VIM

Franchement vous etes tous des geeks .... mais c'est vraiment cool tout ce que vous pouvez faire avec vim ...

Pour ce qui font du matlab ou tout autre type de script, voila comment commenté ou decommenté...

PS: Si qqun pouvais m'aider a ecrire ca selon le type de script : pour bash (avec #), c avec "//" ca serait cool

map <F12> :s/^/%/
map <F11> :s/^%//

www.neub.co.nr
HP DV5 1073ez (Core 2 Duo T9400 2x2.53Ghz | nVidia GeForce 9600M GT 512MB)

Hors ligne

#48 Le 30/09/2007, à 10:58

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

Il suffit de faire des ftplugin (filetype plugin). Et tu entres dans le plugin pour le c qu'il ajoute des //, pour les scriptes des # pour LaTeX des % etc...

Donc il suffit d'écrire simplement un fichier ~/.vim/ftplugin/python.vim et d'y insérer le code que tu veux. Celui-ci serra chargé automatiquement au démarrage de vim si le type de fichier correspond (donc ici un fichier python)

Ce qui donne qqch comme ça:

~/.vim/ftplugin/python.py

function! CaUComment()
	s/^#/##/e
	s/^\([^#]\)/#\1/e
	s/^##//e
endfunction

nn <F12> :call CaUComment()<CR>
ino <F12> :call CaUComment()<CR>

PS: Si tu appuyes sur F12 alors que la ligne n'est pas commentée, vim la commente et si elle l'est, vim la décommente.

Il ne te reste plus qu'à faire des copie de python.vim en c.vim, etc... et d'y modifier les  # par des autres symboles (attention aux caractères spéciaux)

Dernière modification par scholi (Le 30/09/2007, à 11:24)


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

Hors ligne

#49 Le 24/10/2007, à 18:26

scholi

Re : Liste de Commandes/Fonctions utile sous VIM

ATTENTION, sous gutsy, le plugin vim-latex ne fonctionne plus par défault. Pour le rendre fonctionnel, rajoutez dans son .vimrc la ligne suivante:

set runtimepath+=/usr/share/vim/addons

et le tout devrait fonctionner!


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

Hors ligne

#50 Le 14/02/2008, à 13:11

Yannick_LM

Re : Liste de Commandes/Fonctions utile sous VIM

Bon, allez à  moi. cool

Un truc qui sert à  rien, pour commencer : l'encodage en ROT13. On voit ça de temps en temps. Pour encoder, c'est simplement g?
(je rappelle que, par définition, c'est la même pour décoder)

Vous avez des dizaines de façons de travailler avec plusieurs buffers (le texte que vous tapez avant qu'il soit écrit sur le disque) en même temps.
Ma préférée : fenêres + onglets. (sachant que vous pouvez mettre plusieurs fenêres dans vos onglets)
:sp pour créer une spération horizontale, :vs pour une séparation verticale, :tabnew, :tabnext; :tabprevious pour naviguer, et des commandes en CTRL+W pour naviguer entre les fenêres :
CTRL+W W pour changer le focus. Faites :help CTRL+V CTRL+W pour les avoir toutes


Deux modes de complétions excellents :
CTRL+X CTRL+F (noms de fichiers)
CTRL+X CTRL+L (lignes)

Allez faire un tour sur vim.org récupérer le script supertab, aussi smile

Pour copier/coller, une autre technique (avec vim dans un terminal)
Vous avez des problèmes quand vous collez du code, parce que vim refait une mise en forme automatique. Pour ça, vous avez l'option paste, mais elle est incompatible avec d'autres options.
Le plus simple : définir une touche pour activer/désactiver l'option paste:
:set pastetoggle=€ , par exemple

Pour copier, je préfère faire un: set mouse=c, et ça se passe alors comme n'importe quelle autre appli dans un terminal. (clique milieu, clique droit ou shif+CTRL+C)


Affichage de l'historique des 5 dernière commandes : « q: » (et pas :q cool )

Affichage des complétions possibles quand on appuie sur tab en ligne de commande : echo "set wildmenu" >> ~/.vimrc

Une autre pour la route : appuyer sur . pour refaire la dernière commande. (très pratique quand c'est un truc du genre Jgqq)

Vous pouvez aussi utiliser des marques dans votre document. :help marks pour plus d'infos.
Je m'en sers pas souvent, mais le racourci '' (deux apostrophes) est sympa à  connaître : il vous ramène à  la positition que vous aviez avant de vous déplacer.

A part ça, j'assure un cours sur les bases de Vim vendredi prochain 20h sur  #u-classroom. N'hésitez pas à  passer sur le chan si ça vous amuse d'en parler.
Y aura un cours sur "utilisation avancée de Vim après, ça me plairait de voir si j'oublie pas quelques astuces importantes cool Vous pouvez m'envoyer un mail si ça vous amuse de regarder les cours que j'ai prévus (ils sont déjà  rédigés), et de m'apporter vos critiques constructives ...



EDIT : deux trois trucs que j'avais oublié:

Recherche insensible à  la casse lorsque qu'aucune majuscule n'est utilisée.
Les deux options suivantes sont nécessaires.
set ignorecase
set smartcase

" Comportement amélioré de la touche J :
set nojoinspaces

Par défaut, si vous faites un "Join" sur une ligne qui se finit par un point, vous vous retrouvez avec deux espaces au lieu d'un.

set smarttab
Pour avoir une touche tab qui fait le nombre d'espaces que vous avez défini avec shiftwidth.
et
set expandtab
Pour avoir les tabulations convertis en espaces. Indispensable pour le Python et les Makefiles.

Un mapping que j'aime bien:

" 'cd' vers le chemin de la fenêre en cours d'édition.
map ,cd :cd %:p:h<CR>

Et aussi :
:r! sudo vol_id -u /dev/sda3 dans un /det/fstab, pour insérer le résultat de la commande.

Dernière modification par Yannick_LM (Le 02/03/2008, à 15:29)


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

Hors ligne