# HG changeset patch # User vimboss # Date 1141339752 0 # Node ID 2fae45239fb3d98a45e13a47cc0f2a59e5b7f938 # Parent 8a99b25de218a8b656793e0e07a390290a8e021c updated for version 7.0212 diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.0aa. Last change: 2006 Feb 28 +*eval.txt* For Vim version 7.0aa. Last change: 2006 Mar 02 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1521,7 +1521,9 @@ count( {list}, {expr} [, {start} [, {ic} Number count how many {expr} are in {list} cscope_connection( [{num} , {dbpath} [, {prepend}]]) Number checks existence of cscope connection -cursor( {lnum}, {col}) Number position cursor at {lnum}, {col} +cursor( {lnum}, {col} [, {coladd}]) + Number move cursor to {lnum}, {col}, {coladd} +cursor( {list}) Number move cursor to position in {list} deepcopy( {expr}) any make a full copy of {expr} delete( {fname}) Number delete file {fname} did_filetype() Number TRUE if FileType autocommand event used @@ -1568,6 +1570,7 @@ getftype( {fname}) String description o getline( {lnum}) String line {lnum} of current buffer getline( {lnum}, {end}) List lines {lnum} to {end} of current buffer getloclist({nr}) List list of location list items +getpos( {expr}) List position of cursor, mark, etc. getqflist() List list of quickfix items getreg( [{regname} [, 1]]) String contents of register getregtype( [{regname}]) String type of register @@ -1929,6 +1932,8 @@ col({expr}) The result is a Number, whic number of characters in the cursor line plus one) 'x position of mark x (if the mark is not set, 0 is returned) + To get the line number use |col()|. To get both use + |getpos()|. For the screen column position use |virtcol()|. Note that only marks in the current file can be used. Examples: > @@ -2068,9 +2073,14 @@ cscope_connection([{num} , {dbpath} [, { cscope_connection(4, "out", "local") 0 cscope_connection(4, "cscope.out", "/usr/local") 1 < -cursor({lnum}, {col}) *cursor()* +cursor({lnum}, {col} [, {off}]) *cursor()* +cursor({list}) Positions the cursor at the column {col} in the line {lnum}. The first column is one. + When there is one argument {list} this is used as a |List| + with two or three items {lnum}, {col} and {off}. This is + useful to move the cursor to a position obtained with + |getpos()|. Does not change the jumplist. If {lnum} is greater than the number of lines in the buffer, the cursor will be positioned at the last line in the buffer. @@ -2079,6 +2089,9 @@ cursor({lnum}, {col}) *cursor()* the cursor will be positioned at the last character in the line. If {col} is zero, the cursor will stay in the current column. + When 'virtualedit' is used {off} specifies the offset in + screen columns from the start of the character. E.g., a + position within a Tab or after the last character. deepcopy({expr}[, {noref}]) *deepcopy()* *E698* @@ -3229,6 +3242,8 @@ line({expr}) The result is a Number, whi w0 first line visible in current window w$ last line visible in current window Note that only marks in the current file can be used. + To get the column number use |col()|. To get both use + |getpos()|. Examples: > line(".") line number of the cursor line("'t") line number of mark t @@ -3372,7 +3387,10 @@ match({expr}, {pat}[, {start}[, {count}] :echo match("testing", "t", 2) < result is "3". For a String, if {start} > 0 then it is like the string starts - {start} bytes later, thus "^" will match there. + {start} bytes later, thus "^" will match at {start}. Except + when {count} is given, then it's like matches before the + {start} byte are ignored (this is a bit complicated to keep it + backwards compatible). For a String, if {start} < 0, it will be set to 0. For a list the index is counted from the end. If {start} is out of range ({start} > strlen({expr}) for a @@ -3383,6 +3401,8 @@ match({expr}, {pat}[, {start}[, {count}] character further. Thus this example results in 1: > echo match("testing", "..", 0, 2) < In a |List| the search continues in the next item. + Note that when {count} is added the way {start} works changes, + see above. See |pattern| for the patterns that are accepted. The 'ignorecase' option is used to set the ignore-caseness of @@ -3489,6 +3509,19 @@ nr2char({expr}) *nr2char()* characters. nr2char(0) is a real NUL and terminates the string, thus results in an empty string. + *getpos()* +getpos({expr}) The result is a |List| with three numbers: [lnum, col, off]. + This is the file position given with {expr}. For the accepted + positions see |line()|. + The "off" number is zero, unless 'virtualedit' is used. Then + it is the offset in screen columns from the start of the + character. E.g., a position within a Tab or after the last + character. + This can be used to save and restore the cursor position: > + let save_cursor = getpos(".") + MoveTheCursorAround + call cursor(save_cursor) + prevnonblank({lnum}) *prevnonblank()* Return the line number of the first line at or above {lnum} that is not blank. Example: > @@ -4616,6 +4649,10 @@ virtcol({expr}) *virtcol()* For the use of {expr} see |col()|. Additionally you can use [lnum, col]: a |List| with the line and column number. When "lnum" or "col" is out of range then virtcol() returns zero. + When 'virtualedit' is used it can be [lnum, col, off], where + "off" is the offset in screen columns from the start of the + character. E.g., a position within a Tab or after the last + character. For the byte position use |col()|. When Virtual editing is active in the current mode, a position beyond the end of the line can be returned. |'virtualedit'| diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 7.0aa. Last change: 2006 Mar 01 +*options.txt* For Vim version 7.0aa. Last change: 2006 Mar 02 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1576,6 +1576,7 @@ A jump table for the options with a shor u scan the unloaded buffers that are in the buffer list U scan the buffers that are not in the buffer list k scan the files given with the 'dictionary' option + kspell use the currently active spell checking |spell| k{dict} scan the file {dict}. Several "k" flags can be given, patterns are valid too. For example: > :set cpt=k/usr/dict/*,k~/spanish @@ -2085,6 +2086,8 @@ A jump table for the options with a shor contain a list of words. This can be one word per line, or several words per line, separated by non-keyword characters (white space is preferred). Maximum line length is 510 bytes. + When this option is empty, or an entry "spell" is present, spell + checking is enabled the currently active spelling is used. |spell| To include a comma in a file name precede it with a backslash. Spaces after a comma are ignored, otherwise spaces are included in the file name. See |option-backslash| about using backslashes. diff --git a/runtime/doc/tags b/runtime/doc/tags --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -5349,6 +5349,7 @@ getftime() eval.txt /*getftime()* getftype() eval.txt /*getftype()* getline() eval.txt /*getline()* getloclist() eval.txt /*getloclist()* +getpos() eval.txt /*getpos()* getqflist() eval.txt /*getqflist()* getreg() eval.txt /*getreg()* getregtype() eval.txt /*getregtype()* @@ -5475,7 +5476,6 @@ hebrew hebrew.txt /*hebrew* hebrew.txt hebrew.txt /*hebrew.txt* help various.txt /*help* help-context help.txt /*help-context* -help-tags tags 1 help-translated various.txt /*help-translated* help-xterm-window various.txt /*help-xterm-window* help.txt help.txt /*help.txt* diff --git a/runtime/doc/vim-fr.UTF-8.1 b/runtime/doc/vim-fr.UTF-8.1 --- a/runtime/doc/vim-fr.UTF-8.1 +++ b/runtime/doc/vim-fr.UTF-8.1 @@ -0,0 +1,574 @@ +.\" Traduction Lundi 7 août 2000 par Richard Hitier +.\" (richard.hitier@dial.oleane.com) +.\" Mise à jour de la traduction par David Blanchet +.\" (david.blanchet@free.fr) 2005-01-17 +.\" +.TH VIM 1 "22 Février 2002" +.SH NOM +vim \- Vi IMproved, éditeur de texte pour programmeurs +.SH SYNOPSIS +.br +.B vim +[options] [fichier ...] +.br +.B vim +[options] \- +.br +.B vim +[options] \-t marqueur +.br +.B vim +[options] \-q [fichiererreurs] +.PP +.br +.B ex +.br +.B view +.br +.B gvim +.B gview +.B evim +.B eview +.br +.B rvim +.B rview +.B rgvim +.B rgview +.SH DESCRIPTION +.B Vim +est un éditeur de texte proposant une compatibilité ascendante +avec Vi. Il permet d'éditer n'importe quel type de texte brut. +Il est particulièrement adapté pour l'édition des programmes. +.PP +Il comporte de nombreuses améliorations par rapport à Vi : annulation sur +plusieurs niveaux, fenêtres et tampons multiples, coloration syntaxique, +édition en ligne de commande, complètement des noms de fichiers, aide en +ligne, sélection visuelle, etc. +Voir ":help vi_diff.txt" pour un résumé des différences entre +.B Vim +et Vi. +.PP +Pendant l'exécution de +.B Vim +\, une aide abondante est accessible au travers du système d'aide +en ligne, grâce à la commande ":help". +Voir la section AIDE EN LIGNE plus bas. +.PP +Le plus souvent +.B Vim +est démarré pour éditer un unique fichier avec la commande +.PP + vim fichier +.PP +Plus généralement, +.B Vim +est lancé avec : +.PP + vim [options] [listefichiers] +.PP +Si la listefichiers est omise, l'éditeur démarre avec un tampon vide. +Autrement, l'une des quatre méthodes suivantes vous permettra de choisir +un ou plusieurs fichiers à éditer. +.TP 12 +fichier ... +Une liste de noms de fichiers. +Le premier sera le fichier courant et sera lu dans le tampon. +Le curseur sera placé sur la première ligne du tampon. +Vous pouvez passer aux autres fichiers avec la commande ":next". +Pour éditer un fichier débutant par un tiret, faites précéder la +liste de fichiers par "\-\-". +.TP +\- +Le fichier à éditer est lu sur l'entrée standard (stdin). Les commandes sont +lues depuis stderr, qui devrait être un terminal. +.TP +\-t {marqueur} +Le fichier à éditer et la position initiale du curseur dépendent +d'un "marqueur", qui est une sorte d'étiquette. +{marqueur} est recherché dans le fichier des marqueurs, le fichier correspondant +devient le fichier courant et la commande associée est exécutée. +Principalement utile pour les programmes en C ; dans ce cas, {marqueur} +peut être le nom d'une fonction. +Au final, le fichier contenant cette fonction devient le fichier +courant et le curseur est placé au début de la fonction. +Voir ":help tag\-commands". +.TP +\-q [fichiererreurs] +Démarre en mode Mise-au-point (QuickFix). +Le fichier [fichiererreurs] est lu et la première erreur est affichée. +Si [fichiererreurs] est omis, le nom du fichier est lu dans +l'option 'errorfile' ("AztecC.Err" par défaut sur Amiga, "errors.err" sur les +autres systèmes). +La commande ":cn" permet de sauter aux erreurs suivantes. +Voir ":help quickfix". +.PP +.B Vim +se comporte différemment selon le nom de la commande (l'exécutable peut +cependant être le même fichier). +.TP 10 +vim +La façon "normale", le comportement par défaut. +.TP +ex +Démarre en mode Ex. +La commande ":vi" permet de passer en mode Normal. +Ce mode est également accessible avec l'argument "\-e". +.TP +view +Démarre en mode Lecture-Seule. Vous êtes protégé de l'écriture accidentelle +des fichiers. Ce mode est également accessible avec l'argument "\-R". +.TP +gvim gview +La version graphique. +Ouvre une nouvelle fenêtre. +Également accessible avec l'argument "\-g". +.TP +evim eview +La version graphique en mode Débutant (easy). +Ouvre une nouvelle fenêtre. +Également accessible avec l'argument "\-y". +.TP +rvim rview rgvim rgview +Comme ci-dessus, mais avec des restrictions. Il vous sera impossible de +lancer des commandes du shell, ou de suspendre +.B Vim. +Également accessible avec l'argument "\-Z". +.SH OPTIONS +Les options peuvent être spécifiées dans n'importe quel ordre, +avant ou après les noms de fichiers. Les options sans arguments +peuvent être combinées après un unique tiret. +.TP 12 ++[num] +Place le curseur sur la ligne "num" dans le premier fichier. +Si "num" est omis, le curseur sera placé sur la dernière ligne. +.TP ++/{motif} +Place le curseur sur la première occurence de {motif} dans le premier fichier. +Voir ":help search\-pattern" pour connaître les motifs de recherches +disponibles. +.TP ++{commande} +.TP +\-c {commande} +Exécute {commande} après la lecture du premier fichier. +{commande} est interprétée comme une commande Ex. +Si la {commande} contient des espaces, elle doit être entourée +de doubles-apostrophes (cela dépend du shell utilisé). +Exemple: Vim "+set si" main.c +.br +Note : vous pouvez utiliser jusqu'à 10 commandes "+" ou "\-c". +.TP +\-S {fichier} +Source {fichier} après la lecture du premier fichier. +C'est équivalent à \-c "source {fichier}". +{fichier} ne peut pas débuter par un '\-'. +Si {fichier} est omis, "Session.vim" est utilisé (cela ne fonctionne que si +\-S est le dernier argument). +.TP +\-\-cmd {commande} +Comme "\-c", mais la commande est exécutée juste avant de traiter les fichiers +vimrc. +Vous pouvez utiliser jusqu'à 10 de ces commandes, indépendamment des +commandes "\-c". +.TP +\-A +Si +.B Vim +a été compilé avec le support de la fonctionnalité ARABIC pour l'édition de +fichiers de droite à gauche et les claviers arabes, cette option lance +.B Vim +en mode Arabe, c.-à-d. que l'option 'arabic' est activée. +Sinon, un message d'erreur est émis et +.B Vim +quitte. +.TP +\-b +Mode Binaire. +Active plusieurs options pour permettre l'édition +d'un fichier binaire ou exécutable. +.TP +\-C +Compatible. Active l'option 'compatible'. +.B Vim +se comportera alors quasiment comme Vi, même s'il existe un fichier .vimrc. +.TP +\-d +Démarre en mode Diff. +Deux ou trois noms de fichiers doivent être spécifiés. +.B Vim +ouvrira alors tous les fichiers et affichera leurs différences. +Fonctionne comme vimdiff(1). +.TP +\-d {périph} +Ouvre {périph} pour l'utiliser comme terminal. +Uniquement sur Amiga. +Exemple: +"\-d con:20/30/600/150". +.TP +\-D +Debogage. Passe en mode Débogage lors de l'exécution de la première commande +d'un script. +.TP +\-e +Démarre +.B Vim +en mode Ex, comme si l'exécutable s'appelait "ex". +.TP +\-E +Démarre +.B Vim +en mode Ex amélioré, comme si l'exécutable "exim" avait été invoqué. +.TP +\-f +Premier-plan (Foreground). Pour la version graphique, +.B Vim +ne forke pas et ne se détache pas du shell dans lequel il a été invoqué. +Sur Amiga, +.B Vim +n'est pas relancé pour ouvrir une nouvelle fenêtre. +Cette option est utile quand +.B Vim +est exécuté par un programme qui attend la fin de la session d'édition +(par exemple mail). +Sur Amiga, les commandes ":sh" et ":!" ne fonctionneront pas. +.TP +\-\-nofork +Premier-plan (Foreground). Pour la version graphique, +.B Vim +ne forkera pas et ne se détachera pas du shell dans lequel il a été lancé. +.TP +\-F +Si +.B Vim +a été compilé avec le support de la fonctionnalité FKMAP pour l'édition de +fichiers de droite à gauche et les claviers farsi, cette option lance +.B Vim +en mode Farsi, c.-à-d. avec les options 'fkmap' et 'rightleft' activées. +Sinon, un message d'erreur est émis et +.B Vim +quitte. +.TP +\-g +Si +.B Vim +a été compilé avec le support de l'IHM graphique, cette option active +l'IHM graphique. Si le support n'a pas été compilé, un message d'erreur +est émis et +.B Vim +quitte. +.TP +\-h +Donne une aide succinte sur les arguments et les options de la ligne de +commande. Après cela, +.B Vim +quitte. +.TP +\-H +Si +.B Vim +a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de +fichiers de droite à gauche et les claviers hébreu, cette option lance +.B Vim +en mode Hebreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées. +Sinon, un message d'erreur est émis et +.B Vim +quitte. +.TP +\-i {viminfo} +Lorsque l'utilisation d'un fichier viminfo est activée, cette option indique +le nom de fichier à utiliser à la place de "~/.viminfo" par défaut. +Il est possible d'empêcher l'utilisation d'un fichier ".viminfo", en +spécifiant le nom de fichier "NONE". +.TP +\-L +Comme \-r. +.TP +\-l +Mode Lisp. +Active les options 'lisp' et 'showmatch'. +.TP +\-m +Empêche la modification des fichiers. +Désactive l'option 'write'. +Vous pouvez toujours modifier le tampon, mais il vous sera impossible +d'écrire le fichier. +.TP +\-M +N'autorise aucune modification. les options 'modifiable' et 'write' sont +desactivées, de sorte que les changements ne sont pas autorisés et que les +fichiers ne peuvent pas être écrits. Note : ces options peuvent être activées +pour autoriser les modifications. +.TP +\-N +Mode Non-compatible. Désactive l'option 'compatible'. +Cela améliorera le comportement de +.B Vim +\, mais il sera moins conforme à celui de Vi, même s'il n'existe aucun +fichier ".vimrc". +.TP +\-n +N'utilise pas de fichier d'échange (swapfile). +Le recouvrement après un plantage sera impossible. +Utile pour éditer un fichier sur un support très lent (disquette par ex.). +Également activable avec ":set uc=0". +Il est possible de l'annuler avec ":set uc=200". +.TP +\-nb +Devient un serveur d'édition pour NetBeans. Consulter la documentation à ce +sujet pour davantage de détails. +.TP +\-o[N] +Ouvre N fenêtres les unes au-dessus des autres. +Quand N est omis, ouvre une fenêtre pour chaque fichier. +.TP +\-O[N] +Ouvre N fenêtres côte à côte. +Quand N est omis, ouvre une fenêtre pour chaque fichier fichier. +.TP +\-R +Mode Lecture-Seule. +Active l'option 'readonly'. +Vous pouvez toujours éditer le tampon, mais il vous sera impossible de +d'écraser accidentellement un fichier. +Si vous voulez écraser un fichier, ajoutez un point d'exclamation à la commande +Ex, comme dans ":w!". +L'option \-R impose l'option \-n (voir ci-dessus). +L'option 'readonly' peut être désactivée avec ":set noro". +Voir ":help 'readonly'". +.TP +\-r +Donne la liste des fichiers d'échange, avec des informations pour les utiliser +à des fins de recouvrement. +.TP +\-r {file} +Mode Recouvrement. +Utilise le fichier d'échange pour récouvrer d'une session d'édition plantée. +Le fichier d'échange est un fichier avec le même nom que le fichier texte, +suivi du suffixe ".swp". +Voir ":help recovery". +.TP +\-s +Mode Silencieux. Disponible uniquement quand +.B Vim +est lancé en tant que "ex" ou quand l'option "\-e" a été spécifiée avant +l'option "\-s". +.TP +\-s {scriptEntrée} +Lit le fichier de script {scriptEntrée}. +Les caractères du fichier sont interprétés comme si vous les tapiez. +La commande ":source! {scriptEntrée}" donne le même résultat. +Si la fin du fichier est atteinte avant que l'éditeur quitte, les caractères +suivants sont lus depuis le clavier. +.TP +\-T {terminal} +Indique à +.B Vim +le nom du terminal utilisé. +Cela n'est requis que lorsque la détection automatique échoue. +Le {terminal} devrait être connu de +.B Vim +(intégré) ou défini dans le fichier termcap ou terminfo. +.TP +\-u {vimrc} +Utilise les commandes du fichier {vimrc} pour les initialisations. +Toutes les autres initialisations sont omises. +À utiliser pour éditer un type de fichiers particulier. +Cela permet aussi d'omettre toute initialisation en spécifiant le nom de +fichier "NONE". +Voir ":help initialization" dans Vim pour davantage de détails. +.TP +\-U {gvimrc} +Utilise les commandes du fichier {gvimrc} pour l'initialisation de l'IHM +graphique. +Toutes les autres initialisations graphiques sont omises. +Cela permet aussi d'omettre toute initialisation graphique en spécifiant le nom +de fichier "NONE". +Voir ":help gui\-init" dans Vim pour davantage de détails. +.TP +\-V[N] +Mode Verbeux. +Donne des messages à propos des fichiers sourcés, ainsi que sur la lecture +et les écritures dans le fichier viminfo. le nombre optionnel N précise la +valeur de l'option 'verbose' (10 par défaut). +.TP +\-v +Démarre +.B Vim +en mode Vi, comme si l'exécutable s'appelait "vi". Cela n'a d'effet que si +l'exécutable invoqué est "ex". +.TP +\-w {scriptSortie} +Tous les caractères que vous tapez sont enregistrés dans le fichier +{scriptSortie}, jusqu'à ce que vous quittiez +.B Vim. +C'est utile quand vous voulez créer un fichier de script à utiliser avec +"vim \-s" ou ":source!". +Si le fichier {scriptSortie} existe, les caractères sont ajoutés à la fin. +.TP +\-W {scriptSortie} +Comme \-w, mais un fichier existant sera écrasé. +.TP +\-x +Chiffre les fichiers lors de l'écriture. Une clé de chiffrement sera demandée. +.TP +\-X +Ne se connecte pas au serveur X. Accélère le temps de démarrage dans un +terminal, mais le titre de la fenêtre et le presse-papier seront inaccessibles. +.TP +\-y +Démarre +.B Vim +en mode Débutant (easy), comme si l'exécutable s'appelait "evim" ou "eview". +Donne à +.B Vim +un comportement plus proche des éditeurs « cliquez-tapez ». +.TP +\-Z +Mode restreint. Fonctionne comme si l'exécutable commençait par la lettre 'r'. +.TP +\-\- +Délimite la fin des options. +Les arguments qui suivent seront considérés comme des noms de fichiers. +Cela permet d'éditer des fichier débutant par un '\-'. +.TP +\-\-echo\-wid +IHM graphique GTK uniquement : retourne la Window ID sur stdout. +.TP +\-\-help +Donne un message d'aide et quitte, comme "\-h". +.TP +\-\-literal +Prend les arguments de noms de fichiers littéralement, sans étendre les +jokers. N'a aucun effet sur Unix, où le shell étend les jokers. +.TP +\-\-noplugin +Ne charge pas les greffons. Implicite avec \-u NONE. +.TP +\-\-remote +Se connecte à un serveur Vim et lui fait éditer les fichiers spécifiés dans +le reste des arguments. Si aucun serveur n'est trouvé, un avertissement est +émis et les fichiers sont édités dans le Vim courant. +.TP +\-\-remote\-expr {expr} +Se connecte à un serveur Vim, y évalue {expr} et affiche le résultat sur la +sortie standard (stdout). +.TP +\-\-remote\-send {touches} +Se connecte à un serveur Vim et y envoie {touches}. +.TP +\-\-remote\-silent +Comme \-\-remote, mais sans émettre d'avertissement si aucun serveur n'est +trouvé. +.TP +\-\-remote\-wait +Comme \-\-remote, mais Vim ne quitte pas tant que le fichier est en cours +d'édition. +.TP +\-\-remote\-wait\-silent +Comme \-\-remote\-wait, mais sans émettre d'avertissement si aucun serveur n'est +trouvé. +.TP +\-\-serverlist +Donne la liste des noms de tous les serveurs Vim disponibles. +.TP +\-\-servername {nom} +Utilise {nom} pour le nom de serveur. Ce nom est donné au Vim courant, à moins +qu'il ne soit utilisé avec un argument \-\-remote. Dans ce cas, il s'agit du nom +du serveur auquel se connecter. +.TP +\-\-socketid {id} +IHM graphique GTK+ uniquement : utilise le mécanisme GtkPlug pour faire +fonctionner gvim dans une autre fenêtre. +.TP +\-\-version +Affiche les informations sur la version puis quitte. +.SH AIDE EN LIGNE +Taper ":help" dans +.B Vim +pour commencer. +Taper ":help sujet" pour obtenir de l'aide sur un sujet précis. +Par exemple : ":help ZZ" pour consulter l'aide sur la commande "ZZ". +Utiliser et CTRL\-D pour compléter les sujets (":help +cmdline\-completion"). +Des marqueurs sont inclus dans l'aide et vous permettent de sauter d'un endroit +à un autre (comme des liens hypertextes, voir ":help"). +L'ensemble des fichiers de la documentation peut être consulté de cette +façon, par exemple ":help syntax.txt". +.SH FICHIERS +.TP 15 +/usr/local/lib/vim/doc/*.txt +Les fichiers de la documentation de +.B Vim. +Utiliser ":help doc\-file\-list" pour obtenir la liste complète. +.TP +/usr/local/lib/vim/doc/tags +Le fichier des marqueurs utilisé pour trouver les informations dans les +fichiers de la documentation. +.TP +/usr/local/lib/vim/syntax/syntax.vim +Initialisation de la syntaxe pour l'ensemble du système. +.TP +/usr/local/lib/vim/syntax/*.vim +Fichiers de syntaxe pour différents langages. +.TP +/usr/local/lib/vim/vimrc +Initialisation de +.B Vim +pour l'ensemble du système. +.TP +/usr/local/lib/vim/gvimrc +Initialisation de gvim pour l'ensemble du système. +.TP +/usr/local/lib/vim/optwin.vim +Script utilisé pour la commande ":options", une manière pratique de consulter +et de modifier les options. +.TP +/usr/local/lib/vim/menu.vim +Initialisation des menus de gvim pour l'ensemble du système. +.TP +/usr/local/lib/vim/bugreport.vim +Script pour générer un rapport de bogue. Voir ":help bugs". +.TP +/usr/local/lib/vim/filetype.vim +Script pour détecter le type d'un fichier d'après son nom. +Voir ":help 'filetype'". +.TP +/usr/local/lib/vim/scripts.vim +Script pour détecter le type d'un fichier d'après son contenu. +Voir ":help 'filetype'". +.TP +/usr/local/lib/vim/*.ps +Fichiers utilisés pour l'impression PostScript. +.PP +Pour disposer d'informations récentes, consulter le site Internet de VIM : +.br + +.SH VOIR AUSSI +vimtutor(1) +.SH AUTEUR +La majeure partie de +.B Vim +a été écrite par Bram Moolenaar, avec l'aide de nombreux autres contributeurs. +Voir ":help credits" dans +.B Vim. +.br +.B Vim +est basé sur Stevie, réalisé par Tim Thompson, +Tony Andrews et G.R. (Fred) Walter. +Toutefois, pratiquement rien du code original ne subsiste. +.SH BOGUES +Probablement. +Voir ":help todo" pour consulter la liste des problèmes connus. +.PP +NOTE : Remarquez que bon nombre de points, qui pourraient être considérés comme +des bugs par certains, sont en fait dus à une reproduction trop fidèle +du comportement de Vi. Et si vous pensez que d'autres points sont des +bugs "parce que Vi le fait différemment", vous devriez jeter un oeil +attentif au fichier vi_diff.txt (ou taper ":help vi_diff.txt" dans Vim). +Regardez aussi les options 'compatible' et 'coptions'. +.SH TRADUCTION +Cette page de manuel a été traduite par Richard Hitier. + 2000-08-07. +.br +Cette page de manuel a été mise à jour par David Blanchet. + 2005-01-17. diff --git a/src/auto/configure b/src/auto/configure --- a/src/auto/configure +++ b/src/auto/configure @@ -3399,9 +3399,6 @@ fi CFLAGS=`echo "$CFLAGS" | sed 's/-O[23456789]/-Oz/'` fi - CPPFLAGS="$CPPFLAGS $MAC_OSX_ARCH" - LDFLAGS="$LDFLAGS $MAC_OSX_ARCH" - else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 diff --git a/src/configure.in b/src/configure.in --- a/src/configure.in +++ b/src/configure.in @@ -171,9 +171,6 @@ if test "`(uname) 2>/dev/null`" = Darwin CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'` fi - CPPFLAGS="$CPPFLAGS $MAC_OSX_ARCH" - LDFLAGS="$LDFLAGS $MAC_OSX_ARCH" - else AC_MSG_RESULT(no) fi diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -131,6 +131,7 @@ static void ins_compl_del_pum __ARGS((vo static int pum_wanted __ARGS((void)); static int pum_two_or_more __ARGS((void)); static void ins_compl_dictionaries __ARGS((char_u *dict, char_u *pat, int flags, int thesaurus)); +static void ins_compl_files __ARGS((int count, char_u **files, int thesaurus, int flags, regmatch_T *regmatch, char_u *buf, int *dir)); static char_u *find_line_end __ARGS((char_u *ptr)); static void ins_compl_free __ARGS((void)); static void ins_compl_clear __ARGS((void)); @@ -1906,7 +1907,8 @@ ins_ctrl_x() has_compl_option(dict_opt) int dict_opt; { - if (dict_opt ? (*curbuf->b_p_dict == NUL && *p_dict == NUL) + if (dict_opt ? (*curbuf->b_p_dict == NUL && *p_dict == NUL + && !curwin->w_p_spell) : (*curbuf->b_p_tsr == NUL && *p_tsr == NUL)) { ctrl_x_mode = 0; @@ -2504,28 +2506,42 @@ ins_compl_show_pum() #define DICT_EXACT (2) /* "dict" is the exact name of a file */ /* - * Add any identifiers that match the given pattern to the list of - * completions. + * Add any identifiers that match the given pattern in the list of dictionary + * files "dict_start" to the list of completions. */ static void -ins_compl_dictionaries(dict, pat, flags, thesaurus) - char_u *dict; +ins_compl_dictionaries(dict_start, pat, flags, thesaurus) + char_u *dict_start; char_u *pat; int flags; /* DICT_FIRST and/or DICT_EXACT */ - int thesaurus; -{ + int thesaurus; /* Thesaurus completion */ +{ + char_u *dict = dict_start; char_u *ptr; char_u *buf; - FILE *fp; regmatch_T regmatch; - int add_r; char_u **files; int count; int i; int save_p_scs; int dir = compl_direction; + if (*dict == NUL) + { +#ifdef FEAT_SYN_HL + /* When 'dictionary' is empty and spell checking is enabled use + * "spell". */ + if (!thesaurus && curwin->w_p_spell) + dict = (char_u *)"spell"; + else +#endif + return; + } + buf = alloc(LSIZE); + if (buf == NULL) + return; + /* If 'infercase' is set, don't use 'smartcase' here */ save_p_scs = p_scs; if (curbuf->b_p_inf) @@ -2545,12 +2561,15 @@ ins_compl_dictionaries(dict, pat, flags, vim_free(ptr); } else + { regmatch.regprog = vim_regcomp(pat, p_magic ? RE_MAGIC : 0); + if (regmatch.regprog == NULL) + goto theend; + } /* ignore case depends on 'ignorecase', 'smartcase' and "pat" */ regmatch.rm_ic = ignorecase(pat); - while (buf != NULL && regmatch.regprog != NULL && *dict != NUL - && !got_int && !compl_interrupted) + while (*dict != NUL && !got_int && !compl_interrupted) { /* copy one dictionary file name into buf */ if (flags == DICT_EXACT) @@ -2564,106 +2583,141 @@ ins_compl_dictionaries(dict, pat, flags, * backticks (for security, the 'dict' option may have been set in * a modeline). */ copy_option_part(&dict, buf, LSIZE, ","); - if (vim_strchr(buf, '`') != NULL + if (!thesaurus && STRCMP(buf, "spell") == 0) + count = -1; + else if (vim_strchr(buf, '`') != NULL || expand_wildcards(1, &buf, &count, &files, EW_FILE|EW_SILENT) != OK) count = 0; } - for (i = 0; i < count && !got_int && !compl_interrupted; i++) - { - fp = mch_fopen((char *)files[i], "r"); /* open dictionary file */ + if (count == -1) + { + /* Skip "\<" in the pattern, we don't use it as a RE. */ + if (pat[0] == '\\' && pat[1] == '<') + ptr = pat + 2; + else + ptr = pat; + spell_dump_compl(curbuf, ptr, regmatch.rm_ic, &dir, 0); + } + else + { + ins_compl_files(count, files, thesaurus, flags, + ®match, buf, &dir); if (flags != DICT_EXACT) - { - vim_snprintf((char *)IObuff, IOSIZE, - _("Scanning dictionary: %s"), (char *)files[i]); - msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); - } - - if (fp != NULL) - { - /* - * Read dictionary file line by line. - * Check each line for a match. - */ - while (!got_int && !compl_interrupted - && !vim_fgets(buf, LSIZE, fp)) - { - ptr = buf; - while (vim_regexec(®match, buf, (colnr_T)(ptr - buf))) - { - ptr = regmatch.startp[0]; - if (ctrl_x_mode == CTRL_X_WHOLE_LINE) - ptr = find_line_end(ptr); - else - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(regmatch.startp[0], - (int)(ptr - regmatch.startp[0]), - p_ic, files[i], dir, 0); - if (thesaurus) - { - char_u *wstart; - - /* - * Add the other matches on the line - */ - while (!got_int) - { - /* Find start of the next word. Skip white - * space and punctuation. */ - ptr = find_word_start(ptr); - if (*ptr == NUL || *ptr == NL) - break; - wstart = ptr; - - /* Find end of the word and add it. */ -#ifdef FEAT_MBYTE - if (has_mbyte) - /* Japanese words may have characters in - * different classes, only separate words - * with single-byte non-word characters. */ - while (*ptr != NUL) - { - int l = (*mb_ptr2len)(ptr); - - if (l < 2 && !vim_iswordc(*ptr)) - break; - ptr += l; - } - else -#endif - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(wstart, - (int)(ptr - wstart), - p_ic, files[i], dir, 0); - } - } - if (add_r == OK) - /* if dir was BACKWARD then honor it just once */ - dir = FORWARD; - else if (add_r == FAIL) - break; - /* avoid expensive call to vim_regexec() when at end - * of line */ - if (*ptr == '\n' || got_int) - break; - } - line_breakcheck(); - ins_compl_check_keys(50); - } - fclose(fp); - } - } - if (flags != DICT_EXACT) - FreeWild(count, files); - if (flags) + FreeWild(count, files); + } + if (flags != 0) break; } + +theend: p_scs = save_p_scs; vim_free(regmatch.regprog); vim_free(buf); } + static void +ins_compl_files(count, files, thesaurus, flags, regmatch, buf, dir) + int count; + char_u **files; + int thesaurus; + int flags; + regmatch_T *regmatch; + char_u *buf; + int *dir; +{ + char_u *ptr; + int i; + FILE *fp; + int add_r; + + for (i = 0; i < count && !got_int && !compl_interrupted; i++) + { + fp = mch_fopen((char *)files[i], "r"); /* open dictionary file */ + if (flags != DICT_EXACT) + { + vim_snprintf((char *)IObuff, IOSIZE, + _("Scanning dictionary: %s"), (char *)files[i]); + msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + + if (fp != NULL) + { + /* + * Read dictionary file line by line. + * Check each line for a match. + */ + while (!got_int && !compl_interrupted + && !vim_fgets(buf, LSIZE, fp)) + { + ptr = buf; + while (vim_regexec(regmatch, buf, (colnr_T)(ptr - buf))) + { + ptr = regmatch->startp[0]; + if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + ptr = find_line_end(ptr); + else + ptr = find_word_end(ptr); + add_r = ins_compl_add_infercase(regmatch->startp[0], + (int)(ptr - regmatch->startp[0]), + p_ic, files[i], *dir, 0); + if (thesaurus) + { + char_u *wstart; + + /* + * Add the other matches on the line + */ + while (!got_int) + { + /* Find start of the next word. Skip white + * space and punctuation. */ + ptr = find_word_start(ptr); + if (*ptr == NUL || *ptr == NL) + break; + wstart = ptr; + + /* Find end of the word and add it. */ +#ifdef FEAT_MBYTE + if (has_mbyte) + /* Japanese words may have characters in + * different classes, only separate words + * with single-byte non-word characters. */ + while (*ptr != NUL) + { + int l = (*mb_ptr2len)(ptr); + + if (l < 2 && !vim_iswordc(*ptr)) + break; + ptr += l; + } + else +#endif + ptr = find_word_end(ptr); + add_r = ins_compl_add_infercase(wstart, + (int)(ptr - wstart), + p_ic, files[i], *dir, 0); + } + } + if (add_r == OK) + /* if dir was BACKWARD then honor it just once */ + *dir = FORWARD; + else if (add_r == FAIL) + break; + /* avoid expensive call to vim_regexec() when at end + * of line */ + if (*ptr == '\n' || got_int) + break; + } + line_breakcheck(); + ins_compl_check_keys(50); + } + fclose(fp); + } + } +} + /* * Find the start of the next word. * Returns a pointer to the first char of the word. Also stops at a NUL. @@ -3444,7 +3498,7 @@ ins_compl_get_exp(ini) case CTRL_X_DICTIONARY: case CTRL_X_THESAURUS: ins_compl_dictionaries( - dict ? dict + dict != NULL ? dict : (type == CTRL_X_THESAURUS ? (*curbuf->b_p_tsr == NUL ? p_tsr @@ -3453,7 +3507,8 @@ ins_compl_get_exp(ini) ? p_dict : curbuf->b_p_dict)), compl_pattern, - dict ? dict_f : 0, type == CTRL_X_THESAURUS); + dict != NULL ? dict_f + : 0, type == CTRL_X_THESAURUS); dict = NULL; break; diff --git a/src/proto/spell.pro b/src/proto/spell.pro --- a/src/proto/spell.pro +++ b/src/proto/spell.pro @@ -17,6 +17,7 @@ void ex_spellrepall __ARGS((exarg_T *eap void spell_suggest_list __ARGS((garray_T *gap, char_u *word, int maxcount, int need_cap, int interactive)); char_u *eval_soundfold __ARGS((char_u *word)); void ex_spelldump __ARGS((exarg_T *eap)); +void spell_dump_compl __ARGS((buf_T *buf, char_u *pat, int ic, int *dir, int dumpflags_arg)); char_u *spell_to_word_end __ARGS((char_u *start, buf_T *buf)); int spell_word_start __ARGS((int startcol)); void spell_expand_check_cap __ARGS((colnr_T col)); diff --git a/src/testdir/test58.ok b/src/testdir/test58.ok --- a/src/testdir/test58.ok +++ b/src/testdir/test58.ok @@ -256,3 +256,16 @@ taillead ['tail lead', 'tail'] leadprobar ['leadprebar', 'lead prebar', 'leadbar'] + +test 8-8 +# file: Xtest.latin1.spl +bar +faabar +foo +------- +bad +['bar', 'foo'] +foobar +['faabar', 'foo bar', 'bar'] +barfoo +['bar foo', 'bar', 'foo'] diff --git a/src/version.h b/src/version.h --- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 1)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 1, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 2)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 2, compiled "