*if_ruby.txt*   Pour Vim version 6.2.  Dernière modification : 25 oct 2001


		  MANUEL de RÉFÉRENCE VIM - par Shugo Maeda


L'interface Ruby de Vim					*ruby* *Ruby*

1. Commandes			|ruby-commands|
2. Le module VIM		|ruby-vim|
3. Objet VIM::Buffer		|ruby-buffer|
4. Objet VIM::Window		|ruby-window|
5. Variables globales		|ruby-globals|

					    *E266* *E267* *E268* *E269*
					    *E270* *E271* *E272* *E273*
L'interface Ruby ne fonctionne que si Vim a été compilé avec la fonctionnalité
|+ruby|.

Pour MS-Windows, vous pouvez trouver la bibliothèque Ruby sur :

	http://www.dm4lab.to/~usa/ruby_en.html 

{absent de Vim}
			
==============================================================================
1. Commandes						*ruby-commands*

							*:ruby* *:rub*
:rub[y] {cmd}		Exécute la commmande Ruby {cmd}.

:rub[y] << {motifdefin}
{script}
{motifdefin}
			Exécute le script Ruby {script}.
			{motifdefin} ne doit PAS être précédé par un
			quelconque espace blanc. Si {motifdefin} est omis, le
			motif par défaut est un point '.', comme pour les
			commandes |:append| et |:insert| commands. Cette forme
			de la commande |:ruby| est pratique pour inclure du
			code Ruby dans les scripts Vim.
			NOTE : cette commande ne fonctionne pas si la
			fonctionnalité Ruby n'a pas été compilée. Pour éviter
			des erreurs, voir |script-here|.

Exemple de script Vim :

	function! PierreRouge()
	  ruby << EOF
	  class Grenat
		  def initialize(s)
			  @buffer = VIM::Buffer.current
			  vimputs(s)
		  end
		  def vimputs(s)
			  @buffer.append(@buffer.count, s)
		  end
	  end
	  pierre = Grenat.new("magnifique")
	EOF
	endfunction

						*:rubydo* *:rubyd* *E265*
:[plage]rubyd[o] {cmd}	Évalue la commande Ruby {cmd} pour chaque ligne de
			[plage], avec $_ fixé au tour à tour au texte de
			chauqe ligne, et sans <EOL> final. Fixer $_ va changer
			le texte, mais notez qu'il est impossible d'ajouter ou
			de supprimer des lignes en utilisant cette commande.
			La valeur par défaut de [plage] est la totalité du
			fichier : "1,$".

							*:rubyfile* *:rubyf*
:rubyf[ile] {fichier}	Exécute le script Ruby contenu dans {fichier}. L'effet
			est identique à ":ruby load 'fichier'", mais permet le
			complètement du nom de fichier.

L'exécution de commandes Ruby est impossible dans le bac à sable |sandbox|.

==============================================================================
2. Le module VIM					*ruby-vim*

Le code Ruby accède à toutes les fonctionnalités de vim via le module "VIM".

Résumé :
	print "Hello"			# affiche un message
	VIM.command(cmd)		# exécute une commande Ex
	num = VIM::Window.count		# récupère le numéro d'une fenêtre
	w = VIM::Window[n]		# récupère la fenêtre numérotée "n"
	cw = VIM::Window.current	# récupère la fenêtre courante
	num = VIM::Buffer.count		# récupère le nombre de tampons
	b = VIM::Buffer[n]		# récupère le tampon numéroté "n"
	cb = VIM::Buffer.current	# récupère le tampon courant
	w.height = lines		# fixe la hauteur de la fenêtre
	w.cursor = [row, col]		# fixe la position du curseur
	pos = w.cursor			# récupère un tableau [ligne, colonne]
	name = b.name			# récupère le nom de fichier du tampon
	line = b[n]			# récupère une ligne du tampon
	num = b.count			# récupère le nombre de lignes
	b[n] = str			# modifie une ligne dans le tampon
	b.delete(n)			# supprime une ligne
	b.append(n, str)		# Ajoute une ligne après la n-ième

Fonctions du module :

							*ruby-message*
VIM::message({msg})
	Affiche le message {msg}.

							*ruby-set_option*
VIM::set_option({arg})
	Fixe une option Vim. {arg} peut être n'importe quel argument que la
	commande ":set" est susceptible d'accepter. Notez que cela signifie
	que les espaces ne sont pas autorisés dans l'argument ! Voir |:set|.

							*ruby-command*
VIM::command({cmd})
	Exécutes la commande Ex {cmd}.

							*ruby-evaluate*
VIM::evaluate({expr})
	Évalue {expr} en utilisant l'évaluateur d'expression interne de Vim
	(voir |expression|). Retourne le résultat sous la forme d'une chaîne.

==============================================================================
3. Objet VIM::Buffer					*ruby-buffer*

Les tampons Vim sont représentés par des objets VIM::Buffer.

Méthodes de classe :

current		Retourne l'objet du tampon courant.
count		Retourne le nombre de tampons.
self[{n}]	Retourne l'objet du tampon numéroté {n}. Le premier tampon
		porte le numéro 0.

Méthodes :

name		Retourne le nom du tampon.
number		Retourne le numéro du tampon.
count		Retourne le nombre de lignes.
length		Retourne le nombre de lignes.
self[{n}]	Retourne une ligne du tampon. {n} est le numéro de la ligne.
self[{n}] = {chaine}
		Modifie une ligne dans le tampon. {n} est le numéro de la
		   ligne.
delete({n})	Supprime une ligne dans le tampon. {n} est le numéro de la
		   ligne.
append({n}, {chaine})
		Ajoute une ligne après la ligne numérotée {n}.

==============================================================================
4. Objet VIM::Window					*ruby-window*

Les fenêtres Vim sont représentés par des objets VIM::Window.

Méthodes de classe :

current		Retourne l'objet de la fenêtre courante.
count		Retourne le nombre de fenêtres.
self[{n}]	Retourne l'objet de la fenêtre numérotée {n}. Le première
		fenêtre porte le numéro 0.

Méthodes :

buffer		Retourne le tampon affiché dans la fenêtre.
height		Retourne le hauteur de la fenêtre.
height = {n}	Fixe la hauteur de la fenêtre à {n}.
cursor		Retourne un tableau [ligne, colonne] à la position du curseur.
cursor = [{ligne}, {colonne}]
		Fixe la position du curseur : {ligne} et {colonne}.

==============================================================================
4. Variables Globales					*ruby-globals*

L'interface propose deux variables globales :

$curwin		L'objet de la fenêtre courante.
$curbuf		L'objet du tampon courant.

==============================================================================
 vim:tw=78:ts=8:ft=help:norl: