Salut,
Quelqu'un aurait-il une methode pour supprimer l'ensemble des lignes ne
contenant ni 'foo' ni 'bar' ni 'linux' (par exemple) ?
----------------------------------------------------------------
Get your free email from AltaVista at http://altavista.iname.com
Brest, le mercredi 17 mai
En travaillant directement le code source de la commande 'script' dont je vous
ai parlé il y a peu de temps, j'ai écrit un programme destiné à contrôler un
terminal depuis un autre processus. Bien que cela ne concerne pas directement
vim, mais en réalité tout programme lancé dans un terminal (un shell, un
interpréteur ou un programme en mode terminal comme mutt ou slrn), c'est en
pensant à vim que je l'ai écrit.
Le principe en est simple: le programme est lancé depuis un terminal, par
exemple une fenêtre xterm (personnellement je préfère rxvt ;-):
./pseudo-term-serveur
On ne peut alors plus rien taper dans cette fenêtre!!! Intérêt? Le programme lit
le fichier spécial FIFO /tmp/pseudo-term-serveur dans lequel n'importe quel
autre processus peut écrire. Les données sont alors transmises au terminal
initial.
Quel est le but? Mon but est en fait de pouvoir avoir en permanence sous X une
fenêtre 'xterm' avec vim lancé à l'intérieur, afin de pouvoir envoyer des
données rapidement dans un fichier en cours d'édition depuis d'autres
applications, principalement un navigateur internet. Quand je fait une recherche
j'accumule les enregistrements de page, qui ont en général des noms très
évocateurs, du genre 65675H.html ou index.html (ce dernier nom présente un
avantage de taille, comme la moitié des pages s'appellent ainsi, il est
inévitable qu'à un moment ou à un autre on écrase une page enregistrée cinq
minutes plus tôt et qui porte le même nom). Après, il faut classer tout cela.
Maintenant, je gagne un temps fou: dès qu'une page m'intéresse, je tape un truc
du genre:
| cat > /tmp/pseudo-term-serveur
et le contenu de la page est édité à la suite des enregistrements précédents!
Si cela vous intéresse, enregistrez la fin de ce message est compilez-le:
gcc -o pseudo-term-serveur pseudo-term-serveur.c
J'aimerais avoir votre avis (pour mémoire, je l'ai aussi posté dans un débat
sur fr.comp.os.unix).
Pour lancer vim, on tape simplement:
echo vim > /tmp/pseudo-term-serveur
Penser à utiliser "echo -n" si on ne souhaite pas que les données soient suivies
de <Entrée>. Par exemple, pour passer en mode insertion:
echo -n i > /tmp/pseudo-term-serveur
Pour passer en mode normal:
echo -n <Ctrl-V><ESC> > /tmp/pseudo-term-serveur
===============================================
Enregistrer ce qui suit sous: "pseudo-term-serveur.c"
===============================================
#include <sys/types.h>
#include <sys/stat.h>
#include <termios.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/file.h>
#include <sys/signal.h>
#include <stdio.h>
#include <paths.h>
#ifdef __linux__
#include <unistd.h>
#include <string.h>
#endif
void done(void);
void fail(void);
void fixtty(void);
void getmaster(void);
void getslave(void);
void doinput(void);
void dooutput(void);
void doshell(void);
char *shell;
int master;
int slave;
int child;
int subchild;
struct termios tt;
struct winsize win;
int lb;
int l;
char line[] = "/dev/ptyXX";
int aflg;
void
main(argc, argv)
{
void finish();
char *getenv();
shell = getenv("SHELL");
if (shell == NULL)
shell = _PATH_BSHELL;
getmaster();
printf("Terminal disponible\n");
fixtty();
(void) signal(SIGCHLD, finish);
child = fork();
if (child < 0) {
perror("fork");
fail();
}
if (child == 0) {
subchild = child = fork();
if (child < 0) {
perror("fork");
fail();
}
if (child)
dooutput();
else
doshell();
}
doinput();
}
void
doinput()
{
register int cc;
char ibuf[BUFSIZ];
int i;
mkfifo("/tmp/pseudo-term-serveur", 511);
i = open("/tmp/pseudo-term-serveur",O_RDONLY);
while (1) {
cc = read(i, ibuf, BUFSIZ);
(void) write(master, ibuf, cc); }
close(i);
done();
}
#include <sys/wait.h>
void
finish()
{
union wait status;
register int pid;
register int die = 0;
while ((pid = wait3((int *)&status, WNOHANG, 0)) > 0)
if (pid == child)
die = 1;
if (die)
done();
}
void
dooutput()
{
register int cc;
char obuf[BUFSIZ], *ctime();
(void) close(0);
for (;;) {
cc = read(master, obuf, sizeof (obuf));
if (cc <= 0)
break;
(void) write(1, obuf, cc);
}
done();
}
void
doshell()
{
getslave();
(void) close(master);
(void) dup2(slave, 0);
(void) dup2(slave, 1);
(void) dup2(slave, 2);
(void) close(slave);
#ifdef __linux__
execl(shell, strrchr(shell, '/') + 1, "-i", 0);
#else
execl(shell, "sh", "-i", 0);
#endif
perror(shell);
fail();
}
void
fixtty()
{
struct termios rtt;
rtt = tt;
cfmakeraw(&rtt);
rtt.c_lflag &= ~ECHO;
(void) tcsetattr(0, TCSAFLUSH, &rtt);
}
void
fail()
{
(void) kill(0, SIGTERM);
done();
}
void
done()
{
char *ctime();
if (subchild) {
(void) close(master);
} else {
(void) tcsetattr(0, TCSAFLUSH, &tt);
printf("Sortie du pseudo-terminal\n");
}
exit(0);
}
void
getmaster()
{
char *pty, *bank, *cp;
struct stat stb;
pty = &line[strlen("/dev/ptyp")];
for (bank = "pqrs"; *bank; bank++) {
line[strlen("/dev/pty")] = *bank;
*pty = '0';
if (stat(line, &stb) < 0)
break;
for (cp = "0123456789abcdef"; *cp; cp++) {
*pty = *cp;
master = open(line, O_RDWR);
if (master >= 0) {
char *tp = &line[strlen("/dev/")];
int ok;
/* verify slave side is usable */
*tp = 't';
ok = access(line, R_OK|W_OK) == 0;
*tp = 'p';
if (ok) {
(void) tcgetattr(0, &tt);
(void) ioctl(0, TIOCGWINSZ,
(char *)&win);
return;
}
(void) close(master);
}
}
}
fprintf(stderr, "Out of pty's\n");
fail();
}
void
getslave()
{
line[strlen("/dev/")] = 't';
slave = open(line, O_RDWR);
if (slave < 0) {
perror(line);
fail();
}
(void) tcsetattr(slave, TCSAFLUSH, &tt);
(void) ioctl(slave, TIOCSWINSZ, (char *)&win);
(void) setsid();
(void) ioctl(slave, TIOCSCTTY, 0);
}
Brest, le dimanche 14 mai
Bonjour,
ces derniers jours il a été question de shells sous vim, et j'en ai promis un
pour dans quelques temps, en langage C. En attendant, j'avais évoqué VISH,
l'émulateur qui ne marche pas trop mal.
J'ai découvert depuis le programme "script" que je ne connaissais pas, alors
qu'il semble être un des plus classique qui soit. Ce n'est pas trop mal
d'utiliser script depuis vi.
:!script <enter>
ouvre un shell et enregistre le contenu dans un fichier. Quand on a fini on
tape classiquement: 'exit'
Il ne reste plus alors qu'à éditer le fichier en faisant attention si on a
utilisé des sorties formatées (gras, couleurs, etc.) car vim affichera les
codes d'échappement et non les couleurs ou les caractères gras. Il suffit de
les filtrer en ouvrant le fichier.
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
Brest, le mardi 9 mai
Salut,
vous vous souvenez de ma question sur la possibilité d'exclure un symbole d'une
expression régulière. On m'a communiqué que la version 6.0 de vim l'autoriserait
avec quelque chose comme \@
Ainsi n\@jour signifiera: chercher 'jour' à condition qu'il ne soit pas
précédé de 'n'. On pourra faire des remplacements de la sorte:
:%s/n\@jour/nuit/g
(tandis que :%s/[^n]jour/nuit/g produira des résultats désastreux, message à
l'attention de ceux qui n'auraient pas suivi ;-)
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
baruchel wrote:
> Un truc en français avec comme objet:
>
> [FRENCH] liste de diffusion sur vim
>
> Pas compliqué ;-)
<mauvaise foi>
C'etait pour voir si tout le monde suivait.
</mauvaise foi>
Herve.
On Mon, May 08, 2000 at 11:03:02AM -0700, baruchel wrote:
> Tu aurais plutôt intérêt à écrire une commande Vim acceptant des paramètres.
> Tape :help command
> et :help function
>
> Tu devrais alors dans ton .vimrc avoir quelque chose comme
>
> Command Gcc -nargs=1 call Ma_fonction_gcc(<f-args>)
merci pour toutes ces explications. J'imaginais bien qu'il y
avait moyen de faire des commandes mais comme je vous disais
: je suis un happy vimer depuis peu.
> > Je vais voir ce VISH :)
>
> C'est génial, quoique très limité comme émulateur. (Celui de Vile est bien
> meilleur; je ne connais pas bien celui d'emacs)
ouais, faut absolument que je me trouve 5mn mais je sens que
je les consacrerais plus facilement a la decouverte de la
programmation de commandes vim.
> > Je suis rudemement interessé par ton programme en C. En
> > attendant, je continurais a jouer avec les ALT-F1, ALT-F2
> > pour aller d'une console a l'autre :)
>
> Tu travailles en mode console ;-) Je trouve cela très estimable.
Je suis encore sur un P100 avec 32 Mo de RAm. Les gros AGL
sous X ne sont donc pas veritablement faites pour ma config.
Du plus, je trouve le mode console tres pratique et comme je
travaille beaucoup en ssh sur une machine distante, je ne me
sens nulement depaysé (a en oublier parfois que je bosse a
distance.
J'utilise mutt pour le courrier, vim pour l'edition de
textes, en compte me mettre a slrn pour les news (des que
mon foutu fichier conf. degnera marcher correctement ...)
> Pourquoi tout
> ce battage autour d'X ?
ben, je pense qu'X est LE soft qui a popularisé unix et par
la meme linux et FreeBSD, je le vois donc d'un tres bon oeil
quand on a assez de sous pour s'acheter un petit monstre. Et
puis mon p'tit afterstep me permet quand meme d'utiliser
GIMP et Sketch et de broswer avec netscape (parceque franchement,
lynx, je peux pas).
> Pousses-tu l'esthétisme jusqu'à te loguer sous... Vim?
:) non, mais l'idée me botte beaucoup !
> (une fois qu'on connaît VISH, on peut sérieusement l'envisager). Sinon, que
> penses-tu de 'splitvt' pour ne pas avoir à se loguer sur deux consoles (on a
> deux fenêtres en mode texte à l'écran, avec Ctrl-W pour passer de l'une à
> l'autre: on peut avoir Vim sur la moitié de l'écran et un shell dans l'autre)?
on m'a parlé de ca y'a qq jours ... pas encore essayé.
Marc
-------------------------------------------------------------
"Advancing technology is not as important as fighting for
freedom, but it's still a good thing to do."
Richard M. Stallman
http://gcu-squad.org/~khatarkhatar@...
Brest, le lundi 8 mai
On Mon, May 08, 2000 at 12:48:41AM +0200, Marc CHANTREUX wrote:
> On Sun, May 07, 2000 at 11:54:46AM -0700, baruchel wrote:
>
> > :map g :!gcc %<Ctrl-V><Entrée> (+ Entrée pour valider)
>
> Oui, mais mon grand reve est de pouvoir fournir un parametre
> a mon gcc depuis ma macro:
>
> Pour le moment, j'ouvre une fenetre avec un fichier err et
> je redirige la sortie de mon gcc comme suit :
>
> :map :gcc :r!gcc %<CTRL-V><ENTER>
>
> je tappes donc :gcc et le resultat de ma compil. s'affiche
> dans mon fichier err (j'efface le contenu de ce fichier a
> chaque nouvelle compil.). Je vais ameliorer pour qu'il
> efface automatiquement avec un 1GdG.
Tu aurais plutôt intérêt à écrire une commande Vim acceptant des paramètres.
Tape :help command
et :help function
Tu devrais alors dans ton .vimrc avoir quelque chose comme
Command Gcc -nargs=1 call Ma_fonction_gcc(<f-args>)
Ainsi, la commande
:Gcc mon-output
serait transformée en:
:call Ma_fonction_gcc("mon-output")
Tu peux alors écrire ta fonction, pour réaliser tout ce que tu veux.
À vue de nez cela donnera quelque chose du genre
function! Ma_fonction_gcc(output)
execute "normal :w!\<CR>" "sauver le fichier
execute "normal \<C-W>n" "ouvrir une fenêtre
execute "normal :r!gcc % -o " . a:output . "\<CR>" "exécuter gcc
endfunction()
Je ne sais pas ce que tu veux faire ensuite de la sortie, mais cela ne pose
aucune difficulté d'écriture. Juste une remarque si tu n'as jamais écrit de
commandes et de fonctions pour Vim:
-- dans la commande, -nargs=1 signifie que la commande doit avoir un argument
call ... appelle la fonction Ma_fonction_gcc
avec les arguments de la commande comme argument de
la fonction (le format des arguments est adapté)
-- dans la fonction, (output) est une variable d'entrée
a:output est transformé en une chaîne avec le contenu de cette variable
> Je vais voir ce VISH :)
C'est génial, quoique très limité comme émulateur. (Celui de Vile est bien
meilleur; je ne connais pas bien celui d'emacs)
> Je suis rudemement interessé par ton programme en C. En
> attendant, je continurais a jouer avec les ALT-F1, ALT-F2
> pour aller d'une console a l'autre :)
Tu travailles en mode console ;-) Je trouve cela très estimable. Pourquoi tout
ce battage autour d'X ? Pousses-tu l'esthétisme jusqu'à te loguer sous... Vim?
(une fois qu'on connaît VISH, on peut sérieusement l'envisager). Sinon, que
penses-tu de 'splitvt' pour ne pas avoir à se loguer sur deux consoles (on a
deux fenêtres en mode texte à l'écran, avec Ctrl-W pour passer de l'une à
l'autre: on peut avoir Vim sur la moitié de l'écran et un shell dans l'autre)?
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
On Sun, May 07, 2000 at 11:54:46AM -0700, baruchel wrote:
> :map g :!gcc %<Ctrl-V><Entrée> (+ Entrée pour valider)
Oui, mais mon grand reve est de pouvoir fournir un parametre
a mon gcc depuis ma macro:
Pour le moment, j'ouvre une fenetre avec un fichier err et
je redirige la sortie de mon gcc comme suit :
:map :gcc :r!gcc %<CTRL-V><ENTER>
je tappes donc :gcc et le resultat de ma compil. s'affiche
dans mon fichier err (j'efface le contenu de ce fichier a
chaque nouvelle compil.). Je vais ameliorer pour qu'il
efface automatiquement avec un 1GdG.
L'ideal pour moi serait de pouvoir tapper :gcc [mon_output]
ou mon-output est le binaire. Avec une macro du genre :
:map :gcc $output :r!gcc % -o $output <CTRL-V><ENTER>
> Je travaille en ce moment à un outil en C (serveur/client) qui permettrait
Je vais voir ce VISH :)
Je suis rudemement interessé par ton programme en C. En
attendant, je continurais a jouer avec les ALT-F1, ALT-F2
pour aller d'une console a l'autre :)
Marc
Brest, le vendredi 5 mai
On Fri, May 05, 2000 at 04:22:27PM +0200, herve_foucher@... wrote:
>
>
> baruchel wrote:
> > je trouve que maintenant que la discussion est repartie, on devrait faire
> une
> > annonce sur comp.editors, parce que moi c'est par hasard que j'ai
> découvert
> > cette liste, tandis que je connaissais comp.editors depuis assez
> longtemps.
> > Qu'en pensez-vous?
>
> Pourquoi pas. Mais ton annonce, tu la fais en anglais ou en francais ?
>
> 1) comp.editors et en anglais donc il faut faire les annonces en anglais
> 2) oui mais voila, l'annonce est pour les francophones...
>
> Dilemme quand tu nous tiens ;-)
>
> Herve
>
Un truc en français avec comme objet:
[FRENCH] liste de diffusion sur vim
Pas compliqué ;-)
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
Brest, le dimanche 7 mai
On Sat, May 06, 2000 at 09:17:16PM +0200, Marc CHANTREUX wrote:
> Bonjour a tous,
>
> Je viens de m'abonner a la liste suite a l'heureuse
> decouverte que j'ai faites sur la page de vim.org.
>
> l'adresse de la liste indiquée sur vim.org, c'est encore
> @club.voila.fr. La personne etant en contact avec eux
> devrait demander la mise a jour du lien.
>
> J'ai lu l'archive pour constater que j'arrive au début de
> l'"activité" de la liste ... ca tombe bien : j'ai une
> floppée monstrueuse de questions :).
>
> Puisqu'il a été de bon ton de se présenter, je me plie au
> rituel :
>
> J'ai 24 ans et je suis développeur avec une grosse
> orientation web (Perl/C/php/javascript/dHTML/shell).
>
> J'utilise vim parceque j'ai toujours révé d'un editeur de ce
> type sans savoir qu'il existait : mode edition, mode
> commande puissant.
>
> Il me manque toutefois des petites choses pour avoir le Vim
> de mes reves (faute de mon manque d'experience avec les
> macros vim dont je trouve l'apprentissage on ne peut plus
> douloureux vu le manque de documentation pedagogique
> gratuite sur le sujet).
>
> J'aimerai pouvoir par exemple lancer simplement DDD et gcc
> depuis vim en leur fournissant des parametres, ouvrir un
> shell dans une window et editer mon texte dans l'autre et
> autres choses qui ferais que vim soit pour moi l'arme
> absolue.
>
>
> Marc
>
Tout cela est possible, et bien d'autres choses encore...
Pour lancer un programme depuis Vim qui opère sur le "buffer" courant,
simplement taper
:!gcc %
ce que je fais personnellement et une réaffectation de la touche 'g' (qui par
défaut ne sert à rien).
:map g :!gcc %<Ctrl-V><Entrée> (+ Entrée pour valider)
Dorénavant, à chaque fois que je taperai 'g', le buffer sera compilé.
On peut perfectionner (sauver le fichier, le compiler avec des options)
:map g :w!<Ctrl-V><Entrée>:!gcc -o monprogramme %<Ctrl-V><Entrée>
Le '%' est remplacé par le nom du fichier
Pour lancer un shell, c'est un sujet qui me tient à coeur:
Il y a pour l'instant un bon émulateur: VISH.vim
Télécharge ce petit jeu de macros (depuis http://www.vim.org page 'users')
Ce n'est qu'un émulateur (que je trouve déjà très pratique), moins puissant que
ce qu'on trouve dans la distribution de VILE ou bien sûr d'emacs.
Je travaille en ce moment à un outil en C (serveur/client) qui permettrait
l'ouverture dans une fenêtre VIM de n'importe quel programme interactif
(un shell, un calculateur, un interpréteur (!), etc.) d'une façon beaucoup
plus puissante. Je vous tiens bien sûr au courant. En ce moment je suis un peu
freiné par le manque de temps. Si tu as besoin d'aide pour installer VISH,
écris-moi éventuellement à mon adresse personnelle, cela ne concerne peut-être
pas la liste.
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
Bonjour a tous,
Je viens de m'abonner a la liste suite a l'heureuse
decouverte que j'ai faites sur la page de vim.org.
l'adresse de la liste indiquée sur vim.org, c'est encore
@club.voila.fr. La personne etant en contact avec eux
devrait demander la mise a jour du lien.
J'ai lu l'archive pour constater que j'arrive au début de
l'"activité" de la liste ... ca tombe bien : j'ai une
floppée monstrueuse de questions :).
Puisqu'il a été de bon ton de se présenter, je me plie au
rituel :
J'ai 24 ans et je suis développeur avec une grosse
orientation web (Perl/C/php/javascript/dHTML/shell).
J'utilise vim parceque j'ai toujours révé d'un editeur de ce
type sans savoir qu'il existait : mode edition, mode
commande puissant.
Il me manque toutefois des petites choses pour avoir le Vim
de mes reves (faute de mon manque d'experience avec les
macros vim dont je trouve l'apprentissage on ne peut plus
douloureux vu le manque de documentation pedagogique
gratuite sur le sujet).
J'aimerai pouvoir par exemple lancer simplement DDD et gcc
depuis vim en leur fournissant des parametres, ouvrir un
shell dans une window et editer mon texte dans l'autre et
autres choses qui ferais que vim soit pour moi l'arme
absolue.
Marc
-------------------------------------------------------------
"Advancing technology is not as important as fighting for
freedom, but it's still a good thing to do."
Richard M. Stallman
http://gcu-squad.org/~khatarkhatar@...
baruchel wrote:
> je trouve que maintenant que la discussion est repartie, on devrait faire
une
> annonce sur comp.editors, parce que moi c'est par hasard que j'ai
découvert
> cette liste, tandis que je connaissais comp.editors depuis assez
longtemps.
> Qu'en pensez-vous?
Pourquoi pas. Mais ton annonce, tu la fais en anglais ou en francais ?
1) comp.editors et en anglais donc il faut faire les annonces en anglais
2) oui mais voila, l'annonce est pour les francophones...
Dilemme quand tu nous tiens ;-)
Herve
Brest, le jeudi 4 mai
On Thu, May 04, 2000 at 02:39:12PM +0200, herve_foucher@... wrote:
>
>
> baruchel wrote:
> > Bonjour,
>
> Bonjour!
>
> > dans une expression régulière, comment indiquer qu'on ne veut pas que
> > l'expression soit par exemple précédée par une lettre?
> > Non, je ne pense pas à /[^n]jour/
> > qui excluera bien "bonjour", mais qui excluera aussi "jour" en début de
> ligne:
>
> Si je comprends bien tu veux:
> jour bonjour deux jours ajourne
> ^^^^ ^^^^ ^^^^
>
Oui, c'est ça, mais fais attention, tu as fait une faute de frappe sur
comp.editors (j'ai été voir ton message et sa première réponse). Ça dit
le contraire de ce qu'on cherche.
> Hum... en gros ca veut dire chercher un modele et si on le trouve,
> ne mettre en highlight qu'une partie.
Non, pas tout à fait, si on pinaille: on ne met pas en highlight une partie du
modèle, car le modèle est bien constitué des quatre lettres "jour"
(dans le cas de "jour" en début de ligne, il est manifeste que les quatre
lettres constituent la totalité du modèle.
J'ai depuis eu une idée, mais c'est barbare.
Faire une commande pour:
- remplacer tous les 'njour' par @*$p5è!:; (par exemple)
- chercher "jour" et éventuellement exécuter une commande dessus
- mettre une marque: mx
- restituer les @*$p5è!:; en 'njour'
- revenir à la marque: `x
mais c'est si inélégant
> PS: ca commence fort comme question ;-)
C'est pas parce que c'est une liste francophone qu'il faut s'amuser à faire des
'yy' et des 'p' (oh, t'as vu il recopie la ligne!) et laisser les affaires
sérieuses à un groupe anglophone:
s/comp\.editors/vim-fr/g
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
Brest, le jeudi 4 mai
Bonjour,
je trouve que maintenant que la discussion est repartie, on devrait faire une
annonce sur comp.editors, parce que moi c'est par hasard que j'ai découvert
cette liste, tandis que je connaissais comp.editors depuis assez longtemps.
Qu'en pensez-vous?
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
baruchel wrote:
> Bonjour,
Bonjour!
> dans une expression régulière, comment indiquer qu'on ne veut pas que
> l'expression soit par exemple précédée par une lettre?
> Non, je ne pense pas à /[^n]jour/
> qui excluera bien "bonjour", mais qui excluera aussi "jour" en début de
ligne:
Si je comprends bien tu veux:
jour bonjour deux jours ajourne
^^^^ ^^^^ ^^^^
Hum... en gros ca veut dire chercher un modele et si on le trouve,
ne mettre en highlight qu'une partie. Je ne sais pas si c'est possible.
Je poste la question dans comp.editors.
A+
Herve
PS: ca commence fort comme question ;-)
chadom wrote:
> A l'origine la liste ete sur club.voila.fr, mais si vous avez suivi
l'actu, ils
> y a eu cassure de contrat avec egroups qui gerait leur ML. Donc pour le
moment
> on est sur egroups et je n'sais pas si vous souhaitez revenir sur
voila... la
> discusion est ouverte.
Personnelement, je prefere rester loin de France Telecom. S'ils ne sont
pas fichus de respecter un contrat tant pis pour eux. Cet avis n'engage
que moi. Si les autres veulent changer, je suivrai...
> J'ai une question con sur vim : y a-t-il un moyen de faire de recherche
> (/<chaine>) sans prendre en compte la case (Maj/Min) a la demande (sans
> modifier a chaque fois l'option de vim ignorecase).
En PERL, c'etait un truc du genre /<chaine>/i. J'ai cru que ca marcherait
avec VIM puisque les modeles sont du meme genre mais il faut croire que
non.
HEUREUSEMENT, en jetant un oeil dans :help todo (ligne 1788) on peut
lire que cette option sera prise en compte ASAP (7 = as soon as possible):
7 Add POSIX regexp, like Nvi, with 'extended' option? It's like
very-magic.
- Remember flags for backreferenced items, so that "*" can be used after
it.
Check with "\(\S\)\1\{3}". (Hemmerling)
- Add flags to search command:
i ignore case
I use case
etc...
Voila, il va falloir attendre un peu encore. Au fait, la 5.6.70 vient de
sortir... Peut-etre que...
Herve
Brest, le mercredi 3 mai
On Wed, May 03, 2000 at 01:44:11PM -0400, chadom@... wrote:
>
> J'ai une question con sur vim : y a-t-il un moyen de faire de recherche
(/<chaine>) sans prendre en compte la case (Maj/Min) a la demande (sans modifier
a chaque fois l'option de vim ignorecase).
Je crois que c'est possible, Je n'ai plus en tête, mais si la chaîne n'est pas
trop longue, j'utilise couramment:
/[Bb][Oo][Nn][Jj][Oo][Uu][Rr]/
surtout qu'avec 'set incsearch' dans mon .vimrc,
j'ai rarement besoin d'aller jusqu'au bout pour trouver ce que je cherche.
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
Brest, le mercredi 3 mai
Brest, le mercredi 3 mai
Bonjour,
j'ai une question pour relancer l'activité de la liste:
dans une expression régulière, comment indiquer qu'on ne veut pas que
l'expression soit par exemple précédée par une lettre?
Non, je ne pense pas à /[^n]jour/
qui excluera bien "bonjour", mais qui excluera aussi "jour" en début de ligne:
en effet, [^n] est mis pour un caractère (différent de 'n', mais néanmoins un
caractère). Or ce que je voudrais est rechercher une expression quelle qu'elle
soit, DU MOMENT QU'ELLE NE SOIT PAS PRÉCÉDÉE PAR 'n' (par exemple), ce qui est
différent de rechercher une expression comprenant à son début un caractère
différent de 'n'. Vous me suivez?
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
Richard Hitier wrote:
> c'est une liste très très calme!
> il n'y a rien depuis plusieurs mois... :(
Bonjour,
C'est vrai que c'est calme. Je me presente donc: je m'appelle
Herve Foucher, j'ai 25 ans. Je developpe en Java et j'utilise
toute la journee ce splendide editeur qu'est Vim.
J'ai de temps en temps des echanges de mails avec Bram Moolenaar
et Sven Guckes ce qui m'a mene a faire une interview d'eux deux
dans le magazine des anciens de mon ecole:
http://www.efrei.fr/aiefrei/effervescence/123/
Voila pour les presentations.
> me voici avec une question:
> si je veux écrire en fin de ligne 'A' règle mon problème.
> mais en fin de mot? il existe qque chose d'autre que 'ea' ?
'e' => emmene a la fin du mot
'a' => ajoute du texte apres la position du curseur
Ca me semble donc bien de faire 'ea' ;-) Je ne connais rien
de plus court mais avec VIM, on trouve toujours un
raccourci.
Herve / HELIO
Brest, le mardi 2 mai
On Mon, May 01, 2000 at 06:29:16PM +0200, Richard Hitier wrote:
> c'est presque surréaliste de recevoir un message de vim-fr
>
> c'est une liste très très calme!
> il n'y a rien depuis plusieurs mois... :(
>
>
> me voici avec une question:
> si je veux écrire en fin de ligne 'A' règle mon problème.
> mais en fin de mot? il existe qque chose d'autre que 'ea' ?
>
'ea' me semble assez pratique. Pourquoi faudrait-il autre chose?
Sinon, à part un remappage du clavier, je ne vois pas...
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
* Le 01 May >baruchel< ecrivait:
> Brest, le lundi 1er mai
>
> Je suis très étonné: je viens de m'inscrire à vim-fr, et depuis une bonne
> semaine, je n'ai vu aucun message. Y a-t-il quelqu'un à part moi?
je ne me souvenais même pas être encore inscrit... :)
c'est ton premier message qui me l'a rappelé !
c'est presque surréaliste de recevoir un message de vim-fr
c'est une liste très très calme!
il n'y a rien depuis plusieurs mois... :(
> peu d'utilisateurs français de vim? Ou bien êtes-vous tous sur comp.editors ?
je ne pense pas...je n'espère pas!
il y a quand même quelques sites, non?
...au moins un peu de doc et de traduction.
dommage qu'ils soient pas trop référencés chez sven guckes :(
me voici avec une question:
si je veux écrire en fin de ligne 'A' règle mon problème.
mais en fin de mot? il existe qque chose d'autre que 'ea' ?
à bientôt en français!
--
richard Hitier richard.hitier@...
31 rue Goineau
45000 Orléans tel: 02-38-72-50-59
Brest, le lundi 1er mai
Je suis très étonné: je viens de m'inscrire à vim-fr, et depuis une bonne
semaine, je n'ai vu aucun message. Y a-t-il quelqu'un à part moi? Y a-t-il si
peu d'utilisateurs français de vim? Ou bien êtes-vous tous sur comp.editors ?
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
Brest, le lundi 24 avril
Salut, je suis nouveau sur la liste vim-fr.
En guise de présentation, µe me permets de joindre une macro que j'aime bien.
Voilà, j'adore l'utilitaire DC (calcul polonais sous la forme d'un shell
intéractif). Pour prouver que vim peut vraiment tout faire, j'ai écrit ce
petit émulateur (il ne fait pas encore les macros et ne travaille que sur des
entiers, mais bon...), qui n'utilise que des fonctions internes à vim.
Il travaille sur une pile en notation polonaise inversée, de façon intéractive:
on tape simplement des données ou des opérateurs, on valide avec <ENTRÉE>, et
l'état suivant de la pile s'affiche. Des emboîtements sont possibles.
Les opérateurs admis sont + - * /
et % (reste de la division)
ainsi que ~ (met sur la pile le quotient de la division puis le reste)
et deux opérateurs de manipulation de pile
d (duplique le dernier élément)
P (supprime le dernier élément).
On lance DCvim en tapant DC en mode normal
On en sort en tapant <C-D> en mode insertion
(toute la session DCvim devrait d'ailleurs se faire en mode insertion, sauf
éventuellement pour du copier/coller).
Je commence à écrire des macros pour vim, et j'aimerais savoir
ce que vous pensez de celle-ci ;-)
" Mode normal : map DC
" ouvre un shell de calcul polonais, basé sur une pile
" on tape des nombres et des opérateurs séparés par des espaces ou des
" validations. À chaque validation, le contenu de la pile est rappelé.
" Les opérateurs admis sont:
" + - * / sans commentaire
" % le reste de la division
" ~ le quotient et le reste sont placés en haut de la pile
" P supprime le dernier élément de la pile
" d double le dernier élément du haut
"
" ex de session: <DC> (en mode normal)
" 7 5 % 2 *
" ==> [4] (reste de 7/5)*2
" 1 + 4
" ==> [5 4]
" <C-D>
" ==> quit
"
" DCvim admet une légère souplesse dans l'utilisation des espaces,
" qui peuvent être omis quand il n'y a aucune amiguité:
" 111 5 1 + * ==> 666
" 111 5 1 +* ==> 666
" 111 5 1+* ==> 666
"
" Please, send bugs to Thomas Baruchel <baruchel@...>
"Calcul polonais
" la fonction EvaluateExprPol a comme argument une chaîne : ex '5 6 +'
" elle écrit le résultat en dernière ligne du fichier
function! EvaluateExprPol(expression)
let c=0
execute "normal mxGo" . a:expression . "\<ESC>"
execute "normal :.s/^ *//\<CR>"
execute "normal :.s/ \\+/ /\<CR>"
execute "normal 0i:let a=\<ESC>f r\<C-V>\<C-M>a:let b=\<ESC>f r\<C-V>\<C-M>"
execute "normal a:let c=a\<ESC>$ab\<C-V>\<C-M>:execute \"normal o\" . c .
\"\\<ESC>\"\<C-V>\<C-M>\<ESC>0\"xy$"
execute "normal @xkdd`x"
endfunction
map DC :call OpenDCsession()<C-M>:imap <C-V><C-D> <C-V><ESC>:call
CloseDCsession()<C-V><C-M><C-M>:imap <C-V><C-M> <C-V><ESC>:call
ValidateExpression()<C-V><C-M>a<C-M>i
function! OpenDCsession()
" ouverture d'une fenêtre, initialisation du registre x
execute "normal \<C-W>n\"xy$"
endfunction
function! CloseDCsession()
iunmap <C-D>
iunmap <C-M>
execute "normal :q!\<CR>"
endfunction
function! ValidateExpression()
"inutile de commencer par ESC, on est d'emblée en mode normal
execute "normal mxyyGp0i \<ESC>\"xP"
execute "normal :.s/ \\+/ /g\<CR>"
execute "normal :.s/^ */#/\<CR>"
let i=0
while i==0
execute "normal :.s/^[#!]/#/\<CR>"
execute "normal :.g/[0-9]\\+ *P/s/[0-9]\\+ *P/ /g\<CR>"
execute "normal :.g/[0-9]\\+ *d/s/\\([0-9]\\+\\) *d/\\1 \\1 /g\<CR>"
execute "normal :.g/ /s/ \\+/ /g\<CR>"
execute "normal
:.g/[0-9][\\+\\-\\*\\/\\~%]/s/\\([0-9]\\)\\([\\+\\-\\*\\/\\~%]\\)/\\1
\\2/g\<CR>"
execute "normal :.g/[0-9]\\+ [0-9]\\+ \\~/s/\\([0-9]\\+\\) \\([0-9]\\+\\)
\\~/\\1 \\2 \\/ \\1 \\2 %/g\<CR>"
execute "normal :.g/[0-9]\\+ [0-9]\\+ %/s/\\([0-9]\\+\\) \\([0-9]\\+\\)
%/\\1 \\1 \\2 \\/ \\2 * -/g\<CR>"
execute "normal :.g/[0-9]\\+ [0-9]\\+ [\\+\\-\\*\\/]/call EvaluateDC()\<CR>"
execute "normal :.g/^#/let i=1\<CR>"
endwhile
execute "normal 0x\"xy$"
execute "normal :.s/^ *\\(.\\{-}\\) *$/[\\1]/\<CR>o\<ESC>"
endfunction
function! EvaluateDC()
execute "normal 0/[0-9]\\+ [0-9]\\+ [\\+\\-\\*\\/]/\<CR>i@\<ESC>"
execute "normal /[\\+\\-\\*\\/]/\<CR>a@\<ESC>F@ldf@o\<ESC>p"
execute "normal k:.s/@/ @ /\<CR>j"
execute "normal 0i:call EvaluateExprPol(\"\<ESC>$xa\")\<C-V>\<C-M>\<ESC>"
execute "normal 0\"zy$dd@zG0\"zy$dd0f@x\"zp"
execute "normal :.s/ \\+/ /g\<CR>"
" signaler qu'une opération a été effectuée:
execute "normal :.s/^#/!/\<CR>"
endfunction
--
.~. Thomas Baruchel
/V\ baruchel@...
// \\ Brest
/( )\ FRANCE
^`~'^
> Axel Kielhorn has compiled Vim 5.5 for the MacIntosh and created .sit
> archives. Patches up to 5.5.002 have been included.
> Syntax highlighting is not supported for 68k.
> You will need StuffIt Expander 5.x to extract the files.
> The files are located at ftp://ftp.vim.org/pub/vim/mac/
> SIZE FILE CONTENTS
> 1136568 vim55rt.sit Vim 5.5 runtime files packed for Mac
> 746557 vim55bin.sit Vim 5.5 Mac 68k and PPC binaries
> If you have problems, please contact Axel Kielhorn <A.Kielhorn@...>.
> More info: http://www.tu-bs.de/~i0080108/macvim.html.
> --
> hundred-and-one symptoms of being an internet addict:
> 199. You read this entire list of symptoms, looking for something
> that doesn't describe you.
> --/-/---- Bram Moolenaar ---- Bram@... ---- Bram@... ---\-\--
> \ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /
--
>ci-dessous un forward
>de : Bram@...
>au sujet : Vim version 5.5 has been released
> Announcing: Vim (Vi IMproved) version 5.5
> Author: Bram Moolenaar et al.
> Announcement
> ------------
> This is a bug-fix release of Vim. Since version 5.4 bugs have been fixed, and
> some items cleaned up.
> Vim 5.5 has been tested by quite a few people over the past weeks, and there
> are no big changes since version 5.4. This should be the most stable Vim
> version ever. But it's free software, the usual disclaimers apply.
> What is Vim?
> ------------
> Vim is an almost 100% compatible version of the UNIX editor Vi. Many new
> features have been added: Multi level undo, syntax highlighting, command line
> history, filename completion, block operations, etc. Those who don't know Vi
> can probably skip this message, unless you are prepared to learn something new
> and useful. Vim is especially recommended for editing programs.
> Vim runs on almost any Unix flavor, MS-DOS, MS-Windows 3.1, MS-Windows
> 95/98/NT, OS/2, Atari MiNT, BeOS, VMS, RISC OS, Macintosh and Amiga.
> For more information, see "http://www.vim.org".
> New since version 5.4
> ---------------------
> Not much:
> - Support for a mouse scroll wheel in X11 (GTK, Athena and Motif). Should
> also work in an xterm when translations are installed.
> - Support for decompression of bzip2 files in the example vimrc file.
> - Handling of patch numbers, they show up in the ":version" output.
> - Uninstall program for MS-Windows, for those that have a problem with the
> "Edit with Vim" popup menu entry.
> And many bug fixes! This version is aimed at stability.
> See ":help version-5.5" in Vim for the details.
> Where to get it
> ---------------
> You can find a list of distribution sites at
> ftp://ftp.vim.org/pub/vim/MIRRORS
> Suggested locations:
> ftp://ftp.<country>.vim.org/pub/vim/
> ftp://ftp.vim.org/pub/vim/
> Replace <country> with a country code, e.g.:
> ftp://ftp.us.vim.org/pub/vim/
> What is available
> -----------------
> Note that for all systems the distribution is split into an archive with
> runtime files (documentation, syntax files, etc.) and a binary and/or source
> archive. You should download at least two archives.
> FILE SYSTEM COMMENTS
> unix/vim-5.5-src.tar.gz Unix(*) Sources.
> unix/vim-5.5-rt.tar.gz Unix(*) Runtime files.
> extra/vim-5.5-extra.tar.gz Unix(*) Extra sources and docs (Farsi, OLE,
VisVim).
> unix/vim-5.4-5.5-rt.diff.gz Runtime diff with version 5.4.
> unix/vim-5.4-5.5-src.diff.gz Sources diff with version 5.4.
> extra/vim-5.4-5.5-extra.diff.gz Extra diff with version 5.4.
> pc/vim55rt.zip Win32 MS-DOS and MS-Windows runtime files.
> pc/gvim55.zip Win32 32 bit MS-Windows 95/98/NT GUI binaries.
> Recommended for MS-Windows 95/98/NT.
> The best choice for syntax highlighting and
> speed.
> pc/gvim55ole.zip Win32 32 bit MS-Windows 95/98/NT GUI binaries,
> with OLE support and VisVim.
> pc/gvim55_s.zip Win32s 32 bit MS-Windows 3.1/3.11 GUI binaries.
> Requires Win32s.
> pc/vim55w32.zip Win32 32 bit MS-Windows 95/98/NT console
binaries.
> Recommended for Windows NT, NOT for 95/98.
> Supports long file names.
> pc/vim55d32.zip MS-DOS 32 bit protected mode binaries.
> Recommended for MS-DOS, MS-Windows 3.1 and
> MS-Windows 95/98 console. It is compiled
> with DJGPP, it may need a DPMI driver
> (CWSDPMI is included). Supports long file
> names on MS-Windows 95/98 (NOT on NT).
> pc/vim55d16.zip MS-DOS 16 bit real mode binaries.
> Runs on most MS-DOS systems, but is
> restricted to using 640K memory. Small
> version, without e.g., syntax highlighting
> and autocommands.
> pc/vim55src.zip PC Sources for PC versions (with CR-LF).
> os2/vim55rt.zip OS/2 Runtime files (same as for PC).
> os2/vim55os2.zip OS/2 Binaries.
> (use the Unix+extra archives for sources)
> amiga/vim55rt.tgz Amiga Runtime files.
> amiga/vim55bin.tgz Amiga Binaries.
> amiga/vim55big.tgz Amiga Binaries with more features.
> amiga/vim55src.tgz Amiga Sources for Amiga.
> doc/vim55html.zip all Documentation converted to HTML.
> patches/* all Recent patches.
> (*) Also for BeOS, OS/2, VMS, Macintosh and Atari MiNT
> The contents of the source archives depends on the specified system. To
> obtain the full sources and docs, get the three Unix archives.
> system file type Unpack with
> Unix file.tar.gz gunzip file.tar.gz; tar xf file.tar
> Amiga file.tgz gzip -d file.tgz; tar xf file.tar
> PC file.zip pkunzip -d file.zip
> or: unzip file.zip
> Mailing lists
> -------------
> For user questions you can turn to the Vim mailing list. There are a lot of
> tips, scripts and solutions. You can ask your Vim questions, but only if you
> subscribe. See http://www.vim.org/mail.html. An archive is kept at
> http://www.egroups.com/group/vim.
> If you want to help developing Vim or get the latest patches, subscribe to the
> vim-dev mailing list. An archive is kept at
> http://www.egroups.com/group/vimdev.
> Reporting bugs
> --------------
> Send them to <Bram@...>. Please be brief, all the time spent on answering
> mail is subtracted from the time that is spent on improving Vim! Always give
> a reproducable example and try to find out which settings or other things
> influence the appearance of the bug. Try different machines if possible. See
> ":help bugs" in Vim. Send me patches if you can!
> If something needs discussing with other developers, send a message to the
> vim-dev mailing list. You need to subscribe first.
> Happy Vimming!
> --
> hundred-and-one symptoms of being an internet addict:
> 141. You'd rather go to http://www.weather.com/ than look out your window.
> --/-/---- Bram Moolenaar ---- Bram@... ---- Bram@... ---\-\--
> \ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /
--
chadom
http://I.am/chadom/
"La vie est un contexte flou." - P'tit Luc
Bonjour, voici un événement qui devrait vous intéresser.
Event: Interview des auteurs de VIM dans Effervescence
Date: Fri 01 Oct 1999
Description: Une interview de Bram Moolenaar et Sven
Guckes, respectivement auteur de vim et
webmaster de vim.org, paraitra dans le
magazine EFFERVESCENCE et sera communiquee
en ligne aux alentours du 1er Octobre:
http://web.efrei.fr/aiefrei/effervescence/
To add this event to your personal calendar, simply click on this link:
http://www.egroups.com/cal?md=copy&prevMd=d&day=1&eid=217494"
If you have any other comments, you can reply to this message.
eGroups.com Calendar
Salut vim-fr,
test ok.
bye.
--
chadom
http://I.am/chadom/
"Il vaut mieux fermer sa gueule et passer pour un con, que de l'ouvrir et ne
laisser aucun doute a ce sujet !..."