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.

#326 Le 10/06/2009, à 22:25

alex2423

Re : Liste de Commandes/Fonctions utile sous VIM

youpi, j'ai eu un tilt dans ma tete sur les mots clefs à utiliser dans google pour trouver l'option VIM qui permet de mettre à jour automatiquement le contenu qui a été modifié par une application tierces.

La solution est :

:set autoread

Bon après le top, c'est de se créé un ftpplugin log.vim avec de dedans
set autoread

d'activer le fichier log.vim dans vimrc

augroup filetypedetect
au BufNewFile,BufRead *.log     setf log
augroup END

et ainsi le reload automatique se fera uniquement sur les fichiers de log. smile

Hors ligne

#327 Le 11/06/2009, à 15:02

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

si vous vous éditez des fichiers php contenant principalement du html, voici quelques astuces :

* installer le paquet exuberant-ctags
* installer par exemple le plugin taglist (http://www.vim.org/scripts/script.php?script_id=273), si vous en avez d'autres à proposer je suis preneur ^^

ensuite, quelques trucs :

* dans ~/.ctags :

--langmap=html:.htm.html.phtm.phtml.php
--regex-html=/^[[:space:]]*<h.*id="(.*)".*>/\1/i,titre/

La première ligne demande à ctags de considérer les fichiers *.php
comme du html. Par défaut, ctags tague les ancres nommées :

<a name="monNom" ...>

La seconde ligne --regex-html lui demande de taguer aussi les titres de la forme :

<h1 id="monId" ...>

(ou h2, ..., h6)

* dans le vimrc :

" Taglist

nnoremap <silent> <F10> :TlistToggle<cr>

augroup filetypedetect
	" Php ---> html
	au BufEnter,BufRead *.php setlocal filetype=html
augroup END

let Tlist_Ctags_Cmd = 'ctags'
let tlist_html_settings   = 'html;i:titres;a:ancres'

Le BufRead est nécessaire, taglist s'en sert pour déterminer le type de fichier. Même si vous faites un set ft=html à la main, ce n'est pas suffisant, le plugin modifie temporairement lui-même le type de fichier au moyen des autocommandes liées à BufRead.

Reste à lire la doc du plugin ... qq trucs pratiques :

:TlistToggle ---> pour afficher/cacher le panneau latéral contenant les tags (ça vaut la peine de le mapper, F10 dans mon exemple)
:TlistAddFile * ---> pour ajouter tous les fichiers du répertoire
:TlistSessionSave FichierSession --> pour sauver les tags
:TlistSessionLoad FichierSession ---> pour charger les tags

Par défaut, il remplit la liste des tags avec les fichiers que vous éditez. Vos tags sont classés par fichier, puis par type (ancre, titre, ...). Le plus beau est que le tout est foldé (essayez zo, zc, zM, zR dans le panneau pour voir wink)

Le système est indépendant d'un fichier tags présent dans le répertoire, donc ça n'interfère pas avec le système classique des ctrl-], ctrl-T, :tag, :tselect, etc.

Dernière modification par chimay (Le 11/06/2009, à 15:41)


* 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

#328 Le 11/06/2009, à 16:55

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

Autre solution pour éviter de changer le filetype : modifier le comportement des ctags pour le php. A ajouter au .ctags :

--regex-php=/^[[:space:]]*<h.*id="([a-zA-z]*)".*>/\1/i,titre/
--regex-php=/^[[:space:]]*<a.*name="([a-zA-Z]*)".*>/\1/a,ancre/

et au vimrc :

let tlist_php_settings = 'php;i:titres;a:ancres;d:definitions;f:fonctions;v:variables;j:fonctionsJavascript'

c'est plus court et plus propre


* 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

#329 Le 11/06/2009, à 18:19

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

@Luc Hermitte :

concernant ton plugin SIR, il rencontre une erreur :

Erreur détectée en traitant function <SNR>20_SearchInVar :
ligne   12 :
E116: Invalid arguments for function <SNR>20_SearchIn

quand on tente d'éditer un fichier dont le nom contient des accents, apostrophes, etc

je n"utilise pas ces caractères pour mes fichiers, mais certains logiciels francisés semblent en générer

si ça peut aider wink

Dernière modification par chimay (Le 12/06/2009, à 12:32)


* 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

#330 Le 12/06/2009, à 13:17

Chibie

Re : Liste de Commandes/Fonctions utile sous VIM

Petit question pour les spécialistes de vim : j'ai trouvé ceci --> Vim-Shell -- et je souhaitais savoir ce que vous en pensiez ?
Je trouve l'idée intéressante d'avoir un shell intégré dans vim dans la même fenêtre un peu comme sur Geany ou KDevelop. Mais ça me fait bizarre que ce ne soit pas plus répandu comme truc donc je voulais connaître l'avis d'utilisateurs expérimentés de vim.


Si tu as envie de travailler, assieds-toi et attends que ça passe !

Hors ligne

#331 Le 12/06/2009, à 13:32

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

alex2423 a écrit :

3./ Yep, cela m'a décompresser dans vmfiles. Cela me vraiment plaisir si cela peut t'aider. C'est juste un retour d'ascenseur d'avoir mis à disposition tes plugins smile

D'accord. Je croyais que tu étais sous linux. Je soupçonne que l'installation de n'importe quel autre vimball aurait provoqué la même chose chez toi. A tous les coups c'est lié aux priorité dans ton &runtimepath.

alex2423 a écrit :

Je crois que j'ai crié "ohhh victoire" trop vite. Il semblerait que j'ai fais une fausse manip dans mon installation. J'explique pourquoi :

J'ai fais un :SearchInPath :e dict puis <tab> (ou <Entré>)
il n'arrive pas à trouver mon fichier. Il n'y a pas d'autocomplémentation 
C:\WINNT\system32\dict\dicts.txt. Il arrive pas contre à m'autocomplémenter pour me retrouver le repertoire dict...
J'aimerais que l'exploration ne se fait qu'au niveau des parents et ne se fait au niveau des enfants.

J'ai affecté la variable d'environnement "runtimepath" au repertoire Mes documents. Le comportement semble etre identique. Les recherches dans les sous repertoires de mesdocuments ne se font pas.

C'est normal. Je ne vais chercher qu'au premier niveau. Si tu veux descendre, il faut :
- spécifier le répertoire -> dict/d<tab>
- spécifier "lâchement" le répertoire -> */d<tab>
- Travailler sur une autre variable qui vaudrait: substitute($PATH, '\(;\)\|$', '/**', 'g') via :SearchInVar (i.e. il faut rajouter /** (ou \**) à la fin de chaque répertoire)



chimay a écrit :

concernant ton plugin SIR, il rencontre une erreur :

Erreur détectée en traitant function <SNR>20_SearchInVar :
ligne   12 :
E116: Invalid arguments for function <SNR>20_SearchIn

quand on tente d'éditer un fichier dont le nom contient des accents, apostrophes, etc

je n"utilise pas ces caractères pour mes fichiers, mais certains logiciels francisés semblent en générer

Tu appelles :SearchInVar comment ?


Concernant vimshell, pour vim je n'y vois pas un grand intérêt vu qu'il existe screen. Pour gvim cela peut avoir son utilité. Mais à moins de pouvoir y plugger une détection des noms de fichiers qui s'inscrivent (pour avoir un :make plus interactif), l'intérêt me parait un peu limité.

Hors ligne

#332 Le 12/06/2009, à 15:35

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

Luc Hermitte a écrit :
chimay a écrit :

concernant ton plugin SIR, il rencontre une erreur :

Erreur détectée en traitant function <SNR>20_SearchInVar :
ligne   12 :
E116: Invalid arguments for function <SNR>20_SearchIn

quand on tente d'éditer un fichier dont le nom contient des accents, apostrophes, etc

je n"utilise pas ces caractères pour mes fichiers, mais certains logiciels francisés semblent en générer

Tu appelles :SearchInVar comment ?

:SearchInVar &path :e ./nomdufichier

Dernière modification par chimay (Le 12/06/2009, à 19:07)


* 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

#333 Le 16/06/2009, à 10:34

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

un autre plugin sympa pour les bouts de code qui reviennent tout le temps :

http://www.vim.org/scripts/script.php?script_id=2540


* 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

#334 Le 16/06/2009, à 11:03

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Vraiment génial comme plugin de snippet, facile à personnaliser en plus. Adopté big_smile

Hors ligne

#335 Le 20/06/2009, à 07:10

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Une que je viens de découvrir. Ça m'agaçait pas mal de perdre la sélection lors d'action réalisées dessus. Pour récupérer la sélection comme avant, il suffit de faire gv (go visual), et la sélection réapparait.:)

Je voudrais utiliser php -l pour vérifier les fichiers php, alors je pensais qu'un

set makeprg="php -l %"
nmap <F9> :make<CR>

Mais ça ne fonctionne pas, il affiche juste :! 2>&1| tee /tmp/v50677, comme si le makeprg n'était pas pris en compte. Quelqu'un sait pourquoi ?

Hors ligne

#336 Le 20/06/2009, à 10:28

xamaco

Re : Liste de Commandes/Fonctions utile sous VIM

J'ai découvert il y a peu un livre téléchargeable appelé vim recipes :
http://vim.runpaint.org/
Il n'y a pas de version française pour le moment sad
Pour ceux qui lisent l'anglais, je le recommande fortement. Il m'a fait découvrir plein de trucs (Je me débrouille bien en Vim mais je ne suis pas un expert).
Le livre est composé d'une suite de petits problèmes concrets et de solutions. La table des matières au début permet d'aller rapidement aux sujets qui peuvent vous intéresser...

Hors ligne

#337 Le 20/06/2009, à 17:56

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Bon, je suis en train de me mettre à sérieusement personnaliser mon vim, et l'améliorer, il était temps que j'installe des plugins utiles quand même.
J'ai voulu installer omnicppcomplete. Il est installé, ça a même fonctionné un moment, mais maintenant, à chaque fois il me dit :

Complètement selon le type de fichier (Omni) ^O^N^P Motif introuvable

Je suis assez dépité, ça a marché pendant 5 minutes, et après je sais pas ce que j'ai changé pour que ça marche plus... Une idée ?

Sinon, vous connaissez l'extension Project ?
Ça permet de s'organiser un peu dans ces projets, en affichant une liste des fichiers (on peut définir un filtre pour n'afficher que certains fichiers...). On peut ajouter des fichiers facilement, suffit de rajouter leur nom dans la liste.
- \c : commence un nouveau projet.
- espace : agrandit/réduit la fenêtre de projet.

Hors ligne

#338 Le 21/06/2009, à 00:22

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

geenux a écrit :

1- Une que je viens de découvrir. Ça m'agaçait pas mal de perdre la sélection lors d'action réalisées dessus. Pour récupérer la sélection comme avant, il suffit de faire gv (go visual), et la sélection réapparait.:)

2- Je voudrais utiliser php -l pour vérifier les fichiers php, alors je pensais qu'un

set makeprg="php -l %"
nmap <F9> :make<CR>

Mais ça ne fonctionne pas, il affiche juste :! 2>&1| tee /tmp/v50677, comme si le makeprg n'était pas pris en compte. Quelqu'un sait pourquoi ?

1- Oui, un grand classique pour définir des vmap smile

2- Tu t'y prends mal. Les guillemets, c'est avec :let, pas avec set. Cela donnerait

:let &makeprg='php -l %'
" ou
:set makeprg=php\ -l\ %

De plus en général on va plutôt préférer $* dans le makeprg -- avec les vrais makefile.
Et toujours préférer :nnoremap à :nmap

geenux a écrit :

Sinon, vous connaissez l'extension Project ?
Ça permet de s'organiser un peu dans ces projets, en affichant une liste des fichiers (on peut définir un filtre pour n'afficher que certains fichiers...). On peut ajouter des fichiers facilement, suffit de rajouter leur nom dans la liste.
- \c : commence un nouveau projet.
- espace : agrandit/réduit la fenêtre de projet.

Oui, mais je ne m'en sers pas. Je fais tout avec mon script searchinruntime pour rechercher des fichiers à partir des morceaux de leur nom et un autre script que je maintiens également (en fait il en existe 3 versions écrites par autant de personnes différentes) : local_vimrc qui charge des options en fonction du répertoire de travail. Déjà évoqués il y a quelques petites pages.

Pour omnicppcomplete, je n'ai jamais réussi à le faire marcher d'une façon plaisante (compatible avec ma façon de saisir mon code, et qui soit rapide).

Hors ligne

#339 Le 21/06/2009, à 08:34

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Merci.
Finallement, pour la syntaxe php, j'ai trouvé ça qui fonctionne parfaitement :

function! PHPCheckSyntax()
  let winnum =winnr() " get current window number
  silent make -l %
  cw " open the error window if it contains error
  " return to the window with cursor set on the line of the first error (if any)
  execute winnum . "wincmd w"
endfunction

:setl makeprg=php
:set errorformat=%m\ in\ %f\ on\ line\ %l

:noremap <F9> :call PHPCheckSyntax()<CR>

Je vais continuer d'essayer de faire fonctionner omnicppcomplete, à moins qu'il n'y ait un autre plugin équivalent de meilleure qualitée.

Je viens de tester ton plugin searchInRuntime, c'est vrai que c'est pratique. Une combinaison des 2 me conviendra parfaitement je pense.


Au fait, il y a une astuce pour le php pour colorer les requêtes sql et le code html à l'intérieur des chaines de caractères :

let php_sql_query = 1 "Coloration des requetes SQL
let php_htmlInStrings = 1 "Coloration des balises html

Hors ligne

#340 Le 21/06/2009, à 11:32

diml

Re : Liste de Commandes/Fonctions utile sous VIM

salut,

je voudrais savoir comment compiler latex  et visualiser dvi ou pdf  avec gvim car rien ne marche pour moi.

(\ll ne marche pas )

j'utilise gvim sous hardy (ubuntu 8-04)

#341 Le 21/06/2009, à 14:01

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

juste quelque trucs que j'ai remarqué :

* les plugins omnicomplete sont contextuels, par exemple dans un tableau html,
il ne complètera que les tags tr, td, etc
* pour le grep sur plusieurs fichiers, faire un :

:vimgrep /motif/ fichiers

puis :cn / :cp pour aller à l'occurence suivante / précédente, :cl ou :cope pour afficher la liste

vim appelle cette liste la quickfix je crois, à la base c'est prévu pour le cycle de corrections entre deux compilations

vim recipes est pas mal du tout, c'est là que j'ai trouvé les snippets wink

Dernière modification par chimay (Le 21/06/2009, à 14:01)


* 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

#342 Le 22/06/2009, à 09:12

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Je commence à prendre gout à personnaliser vim on dirait. J'aimerais bien apprendre à écrire de vrais plugins, et pas une sorte de simulation de ce que j'aurais fait à la main (genre de macro quoi...). Je n'arrive pas à trouver de bonnes références pour débuter (mis à part le usr_41 de vim). Quelqu'un saurait où trouver ça ?

Sinon il y a quelques plugins sympa présentés ici. Je pense qu'on en a déjà parlé, mais ça fait un résumé comme ça.

Hors ligne

#343 Le 22/06/2009, à 13:09

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

J'avais écris une mini présentation sur le sujet il y a quelques temps.
Depuis sont apparus les autoload plugins.
Dans la section scripting du wiki officiel de vim tu trouveras des conseils utiles.

Sinon, tu trouveras plein d'exemples de plugins (qui je pense sont bien conçus) sur mon site (lh-vim sur googlecode, adresse déjà donnée dans le passé). Leur défaut ? Il font plus de choses que beaucoup d'autres : ils supportent quantité d'options en général.
Tu y trouveras aussi un plugin pour faire des TU pour fonctions en viml.

Hors ligne

#344 Le 30/06/2009, à 23:13

schumrtz

Re : Liste de Commandes/Fonctions utile sous VIM

Bonjour,

j'aurai une question concernant les mappages.
J'ai mappé mon vim de telle sorte que si je fais CTRL+K,
il efface une ligne (histoire d'avoir un comportement "a la linux").
Le probleme, c'est que lorsque je veux acceder au dictionnaire avec
CTRL+X CTRL+K, ca ne marche pas. Y'a t-il une solution pour remapper le
CTRL+K (qui vient avec CTRL+X) sur une autre touche, par exemple CTRL+B?

Merci d'avance!

#345 Le 01/07/2009, à 17:13

chimay

Re : Liste de Commandes/Fonctions utile sous VIM

un truc étrange, je fais :

set formatprg='fmt'

pour pouvoir formatter peinard mes paragraphes avec gq (gqap),
et tout fonctionne bien avec vim, mais avec gvim c'est aléatoire :
suivant l'endroit où le curseur se trouve dans le paragraphe,
ça fonctionne sans heurt ou il me supprime le paragraphe, comme
si rien ne sortait de la commande. Une idée sur la cause du problème ?

Fait un :

vnoremap gq :!fmt<cr>
nnoremap gq vip:!fmt<cr>

pour formatter les sélections et les paragraphes. Etrange tout de même.

Ajout : le comportement de fmt reste erratique sous gvim, cela ressemble
à des problèmes dans la communication gvim <---> fmt

Dernière modification par chimay (Le 05/07/2009, à 15:37)


* 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

#346 Le 06/07/2009, à 00:54

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

Tu devrais trouver le scénario qui donne des résultats différents entre les deux outils. Et noter les résultats obtenus pour les communiquer aux devs -- pense à renseigner les versions exactes des deux outils que tu utilises (vim et gvim pour être sûr qu'il s'agisse bien des mêmes).
-> :h bugs

Hors ligne

#347 Le 26/07/2009, à 12:24

teke

Re : Liste de Commandes/Fonctions utile sous VIM

Bonjour,

Je cherche à faire un enregistrement et à passer une commande en une seule ligne du genre :
:w
:!latex main.tex &&  latex main.tex && dvipdfm main.dvi

De sorte qu'un simple :[touche haut] enregistre le fichier et exécute la commande...

un autre qu j'utilise très souvant est :
:w
:make
Est-il possible de les réunir sur une seule ligne ?

Merci d'avance pour toutes infos

#348 Le 26/07/2009, à 12:52

tshirtman

Re : Liste de Commandes/Fonctions utile sous VIM

à l'origine ce thread sert plus à donner des trucs et ascuces qu'a demander de l'aide mais bon ^^.

Hors ligne

#349 Le 26/07/2009, à 13:10

geenux

Re : Liste de Commandes/Fonctions utile sous VIM

Pour :w et :make:

autocmd QuickFixCmdPre make w

Pour la première question, un simple mapping

noremap <up> :w<cr>:!latex main.tex<cr>:!latex main.tex && dvipdfm main.dvi<cr>

Hors ligne

#350 Le 26/07/2009, à 22:03

Luc Hermitte

Re : Liste de Commandes/Fonctions utile sous VIM

Sinon, des solutions comme vimlatex intègrent déjà tout cela.

Hors ligne