Il s'agit de la commande viposix qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
vi — éditeur d'affichage orienté écran (visuel)
SYNOPSIS
vi [−rR] [-c commander] [-t chaîne de balise] [-w Taille] [filet ]
DESCRIPTION
Cet utilitaire doit être fourni sur les systèmes prenant en charge les utilitaires de portabilité utilisateur
et définissez le symbole POSIX2_CHAR_TERM. Sur d'autres systèmes, il est facultatif.
Pour vi (visuel) est un éditeur de texte orienté écran. Seuls les modes ouvert et visuel
de l'éditeur sont décrits dans POSIX.1‐2008 ; voir l'éditeur de ligne ex pour une édition supplémentaire
capacités utilisées dans vi. L'utilisateur peut basculer entre vi et mes ex et exécuter
ex commandes de l'intérieur vi.
Cette page de référence utilise le terme éditer tampon pour décrire le texte de travail actuel. Non
une mise en œuvre spécifique est sous-entendue par ce terme. Toutes les modifications d'édition sont effectuées sur le
tampon d'édition, et aucune modification n'affectera aucun fichier jusqu'à ce qu'une commande d'éditeur écrive le
fichier.
Lors de l'utilisation vi, l'écran du terminal agit comme une fenêtre dans le tampon d'édition. Modifications effectuées
au tampon d'édition doit être reflété dans l'affichage à l'écran ; la position du curseur
à l'écran doit indiquer la position dans le tampon d'édition.
Certains terminaux n'ont pas toutes les capacités nécessaires pour prendre en charge l'intégralité vi
définition. Lorsque ces commandes ne peuvent pas être prises en charge sur ces terminaux, cette condition
ne doit pas produire de message d'erreur tel que `` not an editor command '' ou signaler une syntaxe
Erreur. L'implémentation peut soit accepter les commandes et produire des résultats à l'écran
qui sont le résultat d'une tentative infructueuse de répondre aux exigences de ce volume de
POSIX.1‐2008 ou signaler une erreur décrivant la déficience liée au terminal.
OPTIONS
Pour vi l'utilitaire doit être conforme au volume Base Definitions de POSIX.1‐2008, Blog 12.2,
Services Publics Syntaxe Recommandations, excepté '+' peut être reconnu comme un délimiteur d'option comme
ainsi que '−'.
Les options suivantes doivent être prises en charge :
-c commander
Voir le ex description de la commande -c option.
-r Voir le ex description de la commande -r option.
-R Voir le ex description de la commande -R option.
-t chaîne de balise
Voir le ex description de la commande -t option.
-w Taille Voir le ex description de la commande -w option.
OPÉRANDES
Voir la section OPÉRANDES du ex commande pour une description des opérandes pris en charge par
le vi commander.
STDIN
Si l'entrée standard n'est pas un terminal, les résultats ne sont pas définis. L'entrée standard
se compose d'une série de commandes et de texte d'entrée, comme décrit dans la DESCRIPTION ÉTENDU
.
Si une lecture de l'entrée standard renvoie une erreur, ou si l'éditeur détecte une fin de
condition de fichier à partir de l'entrée standard, elle doit être équivalente à un SIGHUP asynchrone
un événement.
CONTRIBUTION DES DOSSIERS
Voir la section FICHIERS D'ENTREE du ex commande pour une description des fichiers d'entrée
supporté par le vi commander.
ENVIRONNEMENT VARIABLES
Voir la section VARIABLES D'ENVIRONNEMENT du ex commande pour les variables d'environnement qui
affecter l'exécution de la vi commander.
ASYNCHRONE ÉVÈNEMENTS
Voir la section ÉVÉNEMENTS ASYNCHRONES du ex pour les événements asynchrones qui affectent
exécution de la vi commander.
SORTIE STD
Si la sortie standard n'est pas un terminal, des résultats indéfinis se produisent.
La sortie standard peut être utilisée pour écrire des invites à l'utilisateur, pour des messages d'information,
et pour écrire des lignes à partir du fichier.
STDERR
Si la sortie standard n'est pas un terminal, des résultats indéfinis se produisent.
L'erreur standard ne doit être utilisée que pour les messages de diagnostic.
SORTIE DES DOSSIERS
Voir la section FICHIERS DE SORTIE du ex commande pour une description des fichiers de sortie
supporté par le vi commander.
ÉLARGI DESCRIPTION
Si le terminal n'a pas les capacités nécessaires pour prendre en charge une partie non spécifiée
du système vi définition, les implémentations doivent commencer initialement dans ex mode ou mode ouvert.
Sinon, après l'initialisation, vi doit être en mode commande ; le mode de saisie de texte peut être
saisie par l'une des nombreuses commandes utilisées pour insérer ou modifier du texte. En mode saisie de texte,
peut être utilisé pour revenir au mode commande ; d'autres utilisations de sont décrites plus loin dans
cette section; voir Mettre fin Command or Entrée Mode.
Initialisation in ex et mes vi
See Initialisation in ex et mes vi pour une description de ex et mes vi initialisation pour le vi
utilitaire.
Command Descriptions in vi
Les symboles suivants sont utilisés dans cette page de référence pour représenter les arguments des commandes.
tampon Voir la description de tampon dans la section DESCRIPTION ÉTENDUE du ex
utilitaire; voir Command Descriptions in ex.
En mode ouvert et visuel, lorsqu'un synopsis de commande affiche à la fois [tampon] Et [compter]
précédant le nom de la commande, ils peuvent être spécifiés dans n'importe quel ordre.
compter Un entier positif utilisé comme argument facultatif pour la plupart des commandes, soit pour donner un
nombre de répétitions ou comme taille. Cet argument est facultatif et doit être 1 par défaut sauf si
spécifié autrement.
Les lignes Synopsis pour le vi commandes -G, -L, -R,
‐], %, &, ^, D, m, M, Q, u, U et ZZ n'ai pas compter en option
argument. Quoi qu'il en soit, ce ne doit pas être une erreur de spécifier un compter à ceux-là
commandes et toutes les commandes spécifiées compter doit être ignoré.
mouvement Un argument de fin facultatif utilisé par le !, <, >, c, d et y commandes, ce qui est
utilisé pour indiquer la région du texte qui sera affectée par la commande. le
le mouvement peut être soit l'un des caractères de commande répétés, soit l'un de plusieurs
autres vi commandes (répertoriées dans le tableau suivant). Chacune des commandes applicables
spécifie la région de texte correspondant en répétant la commande ; chaque commande qui
peut être utilisé comme commande de mouvement spécifie la zone de texte qu'il affecte.
Commandes qui prennent mouvement les arguments opèrent soit sur des lignes soit sur des caractères,
selon les circonstances. Lors de la conduite sur des lignes, toutes les lignes qui tombent
partiellement ou entièrement dans la zone de texte spécifiée pour la commande doit être
affecté. Lorsque vous travaillez sur des caractères, seuls les caractères exacts dans le champ spécifié
la zone de texte doit être affectée. Chaque commande de mouvement le spécifie individuellement.
Lorsque des commandes pouvant être des commandes de mouvement ne sont pas utilisées comme commandes de mouvement, elles
définira la position actuelle sur la ligne et la colonne actuelles comme spécifié.
Les commandes suivantes doivent être des commandes de mouvement de curseur valides :
( - j H
) $ k L
[[ % l M
-H ]] _ n N
-N { ; t T
-P } ? w W
^ b B
+ e E
| f F
/ h G
Toutes compter qui est spécifié à une commande qui a une commande de mouvement associée
doit être appliqué à la commande de mouvement. Si un compter s'applique à la fois à la commande
et sa commande de mouvement associée, l'effet doit être multiplicatif.
Les symboles suivants sont utilisés dans cette section pour spécifier les emplacements dans le tampon d'édition :
actuel caractère
Le caractère actuellement indiqué par le curseur.
fin of a en ligne
Le point situé entre le dernier non- (le cas échéant) et la résiliation
d'une ligne. Pour une ligne vide, cet emplacement coïncide avec le début
de la ligne.
fin of le éditer tampon
L'emplacement correspondant à la fin de la dernière ligne dans le tampon d'édition.
Les symboles suivants sont utilisés dans cette section pour spécifier les actions de commande :
grand mot Dans les paramètres régionaux POSIX, vi reconnaîtra quatre types de grands mots:
1. Une séquence maximale de non- caractères précédés et suivis de
caractères ou le début ou la fin d'une ligne ou le tampon d'édition
2. Une ou plusieurs lignes vides séquentielles
3. Le premier caractère du tampon d'édition
4. Le dernier non- dans le tampon d'édition
mot Dans les paramètres régionaux POSIX, vi reconnaîtra cinq sortes de mots :
1. Une séquence maximale de lettres, de chiffres et de traits de soulignement, délimitée aux deux extrémités
par:
-- Caractères autres que des lettres, des chiffres ou des traits de soulignement
-- Le début ou la fin d'une ligne
-- Le début ou la fin du tampon d'édition
2. Une séquence maximale de caractères autres que des lettres, des chiffres, des traits de soulignement ou
caractères, délimités aux deux extrémités par :
-- Une lettre, un chiffre, un trait de soulignement
-- personnages
-- Le début ou la fin d'une ligne
-- Le début ou la fin du tampon d'édition
3. Une ou plusieurs lignes vides séquentielles
4. Le premier caractère du tampon d'édition
5. Le dernier non- dans le tampon d'édition
limite
A limite est l'un des suivants :
1. Une ligne dont le premier caractère est un
2. Une ligne dont le premier caractère est une accolade ouverte ('{')
3. Une ligne dont le premier caractère est un et dont les deuxième et troisième
les caractères correspondent à une paire de deux caractères dans le les sections option d'édition (voir ed)
4. Une ligne dont le premier caractère est un et dont le seul autre caractère
correspond au premier caractère d'une paire de deux caractères dans le les sections éditer
option, où le deuxième caractère de la paire de deux caractères est un
5. La première ligne du tampon d'édition
6. La dernière ligne du tampon d'édition si la dernière ligne du tampon d'édition est vide
ou s'il s'agit d'un ]] or } commander; sinon, le dernier non- du dernier
ligne du tampon d'édition
paragraphe limite
A paragraphe limite est l'un des suivants :
1. Une limite de section
2. Une ligne dont le premier caractère est un et dont les deuxième et troisième
les caractères correspondent à une paire de deux caractères dans le paragraphes option d'édition (voir ed)
3. Une ligne dont le premier caractère est un et dont le seul autre caractère
correspond au premier caractère d'une paire de deux caractères dans le paragraphes éditer
option, où le deuxième caractère de la paire de deux caractères est un
4. Une ou plusieurs lignes vides séquentielles
se souvient recherche direction
Voir la description de se souvient recherche direction in ed.
phrase limite
A phrase limite est l'un des suivants :
1. Une limite de paragraphe
2. Le premier non- qui se produit après une limite de paragraphe
3. Le premier non- qui survient après une ('.'),
('!'), ou ('?'), suivi de deux les personnages ou la fin
d'une ligne ; n'importe quel nombre de parenthèses fermantes (')'), parenthèses fermantes (']'),
double citation ('"'), ou apostrophe ( ) des caractères peuvent apparaître
entre le signe de ponctuation et les deux caractères ou fin de ligne
Dans la suite de la description du vi utilitaire, le terme "ligne tampon" fait référence à
une ligne dans le tampon d'édition et le terme ``ligne d'affichage'' fait référence à la ligne ou aux lignes sur le
écran d'affichage utilisé pour afficher une ligne de tampon. Le terme « ligne courante » fait référence à une
``ligne tampon'' spécifique.
S'il y a des lignes d'affichage sur l'écran pour lesquelles il n'y a pas de lignes de tampon correspondantes
car elles correspondent à des lignes qui seraient après la fin du fichier, elles doivent être
affiché comme un seul ('~') caractère, plus le caractère de terminaison .
La dernière ligne de l'écran doit être utilisée pour signaler des erreurs ou afficher des informations
messages. Il doit également être utilisé pour afficher l'entrée des ``commandes orientées ligne'' (/, ?,
: et !). Lorsqu'une commande orientée ligne est exécutée, l'éditeur doit saisir du texte
mode sur la dernière ligne de l'écran, en utilisant les caractères de commande respectifs comme invite
personnages. (Dans le cas du ! commande, le mouvement associé doit être entré par le
l'utilisateur avant que l'éditeur n'entre en mode de saisie de texte.) La ligne saisie par l'utilisateur doit être
terminé par un , un non- ‐V-échappé , ou non échappé
. Il n'est pas spécifié si plus de caractères nécessitent une largeur d'affichage moins une colonne
nombre de colonnes d'écran peut être saisi.
Si une commande est exécutée qui écrase une partie de l'écran autre que la dernière
ligne de l'écran (par exemple, la ex suspendre or ! commandes), autres que les ex coquille
commande, l'utilisateur doit être invité à saisir un caractère avant que l'écran ne soit actualisé et que
la session d'édition s'est poursuivie.
les caractères doivent occuper le nombre de colonnes sur l'écran fixé par le tabulation éditer
option (voir ed), sauf s'il y a moins que ce nombre de colonnes avant l'affichage
marge qui entraînera le pliage de la ligne affichée ; dans ce cas, ils ne prendront que
le nombre de colonnes jusqu'à cette limite.
Le curseur doit être placé sur la ligne courante et par rapport à la colonne courante comme
spécifié par chaque commande décrite dans les sections suivantes.
En mode ouvert, si la ligne courante n'est pas déjà affichée, alors elle sera affichée.
En mode visuel, si la ligne courante n'est pas affichée, alors les lignes affichées
doit être étendu, défilé ou redessiné pour provoquer une partie non spécifiée de l'actuel
ligne à afficher. Si l'écran est redessiné, pas plus que le nombre de lignes d'affichage
spécifié par la valeur de fenêtre l'option d'édition doit être affichée (sauf si l'option actuelle
la ligne ne peut pas être complètement affichée dans le nombre de lignes d'affichage spécifié par le fenêtre
option d'édition) et la ligne actuelle doit être positionnée aussi près du centre de la
lignes affichées que possible (dans les limites imposées par la distance de la ligne
depuis le début ou la fin du tampon d'édition). Si la ligne courante est avant la première
ligne dans l'affichage et l'écran défile, une partie non spécifiée de la ligne actuelle
doit être placé sur la première ligne de l'affichage. Si la ligne courante est après la dernière
ligne dans l'affichage et l'écran défile, une partie non spécifiée de la ligne actuelle
doit être placé sur la dernière ligne de l'affichage.
En mode visuel, si une ligne du tampon d'édition (autre que la ligne courante) ne
entièrement dans les lignes au bas de l'écran qui sont disponibles pour son
présentation, l'éditeur peut choisir de n'afficher aucune partie de la ligne. Les lignes de
l'affichage qui ne contient pas de texte du tampon d'édition pour cette raison doit chacun
se composent d'un seul '@' caractère.
En mode visuel, l'éditeur peut choisir, pour des raisons non précisées, de ne pas mettre à jour les lignes du
afficher pour correspondre au texte du tampon d'édition sous-jacent. Les lignes de l'affichage qui font
ne correspond pas correctement au texte du tampon d'édition pour cette raison doit consister en un
unique '@' caractère (plus le caractère de fin ), et le La commande ‐R doit
obliger l'éditeur à mettre à jour l'écran pour représenter correctement le tampon d'édition.
Les commandes de mode ouvert et visuel qui définissent la colonne actuelle la définissent sur une position de colonne dans
l'affichage, et non une position de caractère dans la ligne. Dans ce cas, cependant, la colonne
la position dans l'affichage doit être calculée pour un affichage de largeur infinie ; par example,
la colonne relative à un caractère faisant partie d'une ligne repliée sur
les lignes d'écran supplémentaires seront décalées de la colonne de ligne d'affichage où la ligne de tampon
commence, et non depuis le début d'une ligne d'affichage particulière.
La colonne du curseur d'affichage dans l'affichage est basée sur la valeur de la colonne actuelle, comme
suit, chaque règle étant appliquée à tour de rôle :
1. Si la colonne actuelle est après la dernière colonne de ligne d'affichage utilisée par le
ligne, la colonne du curseur d'affichage doit être définie sur la dernière colonne de ligne d'affichage occupée
par le dernier non- dans la ligne courante ; sinon, la colonne du curseur d'affichage
doit être défini sur la colonne actuelle.
2. Si le caractère dont une partie est affichée dans la colonne de la ligne d'affichage
spécifié par la colonne du curseur d'affichage nécessite plus d'une seule ligne d'affichage
colonne:
une. En mode de saisie de texte, la colonne du curseur d'affichage doit être ajustée à la première
colonne de ligne d'affichage dans laquelle n'importe quelle partie de ce caractère est affichée.
b. Sinon, la colonne du curseur d'affichage doit être ajustée à la dernière ligne d'affichage
colonne dans laquelle n'importe quelle partie de ce caractère est affichée.
La colonne actuelle ne doit pas être modifiée par ces ajustements de la colonne du curseur d'affichage.
Si une erreur se produit lors de l'analyse ou de l'exécution d'un vi commander:
* Le terminal doit être alerté. Exécution de la vi la commande s'arrête et le curseur
(par exemple, la ligne et la colonne en cours) ne doivent plus être modifiées.
* Sauf indication contraire dans les sections de commande suivantes, il n'est pas spécifié
si un message d'information doit être affiché.
* Tout partiellement entré vi la commande doit être rejetée.
* Si la vi commande résulte d'un plan extension, tous les personnages de cette plan
l'expansion doit être rejetée, sauf indication contraire par le plan commande (voir
ed).
* Si la vi commande résultait de l'exécution d'un tampon, aucune autre commande ne provoquait
par l'exécution du tampon doit être exécuté.
Page En arrière
Synopsis:
[compter] -B
Si en mode ouvert, le La commande ‐B doit se comporter de manière identique à la z commander.
Sinon, si la ligne courante est la première ligne du tampon d'édition, ce sera une erreur.
Si la fenêtre l'option d'édition est inférieure à 3, affichez un écran où la dernière ligne du
l'affichage doit être une partie de :
(actuel premier en ligne) −1
sinon, afficher un écran où la première ligne de l'affichage doit être une partie de :
(actuel premier en ligne) - compter x ((option d'édition de fenêtre) -2)
Si ce calcul aboutit à une ligne située avant la première ligne de la modification
mémoire tampon, la première ligne de l'affichage doit afficher une partie de la première ligne du
tampon d'édition.
Courant en ligne: S'il ne reste aucune ligne de l'affichage précédent à l'écran, réglez sur la dernière
ligne de l'affichage ; sinon, réglez sur (en ligne − le nombre de nouvelles lignes affichées sur ce
écran).
Courant colonne: défini sur non- .
Faites défiler l'Avant
Synopsis:
[compter] -RÉ
Si la ligne courante est la dernière ligne du tampon d'édition, ce sera une erreur.
Sinon compter est spécifié, compter sera par défaut le compter associé au précédent
-D ou Commande ‐U. S'il n'y avait pas de précédent -D ou ‐U
commander, compter sera par défaut la valeur de la volute possibilité d'édition.
Si en mode ouvert, écrivez des lignes commençant par la ligne après la ligne courante, jusqu'à ce que compter
lignes ou la dernière ligne du fichier ont été écrites.
Courant en ligne: Si la ligne courante + compter dépasse la dernière ligne du tampon d'édition, défini sur
la dernière ligne du tampon d'édition ; sinon, réglez sur la ligne courante + compter.
Courant colonne: défini sur non- .
Faites défiler l'Avant by Gamme
Synopsis:
[compter] -E
Affiche le nombre de lignes après la dernière ligne actuellement affichée.
Si la dernière ligne du tampon d'édition est affichée, ce doit être une erreur. Si il n'y a pas
en ligne compter lignes après la dernière ligne actuellement affichée, la dernière ligne de l'affichage
doit afficher une partie de la dernière ligne du tampon d'édition.
Courant en ligne: Inchangé si le caractère courant précédent est affiché ; sinon, réglez sur
la première ligne affichée.
Courant colonne: Inchangé.
Page l'Avant
Synopsis:
[compter] -F
Si en mode ouvert, le La commande ‐F doit se comporter de manière identique à la z commander.
Sinon, si la ligne courante est la dernière ligne du tampon d'édition, ce sera une erreur.
Si la fenêtre l'option d'édition est inférieure à 3, affichez un écran où la première ligne du
l'affichage doit être une partie de :
(actuel dernier en ligne) +1
sinon, afficher un écran où la première ligne de l'affichage doit être une partie de :
(actuel premier en ligne) + compter x ((option d'édition de fenêtre) -2)
Si ce calcul aboutissait à une ligne située après la dernière ligne du tampon d'édition,
la dernière ligne de l'affichage doit afficher une partie de la dernière ligne de l'édition
un tampon.
Courant en ligne: S'il ne reste aucune ligne de l'affichage précédent à l'écran, réglez sur la première
ligne de l'affichage ; sinon, réglez sur (en ligne + le nombre de nouvelles lignes affichées sur ce
écran).
Courant colonne: défini sur non- .
Écran Info
Synopsis:
-G
Cette commande doit être équivalente à la ex filet commander.
Move Curseur En arrière
Synopsis:
[compter] -H
[compter] h
le courant effacer caractère (voir stty)
S'il n'y a pas de caractères avant le caractère courant sur la ligne courante, il doit être
une erreur. S'il y a moins de compter caractères précédents sur la ligne courante, compter
doit être ajusté au nombre de caractères précédents sur la ligne.
S'il est utilisé comme commande de mouvement :
1. La zone de texte doit être du caractère avant le curseur de départ jusqu'à et
y compris le compterème caractère avant le curseur de départ.
2. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: Mis à (colonne − le nombre de colonnes occupées par compter fin des caractères
avec la colonne courante précédente).
Move Vers le bas
Synopsis:
[compter]
[compter] -J
[compter] -M
[compter] -N
[compter] j
[compter]
[compter] +
S'il y a moins de compter lignes après la ligne courante dans le tampon d'édition, il doit être
une erreur.
S'il est utilisé comme commande de mouvement :
1. La zone de texte doit inclure la ligne de départ et la suivante compter − 1 lignes.
2. Tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Mis à actuel en ligne+ compter.
Courant colonne: Réglé sur non- pour le , -M, et + commandes ;
sinon, inchangé.
Effacer et mes Réafficher
Synopsis:
-L
Si en mode ouvert, effacez l'écran et réaffichez la ligne courante. Sinon, clair et
réafficher l'écran.
Courant en ligne: Inchangé.
Courant colonne: Inchangé.
Move Up
Synopsis:
[compter] -P
[compter] k
[compter] -
S'il y a moins de compter lignes avant la ligne courante dans le tampon d'édition, il doit être
une erreur.
S'il est utilisé comme commande de mouvement :
1. La zone de texte comprend la ligne de départ et la ligne précédente compter lignes.
2. Tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Mis à actuel en ligne - compter.
Courant colonne: Réglé sur non- pour le - commander; sinon, inchangé.
Redessiner pour écran
Synopsis:
-R
Si des lignes ont été supprimées de l'écran d'affichage et signalées comme supprimées sur
terminal à l'aide du @ convention (voir le début de la section DESCRIPTION ÉTENDUE),
ils doivent être réaffichés pour correspondre au contenu du tampon d'édition.
Il n'est pas précisé si les lignes signalées par @ car ils ne tiennent pas sur le terminal
l'affichage sera affecté.
Courant en ligne: Inchangé.
Courant colonne: Inchangé.
Faites défiler Vers l'arrière
Synopsis:
[compter] -U
Si la ligne courante est la première ligne du tampon d'édition, ce sera une erreur.
Sinon compter est spécifié, compter sera par défaut le compter associé au précédent
-D ou Commande ‐U. S'il n'y avait pas de précédent -D ou ‐U
commander, compter sera par défaut la valeur de la volute possibilité d'édition.
Courant en ligne: Si compter est supérieur à la ligne courante, mis à 1 ; sinon, réglez sur
ligne courante − compter.
Courant colonne: défini sur non- .
Faites défiler Vers l'arrière by Gamme
Synopsis:
[compter] -Y
Afficher la ligne compter lignes avant la première ligne actuellement affichée.
Si la ligne courante est la première ligne du tampon d'édition, ce sera une erreur. Si ce
le calcul se traduirait par une ligne qui est avant la première ligne du tampon d'édition, le
La première ligne de l'affichage doit afficher une partie de la première ligne du tampon d'édition.
Courant en ligne: Inchangé si le caractère courant précédent est affiché ; sinon, réglez sur
la première ligne affichée.
Courant colonne: Inchangé.
Modifier le Autre Fichier
Synopsis:
-^
Cette commande doit être équivalente à la ex éditer commande, avec le nom de chemin alternatif comme
son argumentation.
Mettre fin Command or Entrée Mode
Synopsis:
Si un partiel vi commande (telle que définie par au moins une commande noncompter personnage) a été
entré, jetez le compter et le(s) caractère(s) de commande.
Sinon, si aucun caractère de commande n'a été saisi et que le était le résultat d'une
expansion de la carte, le terminal est alerté et le le personnage doit être défaussé,
mais ce ne sera pas une erreur.
Sinon, ce sera une erreur.
Courant en ligne: Inchangé.
Courant colonne: Inchangé.
Rechercher pour chaîne de balise
Synopsis:
-]
Si le caractère actuel n'est pas un mot ou , ce sera une erreur.
Cette commande doit être équivalente à la ex Étiquette commande, avec l'argument de cette commande
défini comme suit.
Si le caractère actuel est un :
1. Ignorer tout caractères après le curseur jusqu'à la fin de la ligne.
2. Si la fin de la ligne est atteinte, ce sera une erreur.
Ensuite, l'argument de la ex Étiquette commande doit être le caractère actuel et tous les suivants
caractères, jusqu'au premier caractère autre qu'un mot ou jusqu'à la fin de la ligne.
Move Curseur l'Avant
Synopsis:
[compter]
[compter] je (bien)
S'il y a moins de compter non- caractères après le curseur sur le courant
ligne, compter sera ajusté au nombre de non- caractères après le curseur
sur la ligne.
S'il est utilisé comme commande de mouvement :
1. Si le courant ou compterle ième caractère après le curseur est le dernier non- dans le
ligne, la zone de texte doit être composée du caractère actuel jusqu'à et y compris
le dernier non- dans la ligne. Sinon, la zone de texte doit provenir de la
caractère actuel jusqu'au, mais non compris, le compterème caractère après le curseur.
2. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
S'il n'y a pas de non- caractères après le caractère courant sur la ligne courante,
ce sera une erreur.
Courant en ligne: Inchangé.
Courant colonne: défini sur la dernière colonne qui affiche une partie du compterème personnage
après le caractère courant.
remplacer Texte avec Résultats de coquille Command
Synopsis:
[compter] ! mouvement commandes shell
Si la commande de mouvement est la ! commande répétée :
1. Si le tampon d'édition est vide et qu'aucun compter a été fourni, la commande doit être la
équivalent du ex :lire ! commande, avec la saisie de texte, et aucun texte ne doit être
copié dans n'importe quel tampon.
2. Sinon :
une. S'il y a moins de compter −1 lignes après la ligne courante dans le tampon d'édition,
ce sera une erreur.
b. La zone de texte doit aller de la ligne actuelle jusqu'à la suivante incluse. compter
−1 lignes.
Sinon, la zone de texte sera constituée des lignes dans lesquelles tout caractère de la zone de texte
spécifié par la commande de mouvement apparaît.
Tout texte copié dans un tampon doit être en mode ligne.
Cette commande doit être équivalente à la ex ! commande pour les lignes spécifiées.
Move Curseur à Fin de ligne
Synopsis:
[compter] $
Ce sera une erreur s'il y a moins de (compter −1) lignes après la ligne courante dans le
tampon d'édition.
S'il est utilisé comme commande de mouvement :
1. Si compter vaut 1:
une. Ce sera une erreur si la ligne est vide.
b. Sinon, la zone de texte doit comprendre tous les caractères depuis le début
curseur sur le dernier non- dans la ligne, inclus, et tout texte copié dans un
tampon doit être en mode caractère.
2. Sinon, si la position du curseur de départ est au niveau ou avant le premier non- dans
la ligne, la zone de texte doit comprendre le courant et le suivant compter −1 lignes,
et tout texte enregistré dans un tampon doit être en mode ligne.
3. Sinon, la zone de texte doit comprendre tous les caractères depuis le curseur de départ jusqu'au
le dernier non- dans la ligne qui est compter −1 lignes en avant du courant
ligne, et tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: réglez sur actuel en ligne + compter−1.
Courant colonne: La colonne actuelle est définie sur la dernière colonne de ligne d'affichage du dernier
non- dans la ligne, ou en position de colonne 1 si la ligne est vide.
La colonne actuelle doit être ajustée pour être sur la dernière colonne de la ligne d'affichage du dernier
non- de la ligne courante au fur et à mesure que les commandes suivantes changent la ligne courante, jusqu'à ce qu'un
La commande modifie la colonne actuelle.
Move à Adapter Personnage
Synopsis:
%
Si le caractère à la position actuelle n'est pas une parenthèse, un crochet ou une accolade,
rechercher en avant dans la ligne jusqu'au premier de ces caractères. Si aucun de ces caractères n'est
trouvé, ce sera une erreur.
Le caractère correspondant doit être la parenthèse, le crochet ou l'accolade correspondant au
parenthèse, crochet ou accolade, respectivement, qui était à la position actuelle ou
trouvé sur la ligne courante.
L'appariement est déterminé comme suit, pour une parenthèse ouvrante :
1. Mettez un compteur à 1.
2. Recherche vers l'avant jusqu'à ce qu'une parenthèse soit trouvée ou que la fin du tampon d'édition soit atteinte.
3. Si la fin du tampon d'édition est atteinte, ce sera une erreur.
4. Si une parenthèse ouverte est trouvée, incrémentez le compteur de 1.
5. Si une parenthèse fermante est trouvée, décrémentez le compteur de 1.
6. Si le compteur est zéro, le caractère actuel est le caractère correspondant.
La recherche d'une parenthèse fermante doit être équivalente, sauf que la recherche doit être
vers l'arrière, du caractère de départ au début du tampon, une parenthèse fermante
incrémentera le compteur de 1, et une parenthèse ouvrante décrémentera le compteur de
1.
La correspondance pour les crochets et les accolades doit être équivalente, sauf que la recherche doit être
fait pour les parenthèses ouvertes et fermées ou les accolades ouvertes et fermées. C'est la mise en œuvre-
défini si d'autres caractères sont également recherchés et mis en correspondance.
S'il est utilisé comme commande de mouvement :
1. Si le curseur correspondant se trouvait après le curseur de départ dans le tampon d'édition et que le
la position du curseur de départ était au niveau ou avant le premier non- non- dans le
ligne de départ, et la position du curseur correspondant était à ou après la dernière non-
non- dans la ligne correspondante, la zone de texte doit consister en la ligne courante
à la ligne correspondante, inclusivement, et tout texte copié dans un tampon doit être en ligne
mode.
2. Si le curseur correspondant était avant le curseur de départ dans le tampon d'édition et que le
la position du curseur de départ était au niveau ou après le dernier non- non- dans le
ligne de départ, et la position du curseur correspondant était au niveau ou avant le premier non-
non- dans la ligne correspondante, la zone de texte doit consister en la ligne courante
à la ligne correspondante, inclusivement, et tout texte copié dans un tampon doit être en ligne
mode.
3. Sinon, la zone de texte doit être constituée du caractère de début du caractère correspondant.
caractère, inclus, et tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: défini sur la ligne où se trouve le caractère correspondant.
Courant colonne: défini sur la dernière colonne où se trouve n'importe quelle partie du caractère correspondant
affiché.
Répéter Substitution
Synopsis:
&
Répétez la commande de substitution précédente. Cette commande doit être équivalente à la ex &
commande avec la ligne courante comme adresse, et sans Options, compter, ou drapeaux.
Retour à Précédent Contexte at Début of Gamme
Synopsis:
' caractère
Ce sera une erreur s'il n'y a pas de ligne dans le tampon d'édition marquée par caractère.
S'il est utilisé comme commande de mouvement :
1. Si le curseur de départ se trouve après le curseur marqué, alors les emplacements du
curseur et le curseur marqué dans le tampon d'édition doivent être logiquement permutés.
2. La zone de texte comprend la ligne de départ jusqu'au point marqué
ligne, et tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: réglé sur la ligne référencée par la marque.
Courant colonne: défini sur non- .
Retour à Précédent Contexte
Synopsis:
` caractère
Ce sera une erreur si la ligne marquée n'est plus dans le tampon d'édition. Si le marqué
ligne ne contient plus de caractère dans la position de caractère numérotée enregistrée, elle doit être
comme si la position marquée était la première non- .
S'il est utilisé comme commande de mouvement :
1. Ce sera une erreur si le curseur marqué fait référence au même caractère dans l'édition
tampon comme curseur de départ.
2. Si le curseur de départ se trouve après le curseur marqué, alors les emplacements du
curseur et le curseur marqué dans le tampon d'édition doivent être logiquement permutés.
3. Si la ligne de départ est vide ou si le curseur de départ est au niveau ou avant la première
non- non- de la ligne de départ et la ligne de curseur marquée est vide ou
le curseur marqué fait référence au premier caractère de la ligne du curseur marqué, le texte
région doit consister en toutes les lignes contenant des caractères depuis le curseur de départ jusqu'à
la ligne avant la ligne marquée du curseur, inclusivement, et tout texte copié dans un tampon
doit être en mode ligne.
4. Sinon, si la ligne du curseur marqué est vide ou si le curseur marqué fait référence à un
caractère à ou avant le premier non- non- de la ligne de curseur marquée,
la région du texte doit être du curseur de départ au dernier non- du
avant la ligne marquée du curseur, inclus, et tout texte copié dans un tampon doit
être en mode personnage.
5. Sinon, la zone de texte doit aller du curseur de départ (inclus) au
curseur marqué (exclusif), et tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: réglé sur la ligne référencée par la marque.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du caractère référencé par
la marque s'affiche.
Retour à Précédent Blog
Synopsis:
[compter] [[
Déplacez le curseur vers l'arrière dans le tampon d'édition jusqu'au premier caractère du précédent.
limite de section, compter fois.
S'il est utilisé comme commande de mouvement :
1. Si le curseur de départ était au premier caractère de la ligne de départ ou du
ligne était vide, et le premier caractère de la limite était le premier caractère de la
ligne de délimitation, la zone de texte doit comprendre la ligne actuelle jusqu'à et y compris
la ligne où le compterième limite suivante commence, et tout texte copié dans un tampon doit
être en mode ligne.
2. Si la limite était la dernière ligne du tampon d'édition ou la dernière non- du
dernière ligne du tampon d'édition, la zone de texte doit comprendre le dernier caractère de
le tampon d'édition jusqu'au caractère de départ inclus, et tout texte enregistré dans un
tampon doit être en mode caractère.
3. Sinon, la zone de texte doit comprendre le caractère de départ jusqu'à mais pas
y compris le premier caractère du compterième limite suivante, et tout texte copié dans un
tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Réglez sur la ligne où compterla ième limite suivante dans le tampon d'édition commence.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du premier caractère du
compterla limite suivante est affichée, ou la position de colonne 1 si la ligne est vide.
Move à Suivant Blog
Synopsis:
[compter] ]]
Déplacez le curseur vers l'avant dans le tampon d'édition jusqu'au premier caractère de la section suivante
frontière, compter fois.
S'il est utilisé comme commande de mouvement :
1. Si le curseur de départ était au premier caractère de la ligne de départ ou du
ligne était vide, et le premier caractère de la limite était le premier caractère de la
ligne de délimitation, la zone de texte doit comprendre la ligne actuelle jusqu'à et y compris
la ligne où le compterla limite précédente commence et tout texte copié dans un tampon
doit être en mode ligne.
2. Si la limite était la première ligne du tampon d'édition, la zone de texte doit consister
du premier caractère dans le tampon d'édition jusqu'au début non compris
caractère, et tout texte copié dans un tampon doit être en mode caractère.
3. Sinon, la zone de texte se compose du premier caractère du compterth
limite de la section précédente jusqu'au caractère de départ, mais non compris, et tout texte
copié dans une mémoire tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Réglez sur la ligne où compterième limite précédente dans le tampon d'édition
départs.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du premier caractère du
compterla limite précédente est affichée, ou la position de colonne 1 si la ligne est vide.
Move à Prénom Non- Position on Courant Gamme
Synopsis:
^
S'il est utilisé comme commande de mouvement :
1. Si la ligne n'a pas de non- non- caractères, ou si le curseur est à la
premier non- non- de la ligne, ce sera une erreur.
2. Si le curseur se trouve avant le premier non- non- de la ligne, le texte
région doit être composé du caractère actuel, jusqu'à, mais non compris, le
premier non- non- de la ligne.
3. Si le curseur se trouve après le premier non- non- de la ligne, le texte
région doit être du caractère avant le curseur de départ jusqu'à et y compris le
premier non- non- de la ligne.
4. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: défini sur non- .
Courant et mes Gamme Au-dessus de
Synopsis:
[compter] _
S'il y a moins de compter −1 lignes après la ligne courante dans le tampon d'édition, il doit
être une erreur.
S'il est utilisé comme commande de mouvement :
1. Si compter est inférieur à 2, la zone de texte doit être la ligne courante.
2. Sinon, la zone de texte doit inclure la ligne de départ et la suivante compter -1
lignes.
3. Tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Définir sur la ligne actuelle + compter −1.
Courant colonne: défini sur non- .
Move Retour à Début of Phrase
Synopsis:
[compter] (
Revenir en arrière au début d'une phrase. Cette commande doit être équivalente à la [[
commande, à l'exception que les limites de la phrase doivent être utilisées à la place de la section
limites.
Move l'Avant à Début of Phrase
Synopsis:
[compter] )
Avancez jusqu'au début d'une phrase. Cette commande doit être équivalente à la ]]
commande, à l'exception que les limites de la phrase doivent être utilisées à la place de la section
limites.
Move Retour à Précédent paragraphe
Synopsis:
[compter] {
Revenir au début du paragraphe précédent. Cette commande équivaut à
le [[ commande, à l'exception que les limites de paragraphe doivent être utilisées à la place de
limites des sections.
Move l'Avant à Suivant paragraphe
Synopsis:
[compter] }
Avancez jusqu'au début du paragraphe suivant. Cette commande équivaut à
le ]] commande, à l'exception que les limites de paragraphe doivent être utilisées à la place de
limites des sections.
Move à Autres ingrédients Colonne Position
Synopsis:
[compter] |
Pour les besoins de cette commande, les lignes qui sont trop longues pour l'affichage actuel et qui
ont été pliés doivent être traités comme ayant un seul nombre de colonnes basé sur 1.
S'il y a moins de compter colonnes dans lesquelles les caractères de la ligne courante sont
affiché à l'écran, compter doit être ajustée pour être la dernière colonne dans laquelle tout
partie de la ligne s'affiche à l'écran.
S'il est utilisé comme commande de mouvement :
1. Si la ligne est vide ou si le caractère du curseur est le même que celui du
compterème colonne de la ligne, ce sera une erreur.
2. Si le curseur est avant le compterème colonne de la ligne, la zone de texte doit être
composé du caractère actuel, jusqu'au caractère sur le
compterème colonne de la ligne.
3. Si le curseur se trouve après le compterème colonne de la ligne, la zone de texte doit être de
le caractère avant le curseur de départ jusqu'au caractère sur la
compterème colonne de la ligne.
4. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du caractère qui est
affiché dans la compter colonne de la ligne s'affiche.
Inverser Trouvez Personnage
Synopsis:
[compter] ,
Si le dernier F, f, T, ou t la commande était F, f, T, ou t, cette commande sera équivalente à
an f, F, t, ou T commande, respectivement, avec le spécifié compter et la même recherche
caractère.
S'il n'y avait pas de précédent F, f, T, ou t commande, ce sera une erreur.
Répéter
Synopsis:
[compter] .
Répétez le dernier !, <, >, A, C, D, I, J, O, P, R, S, X, Y, a, c, d, i, o, p, r, s, x, y, ou
~ commander. Ce sera une erreur si aucune de ces commandes n'a été exécutée. Commandes
(autres que les commandes qui entrent en mode de saisie de texte) exécutées à la suite d'expansions de carte,
ne doit pas changer la valeur de la dernière commande répétable.
Les commandes répétées avec des commandes de mouvement associées doivent également répéter la commande de mouvement ;
cependant, tout spécifié compter remplacera le compter(s) qui ont été spécifiés à l'origine pour
la commande répétée ou sa commande de mouvement associée.
Si la composante de mouvement de la commande répétée est f, F, t, ou T, la commande répétée
ne doit pas définir le caractère de recherche mémorisé pour le ; et mes , les commandes.
Si la commande répétée est p or P, et le tampon associé à cette commande était un
tampon numérique nommé avec un nombre inférieur à 9, le tampon associé à la répétition
la commande doit être définie pour être le tampon nommé logiquement par le nom du tampon précédent
incrémenté de 1.
Si le caractère répété est une commande de saisie de texte, le texte saisi associé à cette
commande est répétée littéralement :
* Les caractères saisis ne sont ni des macros ni des abréviations développées.
* Les caractères saisis ne sont interprétés d'aucune manière particulière, à l'exception que
, , et ‐T se comporte comme décrit dans Entrée Mode
Commandes in vi.
Courant en ligne: Régler comme décrit pour la commande répétée.
Courant colonne: Régler comme décrit pour la commande répétée.
Trouvez Régulier Expression
Synopsis:
/
Si la ligne d'entrée ne contient pas de non- caractères, il doit être équivalent à une ligne
ne contenant que la dernière expression régulière rencontrée. Les expressions régulières améliorées
accompagnés par vi sont décrits dans Régulier Expressions in ex.
Sinon, la ligne doit être interprétée comme une ou plusieurs expressions régulières, éventuellement
suivi d'un décalage d'adresse ou d'un vi z commander.
Si l'expression régulière n'est pas la dernière expression régulière de la ligne, ou si une ligne
décalage ou z commande est spécifiée, l'expression régulière doit être terminée par un
non échappé '/' caractère, qui ne doit pas être utilisé dans le cadre de l'expression régulière. Si
l'expression régulière n'est pas la première expression régulière sur la ligne, elle doit être
précédé de zéro ou plus personnages, un , zéro ou plus
personnages, et un chef de file '/' caractère, qui ne doit pas être interprété comme faisant partie du
expression régulière. Ce sera une erreur de faire précéder toute expression régulière par tout
caractères autres que ceux-ci.
Chaque recherche doit commencer à partir du caractère après le premier caractère de la dernière correspondance
(ou, s'il s'agit de la première recherche, après le curseur). Si la numérisation enveloppante l'option d'édition est définie, le
la recherche doit continuer jusqu'au caractère précédant le caractère du curseur de début ; sinon, à
la fin du tampon d'édition. Ce sera une erreur si une recherche échoue à trouver une correspondance, et
un message d'information à cet effet doit être affiché.
Un décalage d'adresse facultatif (voir Adressage in ex) peut être spécifié après le dernier régulier
expression en incluant une fin '/' caractère après l'expression régulière et
spécifiant le décalage d'adresse. Ce décalage sera à partir de la ligne contenant la correspondance pour
la dernière expression régulière spécifiée. Ce sera une erreur si le décalage de ligne
indiquer une adresse de ligne inférieure à 1 ou supérieure à la dernière ligne du tampon d'édition. Une
un décalage d'adresse de zéro doit être pris en charge. Ce sera une erreur de suivre l'adresse
décalage avec tout autre caractère que personnages.
S'il n'est pas utilisé comme commande de mouvement, un z commande (voir Redessiner Vitrine) peut être
spécifié après la dernière expression régulière en incluant une fin '/' caractère après
l'expression régulière, zéro ou plus personnages, un 'z', zéro ou plus
caractères, un nouveau facultatif fenêtre modifier la valeur de l'option, zéro ou plus personnages, et
un caractère de localisation. L'effet sera comme si le z la commande a été exécutée après le /
commander. Ce serait une erreur de suivre les z commande avec d'autres caractères que
personnages.
La direction de recherche mémorisée doit être réglée sur vers l'avant.
S'il est utilisé comme commande de mouvement :
1. Ce sera une erreur si la dernière correspondance fait référence au même caractère dans l'édition
tampon comme curseur de départ.
2. Si un décalage d'adresse est spécifié, la dernière correspondance doit être ajustée par le
décalage comme décrit précédemment.
3. Si le curseur de départ se trouve après la dernière correspondance, les emplacements du curseur de départ
curseur et la dernière correspondance dans le tampon d'édition doivent être permutés logiquement.
4. Si un décalage d'adresse est spécifié, la zone de texte doit être composée de toutes les lignes
contenant des caractères du curseur de départ à la dernière ligne de correspondance, inclus, et
tout texte copié dans un tampon doit être en mode ligne.
5. Sinon, si la ligne de départ est vide ou si le curseur de départ est au niveau ou avant la
premier non- non- de la ligne de départ, et la dernière ligne de match est vide
ou la dernière correspondance commence au premier caractère de la dernière ligne de correspondance, le texte
région doit consister en toutes les lignes contenant des caractères depuis le curseur de départ jusqu'à
la ligne avant la dernière ligne de correspondance, inclusivement, et tout texte copié dans un tampon doit
être en mode ligne.
6. Sinon, si la dernière ligne de correspondance est vide ou si la dernière correspondance commence à un caractère à
ou avant le premier non- non- de la dernière ligne de match, la région de
le texte doit être du curseur actuel au dernier non- de la ligne avant le
dernière ligne de correspondance, inclusive, et tout texte copié dans un tampon doit être en caractère
mode.
7. Sinon, la zone de texte doit aller du curseur actuel (inclus) au
premier caractère de la dernière correspondance (exclusif), et tout texte copié dans un tampon doit
être en mode personnage.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Si une correspondance est trouvée, définissez la dernière ligne correspondante plus le décalage d'adresse,
si seulement; sinon, inchangé.
Courant colonne: défini sur la dernière colonne sur laquelle toute partie du premier caractère du
la dernière chaîne correspondante est affichée, si une correspondance est trouvée ; sinon, inchangé.
Move à Prénom Personnage in Gamme
Synopsis:
0 (zéro)
Accéder au premier caractère de la ligne courante. Le personnage «0 ' ne sera pas
interprété comme une commande s'il est immédiatement précédé d'un chiffre.
S'il est utilisé comme commande de mouvement :
1. Si le caractère du curseur est le premier caractère de la ligne, il s'agit d'une erreur.
2. La zone de texte doit être du caractère avant le caractère du curseur jusqu'à et
y compris le premier caractère de la ligne.
3. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: La dernière colonne dans laquelle toute partie du premier caractère de la ligne est
affiché, ou si la ligne est vide, inchangé.
Exécution an ex Command
Synopsis:
:
Exécuter une ou plusieurs ex les commandes.
Si une partie de l'écran autre que la dernière ligne de l'écran a été écrasée par une
ex commande (sauf coquille), vi doit afficher un message indiquant qu'il attend un
entrée de l'utilisateur, et doit ensuite lire un caractère. Cette mesure peut également être prise pour
autres raisons non précisées.
Si le prochain caractère saisi est un ':', Une autre ex commande doit être acceptée et exécutée.
Tout autre caractère provoquera le rafraîchissement de l'écran et vi retournera au commandement
mode.
Courant en ligne: Comme spécifié pour le ex commander.
Courant colonne: Comme spécifié pour le ex commander.
Répéter Trouvez
Synopsis:
[compter] ;
Cette commande doit être équivalente à la dernière F, f, T, ou t commande, avec la valeur spécifiée
compter, et avec le même caractère de recherche utilisé pour le dernier F, f, T, ou t commander. Si
il n'y avait pas de précédent F, f, T, ou t commande, ce sera une erreur.
Shift Gauche
Synopsis:
[compter] < mouvement
Si la commande de mouvement est la < commande répétée :
1. S'il y a moins de compter −1 lignes après la ligne courante dans le tampon d'édition, il
sera une erreur.
2. La zone de texte doit être de la ligne actuelle, jusqu'à et y compris la prochaine compter -1
lignes.
Décaler n'importe quelle ligne dans la zone de texte spécifiée par le compter et commande de mouvement une largeur de décalage
(voir le ex largeur de décalage option) vers le début de la ligne, comme décrit par le ex <
commander. Les lignes non décalées doivent être copiées dans le tampon sans nom en mode ligne.
Courant en ligne: Si le mouvement partait de la position actuelle du curseur vers la fin du
tampon d'édition, inchangé. Sinon, définissez la première ligne du tampon d'édition qui fait partie
de la zone de texte spécifiée par la commande de mouvement.
Courant colonne: défini sur non- .
Shift Droite
Synopsis:
[compter] > mouvement
Si la commande de mouvement est la > commande répétée :
1. S'il y a moins de compter −1 lignes après la ligne courante dans le tampon d'édition, il
sera une erreur.
2. La zone de texte doit être de la ligne actuelle, jusqu'à et y compris la prochaine compter -1
lignes.
Décaler n'importe quelle ligne avec des caractères dans la zone de texte spécifiée par le compter et mouvement
commande une largeur de décalage (voir le ex largeur de décalage option) loin du début de la ligne, comme
décrit par le ex > commander. Les lignes non décalées doivent être copiées dans le tampon sans nom
en mode ligne.
Courant en ligne: Si le mouvement partait de la position actuelle du curseur vers la fin du
tampon d'édition, inchangé. Sinon, définissez la première ligne du tampon d'édition qui fait partie
de la zone de texte spécifiée par la commande de mouvement.
Courant colonne: défini sur non- .
Scanner En arrière pour Régulier Expression
Synopsis:
?
Scannez vers l'arrière ; la ? commande doit être équivalente à la / commande (voir Trouvez Régulier
Expression) avec les exceptions suivantes :
1. L'invite de saisie doit être un '?'.
2. Chaque recherche commence à partir du caractère précédant le premier caractère du dernier
match (ou, s'il s'agit de la première recherche, le caractère avant le caractère du curseur).
3. La direction de la recherche doit aller du curseur vers le début du tampon d'édition,
et de la numérisation enveloppante l'option d'édition affectera si la recherche se termine à la fin de la
tampon d'édition et continue.
4. La direction de recherche mémorisée doit être réglée sur arrière.
Exécution
Synopsis:
@tampon
Si la tampon est spécifié comme @, le dernier buffer exécuté sera utilisé. Si aucun précédent
tampon a été exécuté, ce sera une erreur.
Se comporte comme si le contenu du tampon nommé était saisi comme entrée standard. Après chaque
ligne d'un tampon en mode ligne, et toutes sauf la dernière ligne d'un tampon en mode caractère, se comportent
comme si un ont été saisis en entrée standard.
Si une erreur survient au cours de ce processus, un message d'erreur doit être écrit, et pas plus
les caractères résultant de l'exécution de cette commande seront traités.
Si un compter est spécifié, se comporte comme si ce nombre avait été entré comme entrée utilisateur avant le
personnages de la @ tampon ont été saisis.
Courant en ligne: Comme spécifié pour les commandes individuelles.
Courant colonne: Comme spécifié pour les commandes individuelles.
Inverser Témoignage client
Synopsis:
[compter] ~
Inverser la casse du caractère courant et du suivant compter −1 caractères, tel que
les caractères minuscules qui ont des homologues majuscules doivent être remplacés par des majuscules
caractères et les caractères majuscules qui ont des équivalents minuscules doivent être remplacés par
caractères minuscules, comme prescrit par les paramètres régionaux actuels. Aucun autre personnage ne doit être
concernés par cette commande.
S'il y a moins de compter −1 caractères après le curseur dans le tampon d'édition, compter
doit être ajusté au nombre de caractères après le curseur dans le tampon d'édition moins 1.
Pour les besoins de cette commande, le caractère suivant après le dernier non- sur le
ligne doit être le caractère suivant dans le tampon d'édition.
Courant en ligne: Réglez sur la ligne comprenant le (compter−1)ème caractère après le curseur.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie de (compter−1)ème caractère
après l'affichage du curseur.
Ajouter
Synopsis:
[compter] a
Entrez en mode de saisie de texte après la position actuelle du curseur. Aucun personnage déjà dans l'édition
buffer doit être affecté par cette commande. UNE compter doit faire en sorte que le texte d'entrée soit
ajouté compter −1 fois de plus à la fin de l'entrée.
Courant ligne/colonne: Comme spécifié pour les commandes de saisie de texte (voir Entrée Mode Commandes in
vi).
Ajouter at Fin de ligne
Synopsis:
[compter] A
Cette commande doit être équivalente à la vi commander:
$ [ compter ] a
(voir Ajouter).
Move Vers l'arrière à Précédent Word
Synopsis:
[compter] b
À l'exception du fait que des mots sont utilisés comme délimiteur au lieu de bigwords, cette commande
sera équivalent à la B commander.
Move Vers l'arrière à Précédent Grand mot
Synopsis:
[compter] B
Si le tampon d'édition est vide ou si le curseur est sur le premier caractère du tampon d'édition, il
sera une erreur. Si moins de compter les grands mots commencent entre le curseur et le début de
le tampon d'édition, compter doit être ajusté au nombre de débuts de bigword entre le
curseur et le début du tampon d'édition.
S'il est utilisé comme commande de mouvement :
1. La zone de texte doit être à partir du premier caractère du compterème grand mot précédent
commençant jusqu'au caractère de curseur non compris.
2. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: défini sur la ligne contenant le actuel colonne.
Courant colonne: défini sur la dernière colonne sur laquelle toute partie du premier caractère du
compterLe bigword précédent s'affiche.
Changer
Synopsis:
[tampon][compter] c mouvement
Si la commande de mouvement est la c commande répétée :
1. Le texte tampon doit être en mode ligne.
2. S'il y a moins de compter −1 lignes après la ligne courante dans le tampon d'édition, il
sera une erreur.
3. La zone de texte doit être de la ligne actuelle jusqu'à la ligne suivante inclusivement. compter -1
lignes.
Sinon, le mode de texte tampon et la région de texte doivent être tels que spécifiés par le mouvement
commander.
Le texte remplacé doit être copié dans tampon, si spécifié, et dans le tampon sans nom.
Si le texte à remplacer contient des caractères de plusieurs lignes ou si le tampon
texte est en mode ligne, le texte remplacé doit également être copié dans les tampons numériques.
Si le texte du tampon est en mode ligne :
1. Toutes les lignes contenant des caractères dans la région doivent être supprimées et l'éditeur doit
entrer en mode de saisie de texte au début d'une nouvelle ligne qui remplacera la première
ligne supprimée.
2. Si le indentation automatique l'option d'édition est définie, indentation automatique caractères égaux à indentation automatique
les caractères de la première ligne supprimés doivent être insérés comme s'ils avaient été saisis par l'utilisateur.
Sinon, si des caractères de plusieurs lignes se trouvent dans la zone de texte :
1. Le texte est supprimé.
2. Tout texte restant dans la dernière ligne de la zone de texte doit être ajouté à la première
ligne de la région et la dernière ligne de la région est supprimée.
3. L'éditeur doit entrer en mode de saisie de texte après le dernier caractère non supprimé de la
première ligne dans la zone de texte, le cas échéant ; sinon, sur la première colonne du premier
ligne dans la région.
Autrement:
1. Si le glyphe de «$» est plus petite que la région, la fin de la région doit être marquée
avec «$».
2. L'éditeur doit entrer en mode de saisie de texte, en écrasant la région de texte.
Courant ligne/colonne: Comme spécifié pour les commandes de saisie de texte (voir Entrée Mode Commandes in
vi).
Changer à Fin de ligne
Synopsis:
[tampon][compter] C
Cette commande doit être équivalente à la vi commander:
[tampon][compter] c$
Voir le c commander.
Supprimer
Synopsis:
[tampon][compter] d mouvement
Si la commande de mouvement est la d commande répétée :
1. Le texte tampon doit être en mode ligne.
2. S'il y a moins de compter −1 lignes après la ligne courante dans le tampon d'édition, il
sera une erreur.
3. La zone de texte doit être de la ligne actuelle jusqu'à la ligne suivante inclusivement. compter -1
lignes.
Sinon, le mode de texte tampon et la région de texte doivent être tels que spécifiés par le mouvement
commander.
Si en mode ouvert, et que la ligne actuelle est supprimée, et que la ligne reste à l'écran, un
'@' caractère doit être affiché comme premier glyphe de cette ligne.
Supprimer la zone de texte dans tampon, si spécifié, et dans le tampon sans nom. Si la
le texte à supprimer contient des caractères de plusieurs lignes ou le texte du tampon est
en mode ligne, le texte supprimé doit également être copié dans les tampons numériques.
Courant en ligne: défini sur la première ligne de zone de texte qui apparaît dans le tampon d'édition, sauf si
cette ligne a été supprimée, auquel cas elle doit être définie sur la dernière ligne de la modification
tampon, ou ligne 1 si le tampon d'édition est vide.
Courant colonne:
1. Si la ligne est vide, réglez sur la position de colonne 1.
2. Sinon, si le texte du tampon est en mode ligne ou si le mouvement était du curseur vers
la fin du tampon d'édition :
une. Si un caractère de la ligne actuelle est affiché dans la colonne actuelle, réglez sur
la dernière colonne qui affiche n'importe quelle partie de ce caractère.
b. Sinon, réglez sur la dernière colonne dans laquelle toute partie de tout caractère dans le
ligne s'affiche.
3. Sinon, si un caractère est affiché dans la colonne qui a commencé la zone de texte, définissez
à la dernière colonne qui affiche n'importe quelle partie de ce caractère.
4. Sinon, définissez la dernière colonne dans laquelle toute partie de tout caractère de la ligne est
affiché.
Supprimer à Fin de ligne
Synopsis:
[tampon] D
Supprimer le texte de la position actuelle jusqu'à la fin de la ligne actuelle ; équivalent à
le vi commander:
[tampon] d$
Move à Fin de mot
Synopsis:
[compter] e
À l'exception du fait que des mots sont utilisés à la place de bigwords comme délimiteur, cette commande
sera équivalent à la E commander.
Move à Fin de Bigword
Synopsis:
[compter] E
Si le tampon d'édition est vide, ce sera une erreur. Si moins de compter les grands mots se terminent entre
le curseur et la fin du tampon d'édition, compter sera adapté au nombre de
terminaisons bigword entre le curseur et la fin du tampon d'édition.
S'il est utilisé comme commande de mouvement :
1. La zone de texte doit être à partir du dernier caractère du comptere prochain grand mot jusqu'à et
y compris le caractère du curseur.
2. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: défini sur la ligne contenant la colonne actuelle.
Courant colonne: défini sur la dernière colonne sur laquelle toute partie du dernier caractère du
compterLe bigword suivant s'affiche.
Trouvez Personnage in Courant Gamme (Vers l'avant)
Synopsis:
[compter] f caractère
Ce sera une erreur si compter les occurrences du caractère ne se produisent pas après le curseur
dans la ligne.
S'il est utilisé comme commande de mouvement :
1. La plage de texte s'étend du caractère du curseur jusqu'au compterth
occurrence du caractère spécifié après le curseur.
2. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du compterème occurrence de
le caractère spécifié après l'apparition du curseur dans la ligne.
Trouvez Personnage in Courant Gamme (Sens inverse)
Synopsis:
[compter] F caractère
Ce sera une erreur si compter les occurrences du caractère ne se produisent pas avant le curseur
dans la ligne.
S'il est utilisé comme commande de mouvement :
1. La zone de texte doit être de la compterième occurrence du caractère spécifié avant
le curseur, jusqu'au caractère du curseur non compris.
2. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du compterème occurrence de
le caractère spécifié avant que le curseur n'apparaisse dans la ligne.
Move à Gamme
Synopsis:
[compter] G
If compter n'est pas spécifié, il s'agira par défaut de la dernière ligne du tampon d'édition. Si compter
est supérieure à la dernière ligne du tampon d'édition, ce sera une erreur.
S'il est utilisé comme commande de mouvement :
1. La zone de texte doit s'étendre de la ligne du curseur jusqu'à et y compris la ligne spécifiée.
2. Tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Mis à compter if compter est spécifié; sinon, la dernière ligne.
Courant colonne: défini sur non- .
Move à Crop Top of pour écran
Synopsis:
[compter] H
Si le début de la ligne compter supérieure à la première ligne dont toute partie
apparaît à l'écran n'existe pas, il doit s'agir d'une erreur.
S'il est utilisé comme commande de mouvement :
1. En mode ouvert, la zone de texte doit être la ligne courante.
2. Sinon, la zone de texte doit être de la ligne de départ jusqu'à (la
première ligne de l'écran + compter -1).
3. Tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
Si en mode ouvert, cette commande doit définir la colonne actuelle sur non- et ne rien faire
autre.
Sinon, il doit définir la ligne courante et la colonne courante comme suit.
Courant en ligne: Réglez sur (première ligne de l'écran + compter -1).
Courant colonne: défini sur non- .
insérer Avant Curseur
Synopsis:
[compter] i
Entrez en mode de saisie de texte avant la position actuelle du curseur. Aucun personnage déjà dans le
le tampon d'édition doit être affecté par cette commande. UNE compter doit faire en sorte que le texte d'entrée soit
ajouté compter −1 fois de plus à la fin de l'entrée.
Courant ligne/colonne: Comme spécifié pour les commandes de saisie de texte (voir Entrée Mode Commandes in
vi).
insérer at Début of Gamme
Synopsis:
[compter] I
Cette commande doit être équivalente à la vi commande ^[compter]i.
S'inscrire
Synopsis:
[compter] J
Si la ligne courante est la dernière ligne du tampon d'édition, ce sera une erreur.
Cette commande doit être équivalente à la ex rejoindre commande sans adresse, et un ex
commander compter valeur de 1 si compter n'a pas été spécifié ou si un compter de 1 a été spécifié, et
an ex commander compter valeur de compter −1 pour toute autre valeur de compter, sauf que le
la ligne et la colonne actuelles doivent être définies comme suit.
Courant en ligne: Inchangé.
Courant colonne: La dernière colonne dans laquelle toute partie du caractère suivant le dernier
caractère dans la ligne initiale est affiché, ou le dernier non- dans la ligne si non
caractères ont été ajoutés.
Move à Bas et Leggings of pour écran
Synopsis:
[compter] L
Si le début de la ligne compter moins que la dernière ligne dont une partie apparaît sur
l'affichage n'existe pas, ce doit être une erreur.
S'il est utilisé comme commande de mouvement :
1. En mode ouvert, la zone de texte doit être la ligne courante.
2. Sinon, la zone de texte doit inclure toutes les lignes depuis la ligne du curseur de départ jusqu'à
(la dernière ligne de l'affichage −(compter -1)).
3. Tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
1. Si en mode ouvert, cette commande doit définir la colonne actuelle sur non- et fait
rien d'autre.
2. Sinon, il doit définir la ligne actuelle et la colonne actuelle comme suit.
Courant en ligne: Réglez sur (la dernière ligne de l'affichage −(compter -1)).
Courant colonne: défini sur non- .
Mark Position
Synopsis:
m lettre
Cette commande doit être équivalente à la ex marque commande avec le caractère spécifié comme
argument.
Move à Milieu of pour écran
Synopsis:
M
La ligne médiane de l'affichage doit être calculée comme suit :
(les top en ligne of le affichage) + (((numéro of lignes affiché) + 1) / 2) -1
S'il est utilisé comme commande de mouvement :
1. En mode ouvert, la zone de texte doit être la ligne courante.
2. Sinon, la zone de texte doit inclure toutes les lignes depuis la ligne du curseur de départ jusqu'à
et incluant la ligne médiane de l'affichage.
3. Tout texte copié dans un tampon doit être en mode ligne.
S'il n'est pas utilisé comme commande de mouvement :
Si en mode ouvert, cette commande doit définir la colonne actuelle sur non- et ne rien faire
autre.
Sinon, il doit définir la ligne courante et la colonne courante comme suit.
Courant en ligne: Réglez sur la ligne médiane de l'affichage.
Courant colonne: défini sur non- .
Répéter Régulier Expression Trouvez (Vers l'avant)
Synopsis:
n
Si la direction de recherche mémorisée était vers l'avant, le n commande doit être équivalente à la
vi / commande sans caractères saisis par l'utilisateur. Sinon, il équivaut à
le vi ? commande sans caractères saisis par l'utilisateur.
Si la n est utilisée comme commande de mouvement pour le ! commande, l'éditeur ne doit pas
entre en mode de saisie de texte sur la dernière ligne de l'écran et se comporte comme si l'utilisateur
entré un seul '!' caractère comme entrée de texte.
Répéter Régulier Expression Trouvez (Sens inverse)
Synopsis:
N
Recherchez la prochaine correspondance du dernier modèle donné à / or ?, mais dans le sens inverse ;
c'est l'inverse de n.
Si la direction de recherche mémorisée était vers l'avant, le N commande doit être équivalente à la
vi ? commande sans caractères saisis par l'utilisateur. Sinon, il équivaut à
le vi / commande sans caractères saisis par l'utilisateur. Si la N la commande est utilisée comme
commande de mouvement pour le ! commande, l'éditeur ne doit pas entrer en mode de saisie de texte à la dernière
ligne à l'écran et doit se comporter comme si l'utilisateur avait saisi une seule ! personnage comme le
saisie de texte.
insérer Vide Gamme Vous trouverez ci-dessous
Synopsis:
o
Entrez en mode de saisie de texte dans une nouvelle ligne ajoutée après la ligne actuelle. UNE compter causera
le texte d'entrée à ajouter compter −1 fois de plus à la fin du texte déjà ajouté,
chaque fois à partir d'une nouvelle ligne ajoutée.
Courant ligne/colonne: Comme spécifié pour les commandes de saisie de texte (voir Entrée Mode Commandes in
vi).
insérer Vide Gamme Au-dessus de
Synopsis:
O
Entrez en mode de saisie de texte dans une nouvelle ligne insérée avant la ligne actuelle. UNE compter causera
le texte d'entrée à ajouter compter −1 fois de plus à la fin du texte déjà ajouté,
chaque fois à partir d'une nouvelle ligne ajoutée.
Courant ligne/colonne: Comme spécifié pour les commandes de saisie de texte (voir Entrée Mode Commandes in
vi).
mettre de Buffer Abonnements
Synopsis:
[tampon] p
Sinon tampon est spécifié, le tampon sans nom doit être utilisé.
Si le texte du tampon est en mode ligne, le texte doit être ajouté sous la ligne actuelle, et
chaque ligne du tampon deviendra une nouvelle ligne dans le tampon d'édition. UNE compter causera
le texte tampon à ajouter compter −1 fois de plus à la fin du texte déjà ajouté,
chaque fois à partir d'une nouvelle ligne ajoutée.
Si le texte du tampon est en mode caractère, le texte doit être ajouté à la ligne courante
après le curseur, et chaque ligne du tampon autre que la première et la dernière deviendra un
nouvelle ligne dans le tampon d'édition. UNE compter doit entraîner l'ajout du texte tampon compter -1
plusieurs fois jusqu'à la fin du texte déjà ajouté, à chaque fois en commençant après le dernier ajouté
caractère.
Courant en ligne: Si le texte du tampon est en mode ligne, définissez la ligne sur ligne +1 ; autrement,
inchangé.
Courant colonne: Si le texte du tampon est en mode ligne :
1. S'il y a un non- dans la première ligne du tampon, défini sur la dernière colonne de
dont toute partie du premier non- dans la ligne s'affiche.
2. S'il n'y a pas de non- dans la première ligne du tampon, défini sur la dernière colonne de
dont toute partie du dernier non- dans la première ligne du tampon est
affiché.
Si le texte du tampon est en mode caractère :
1. Si le texte dans le tampon provient de plusieurs lignes, définissez la dernière colonne
sur lequel n'importe quelle portion du premier caractère du tampon est affichée.
2. Sinon, si le tampon est le tampon sans nom, définissez la dernière colonne sur laquelle
partie du dernier caractère du tampon s'affiche.
3. Sinon, définissez la première colonne sur laquelle toute partie du premier caractère de
le tampon s'affiche.
mettre de Buffer Avant
Synopsis:
[tampon] P
Sinon tampon est spécifié, le tampon sans nom doit être utilisé.
Si le texte tampon est en mode ligne, le texte doit être inséré au-dessus de la ligne actuelle, et
chaque ligne du tampon deviendra une nouvelle ligne dans le tampon d'édition. UNE compter causera
le texte tampon à ajouter compter −1 fois de plus à la fin du texte déjà ajouté,
chaque fois à partir d'une nouvelle ligne ajoutée.
Si le texte tampon est en mode caractère, le texte doit être inséré dans la ligne courante
avant le curseur, et chaque ligne du tampon autre que la première et la dernière deviendra
une nouvelle ligne dans le tampon d'édition. UNE compter doit entraîner l'ajout du texte tampon compter -1
plusieurs fois jusqu'à la fin du texte déjà ajouté, à chaque fois en commençant après le dernier ajouté
caractère.
Courant en ligne: Inchangé.
Courant colonne: Si le texte du tampon est en mode ligne :
1. S'il y a un non- dans la première ligne du tampon, défini sur la dernière colonne de
quelle partie de ce caractère est affichée.
2. S'il n'y a pas de non- dans la première ligne du tampon, défini sur la dernière colonne de
dont toute partie du dernier non- dans la première ligne du tampon est
affiché.
Si le texte du tampon est en mode caractère :
1. Si le texte dans le tampon provient de plusieurs lignes, définissez la dernière colonne
sur lequel n'importe quelle portion du premier caractère du tampon est affichée.
2. Sinon, si le tampon est le tampon sans nom, définissez la dernière colonne sur laquelle
partie du dernier caractère du tampon s'affiche.
3. Sinon, définissez la première colonne sur laquelle toute partie du premier caractère de
le tampon s'affiche.
Entrer ex Mode
Synopsis:
Q
Quittez le mode visuel ou ouvert et entrez ex mode de commande.
Courant en ligne: Inchangé.
Courant colonne: Inchangé.
remplacer Personnage
Synopsis:
[compter] r caractère
Remplacez le compter caractères à et après le curseur avec le caractère spécifié. Si
il y a moins de compter non- caractères à et après le curseur sur la ligne, il
sera une erreur.
Si le personnage est ‐V, tout caractère suivant autre que le sera dépouillé
de toute signification particulière et utilisé comme caractère littéral.
Si le personnage est , aucun remplacement ne doit être effectué et la ligne actuelle et le courant
colonne doit rester inchangée.
Si le personnage est ou , compter de nouvelles lignes doivent être ajoutées au
ligne actuelle. Toutes ces lignes sauf la dernière doivent être vides. compter caractères à et
après le curseur doit être ignoré, et tout caractère restant après le curseur dans le
la ligne actuelle doit être déplacée vers la dernière des nouvelles lignes. Si la indentation automatique l'option d'édition est
ensemble, ils sont précédés du même nombre de indentation automatique caractères trouvés sur la ligne
à partir duquel la commande a été exécutée.
Courant en ligne: Inchangé sauf si le caractère de remplacement est un ou
, auquel cas il doit être réglé sur la ligne + compter.
Courant colonne: défini sur la dernière position de colonne sur laquelle une partie de la dernière colonne remplacée
caractère est affiché, ou si le caractère de remplacement a provoqué la création de nouvelles lignes,
réglé sur non- .
remplacer Personnages
Synopsis:
R
Entrer en mode de saisie de texte à la position actuelle du curseur en remplaçant éventuellement le texte sur le
ligne actuelle. UNE compter doit entraîner l'ajout du texte d'entrée compter −1 fois de plus au
fin de la saisie.
Courant ligne/colonne: Comme spécifié pour les commandes de saisie de texte (voir Entrée Mode Commandes in
vi).
Représentant(e) suppléant(e) Personnage
Synopsis:
[tampon][compter] s
Cette commande doit être équivalente à la vi commander:
[tampon][compter] c
Représentant(e) suppléant(e) Lignés
Synopsis:
[tampon][compter] S
Cette commande doit être équivalente à la vi commander:
[tampon][compter] c_
Move Curseur à Avant Personnage (Vers l'avant)
Synopsis:
[compter] t caractère
Ce sera une erreur si compter les occurrences du caractère ne se produisent pas après le curseur
dans la ligne.
S'il est utilisé comme commande de mouvement :
1. La zone de texte doit être du curseur jusqu'à mais non compris le compterth
occurrence du caractère spécifié après le curseur.
2. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du caractère avant le
compterième occurrence du caractère spécifié après l'apparition du curseur dans la ligne.
Move Curseur à Après Personnage (Sens inverse)
Synopsis:
[compter] T caractère
Ce sera une erreur si compter les occurrences du caractère ne se produisent pas avant le curseur
dans la ligne.
S'il est utilisé comme commande de mouvement :
1. Si le caractère avant le curseur est le caractère spécifié, ce sera une erreur.
2. La zone de texte doit être du caractère avant le curseur jusqu'à mais non compris
le compterième occurrence du caractère spécifié avant le curseur.
3. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
Courant en ligne: Inchangé.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du caractère après le
compterième occurrence du caractère spécifié avant que le curseur n'apparaisse dans la ligne.
annuler
Synopsis:
u
Cette commande doit être équivalente à la ex défaire commande sauf que la ligne courante et
la colonne actuelle doit être définie comme suit :
Courant en ligne: défini sur la première ligne ajoutée ou modifiée le cas échéant ; sinon, passez à la ligne
précédant tout texte supprimé s'il en existe un ; sinon, passez à la ligne 1.
Courant colonne: Si vous annulez un ex commande, réglez sur le premier non- .
Sinon, si vous annulez une commande de saisie de texte :
1. Si la commande était une C, c, O, o, R, S, ou s commande, la colonne actuelle doit être définie
à la valeur qu'il avait au moment de la saisie de la commande de saisie de texte.
2. Sinon, définissez la dernière colonne dans laquelle toute partie du premier caractère après
le texte supprimé est affiché, ou, si aucun non- les caractères suivent le texte
supprimée de cette ligne, définie sur la dernière colonne dans laquelle toute partie de la dernière
non- dans la ligne s'affiche, ou 1 si la ligne est vide.
Sinon, si une seule ligne a été modifiée (c'est-à-dire ni ajoutée ni supprimée) par le u commander:
1. Si du texte a été ajouté ou modifié, définissez la dernière colonne dans laquelle toute partie de la première
caractère ajouté ou modifié s'affiche.
2. Si du texte a été supprimé, définissez la dernière colonne dans laquelle toute partie de la première
caractère après l'affichage du texte supprimé ou, s'il n'y a pas de non- personnages
suivre le texte supprimé, défini sur la dernière colonne dans laquelle toute partie du dernier
non- dans la ligne s'affiche, ou 1 si la ligne est vide.
Sinon, réglez sur non- .
annuler Courant Gamme
Synopsis:
U
Restaure la ligne actuelle à son état immédiatement avant la dernière fois où elle
est devenu la ligne actuelle.
Courant en ligne: Inchangé.
Courant colonne: défini sur la première colonne de la ligne dans laquelle toute partie de la première
caractère de la ligne s'affiche.
Move à Début of Word
Synopsis:
[compter] w
À l'exception du fait que des mots sont utilisés comme délimiteur au lieu de bigwords, cette commande
sera équivalent à la W commander.
Move à Début of Grand mot
Synopsis:
[compter] W
Si le tampon d'édition est vide, ce sera une erreur. S'il y a moins de compter grands mots
entre le curseur et la fin du tampon d'édition, compter doit être ajusté pour déplacer le
curseur sur le dernier grand mot dans le tampon d'édition.
S'il est utilisé comme commande de mouvement :
1. Si la commande associée est c, compter est 1, et le curseur est sur un , la région
du texte doit être le caractère actuel et aucune autre action ne doit être entreprise.
2. S'il y a moins de compter bigwords entre le curseur et la fin de la modification
tampon, la commande doit réussir et la région de texte doit inclure le dernier
caractère du tampon d'édition.
3. S'il y a caractères ou une fin de ligne précédant le compterle grand mot,
et la commande associée est c, la région du texte doit aller jusqu'à et y compris le
dernier caractère avant le précédent caractères ou fin de ligne.
4. S'il y a caractères ou une fin de ligne qui précèdent le bigword, et le
la commande associée est d or y, la région du texte doit aller jusqu'au dernier
avant le début du bigword ou de la fin de ligne.
5. Tout texte copié dans un tampon doit être en mode caractère.
S'il n'est pas utilisé comme commande de mouvement :
1. Si le curseur est sur le dernier caractère du tampon d'édition, ce sera une erreur.
Courant en ligne: défini sur la ligne contenant la colonne actuelle.
Courant colonne: défini sur la dernière colonne dans laquelle toute partie du premier caractère du
compterLe bigword suivant s'affiche.
Supprimer Personnage at Curseur
Synopsis:
[tampon][compter] x
Supprimer l' compter caractères à et après le caractère actuel dans tampon, si spécifié,
et dans le tampon sans nom.
Si la ligne est vide, ce sera une erreur. S'il y a moins de compter non-
caractères à et après le curseur sur la ligne courante, compter sera ajusté à la
nombre de non- caractères à et après le curseur.
Courant en ligne: Inchangé.
Courant colonne: Si la ligne est vide, réglez sur la position de colonne 1. Sinon, s'il y avait
compter ou moins non- caractères à et après le curseur sur la ligne courante, mis à
la dernière colonne qui affiche n'importe quelle partie du dernier non- de la ligne. Autrement,
inchangé.
Supprimer Personnage Avant Curseur
Synopsis:
[tampon][compter] X
Supprimer l' compter caractères avant le caractère actuel dans tampon, si spécifié, et
dans le tampon sans nom.
S'il n'y a pas de caractères avant le caractère courant sur la ligne courante, il doit être
une erreur. S'il y a moins de compter caractères précédents sur la ligne courante, compter
doit être ajusté au nombre de caractères précédents sur la ligne.
Courant en ligne: Inchangé.
Courant colonne: défini sur (colonne actuelle − la largeur des caractères supprimés).
ricain
Synopsis:
[tampon][compter] y mouvement
Copiez (copiez) la zone de texte dans tampon, si spécifié, et dans le tampon sans nom.
Si la commande de mouvement est la y commande répétée :
1. Le tampon doit être en mode ligne.
2. S'il y a moins de compter −1 lignes après la ligne courante dans le tampon d'édition, il
sera une erreur.
3. La zone de texte doit être de la ligne actuelle jusqu'à la ligne suivante inclusivement. compter -1
lignes.
Sinon, le mode de texte tampon et la région de texte doivent être tels que spécifiés par le mouvement
commander.
Courant en ligne: Si le mouvement partait de la position actuelle du curseur vers la fin du
tampon d'édition, inchangé. Sinon, définissez la première ligne du tampon d'édition qui fait partie
de la zone de texte spécifiée par la commande de mouvement.
Courant colonne:
1. Si le mouvement partait de la position actuelle du curseur vers la fin du tampon d'édition,
inchangé.
2. Sinon, si la ligne actuelle est vide, réglez sur la position de colonne 1.
3. Sinon, réglez sur la dernière colonne qui affiche une partie du premier caractère de la
fichier faisant partie de la zone de texte spécifiée par la commande de mouvement.
ricain Courant Gamme
Synopsis:
[tampon][compter] Y
Cette commande doit être équivalente à la vi commander:
[tampon][compter] y_
Redessiner Vitrine
Si en mode ouvert, le z commande doit avoir le synopsis :
Synopsis:
[compter] z
If compter n'est pas spécifié, il sera par défaut le fenêtre modifier l'option -1. le z commander
sera équivalent à la ex z commande, avec un caractère de type de = et compter of compter
−2, sauf que la ligne actuelle et la colonne actuelle doivent être définies comme suit, et le
fenêtre l'option d'édition ne doit pas être affectée. Si le calcul pour le compter l'argument serait
donner un nombre négatif, le compter argument à la ex z commande doit être zéro. Un blanc
ligne doit être écrite après l'écriture de la dernière ligne.
Courant en ligne: Inchangé.
Courant colonne: Inchangé.
S'il n'est pas en mode ouvert, le z commande doit avoir le synopsis suivant :
Synopsis:
[en ligne] z [compter] caractère
If en ligne n'est pas spécifié, il sera par défaut la ligne courante. Si en ligne est spécifié, mais
est supérieur au nombre de lignes dans le tampon d'édition, il sera par défaut le nombre de
lignes dans le tampon d'édition.
If compter est spécifié, la valeur de fenêtre l'option d'édition doit être définie sur compter (comme
Décrit dans le ex fenêtre commande), et l'écran doit être redessiné.
en ligne doit être placé comme spécifié par les caractères suivants :
,
Placez le début de la ligne sur la première ligne de l'affichage.
. Placez le début de la ligne au centre de l'écran. La ligne médiane du
l'affichage doit être calculé comme décrit pour le M commander.
− Placer une portion indéterminée de la ligne sur la dernière ligne de l'affichage.
+ Si en ligne a été spécifié, équivalent à la Cas. Si en ligne n'a pas été précisé,
afficher un écran où la première ligne de l'affichage doit être (dernière ligne actuelle)
+1. S'il n'y a pas de lignes après la dernière ligne de l'affichage, il s'agit d'une erreur.
^ Si en ligne a été spécifié, afficher un écran où la dernière ligne de l'affichage doit
contenir une partie non spécifiée de la première ligne d'un affichage qui avait un
partie non spécifiée de la ligne spécifiée sur la dernière ligne de l'affichage. Si ce
résultats du calcul dans une ligne avant le début du tampon d'édition, affichez le
premier écran du tampon d'édition.
Sinon, affichez un écran où la dernière ligne de l'affichage doit contenir un
partie non spécifiée de (première ligne actuelle -1). Si ce calcul aboutit à un
ligne avant le début du tampon d'édition, ce sera une erreur.
Courant en ligne: Si en ligne et de la '^' caractère ont été spécifiés :
1. Si le premier écran s'est affiché à la suite de la commande tentant d'afficher
lignes avant le début du tampon d'édition : si le premier écran était déjà
affiché, inchangé ; sinon, mis à (première ligne actuelle -1).
2. Sinon, réglez sur la dernière ligne de l'affichage.
If en ligne et de la '+' caractère ont été spécifiés, réglés sur la première ligne de l'affichage.
Sinon, si en ligne a été spécifié, défini sur en ligne.
Sinon, inchangé.
Courant colonne: défini sur non- .
Sortie
Synopsis:
ZZ
Cette commande doit être équivalente à la ex quitter commande sans adresse, à la fin !, ou
nom de fichier (voir le ex quitter commander).
Entrée Mode Commandes in vi
En mode de saisie de texte, la ligne actuelle doit être composée de zéro ou plusieurs des éléments suivants
catégories, plus la terminaison :
1. Caractères précédant le point d'entrée de la saisie de texte
Les caractères de cette catégorie ne doivent pas être modifiés en mode de saisie de texte.
2. indentation automatique caractères
indentation automatique les caractères doivent être automatiquement insérés dans chaque ligne créée
en mode de saisie de texte, soit suite à la saisie d'un ou
en mode de saisie de texte, ou comme effet de la commande elle-même ; par example, O or o
(voir le ex indentation automatique commande), comme si elle avait été saisie par l'utilisateur.
Il doit être possible d'effacer indentation automatique personnages avec le commande ‐D ; ce
n'est pas précisé s'ils peuvent être effacés par -H, -U, et ‐W
personnages. Effacer tout indentation automatique caractère transforme le glyphe en colonnes d'effacement et
supprime le caractère du tampon d'édition, mais ne change pas sa représentation sur
l'écran.
3. Caractères de saisie de texte
Les caractères de saisie de texte sont les caractères saisis par l'utilisateur. Effacement de toute saisie de texte
le caractère transforme le glyphe en colonnes d'effacement et supprime le caractère de l'édition
tampon, mais ne change pas sa représentation à l'écran.
Chaque caractère de saisie de texte saisi par l'utilisateur (qui n'a pas de signification particulière)
seront traités comme suit :
une. Le caractère de saisie de texte doit être ajouté au dernier caractère de la modification
tampon des première, deuxième ou troisième catégories.
b. S'il n'y a pas de colonnes d'effacement à l'écran, la commande de saisie de texte était la R
commande, et les caractères de la cinquième catégorie à partir de la ligne d'origine suivent la
curseur, le prochain caractère de ce type sera supprimé du tampon d'édition. Si la
ouverture lente l'option d'édition n'est pas définie, le glyphe correspondant à l'écran doit
deviennent des colonnes d'effacement.
c. S'il y a des colonnes d'effacement sur l'écran, autant de colonnes qu'elles occupent, ou autant
sont nécessaires, doivent être écrasés pour afficher le caractère de saisie de texte. (Si seulement
partie d'un glyphe à plusieurs colonnes est écrasée, le reste doit être laissé sur le
screen, et continuent d'être traités comme des colonnes d'effacement ; il n'est pas précisé si le
le reste du glyphe est modifié de quelque manière que ce soit.)
ré. Si des colonnes de ligne d'affichage supplémentaires sont nécessaires pour afficher le caractère de saisie de texte :
je. Si la ouverture lente l'option d'édition est définie, les caractères d'entrée de texte doivent être
affiché sur les colonnes de ligne d'affichage suivantes, en écrasant tous les caractères
affichés dans ces colonnes.
ii. Sinon, tous les caractères actuellement affichés sur ou après la colonne sur le
ligne d'affichage où le caractère d'entrée de texte doit être affiché doit être
avancé le nombre de colonnes de ligne d'affichage nécessaire pour afficher le reste
du caractère de saisie de texte.
4. Effacer les colonnes
Les colonnes d'effacement ne font logiquement pas partie du tampon d'édition, n'apparaissant qu'à l'écran,
et peuvent être écrasés à l'écran par des caractères de saisie de texte ultérieurs. Lorsque le texte
le mode de saisie se termine, toutes les colonnes d'effacement n'apparaîtront plus à l'écran.
Les colonnes d'effacement sont initialement la région de texte spécifiée par le c commande (voir
Changer); cependant, en effaçant indentation automatique ou les caractères de saisie de texte provoquent les glyphes du
caractères effacés à traiter comme des colonnes d'effacement.
5. Caractères suivant la zone de texte pour le c commande ou le point d'entrée de saisie de texte
pour toutes les autres commandes
Les caractères de cette catégorie ne doivent pas être modifiés pendant le mode de saisie de texte, sauf si
spécifié dans la catégorie 3.b. pour le R commande de saisie de texte, ou comme personnages
supprimé lorsqu'un ou est saisi.
Il n'est pas précisé s'il s'agit d'une erreur de tenter d'effacer après le début d'une ligne
qui a été créé par l'entrée d'un ou pendant le mode de saisie de texte.
S'il ne s'agit pas d'une erreur, l'éditeur se comportera comme si le caractère d'effacement avait été saisi
immédiatement après le dernier caractère de saisie de texte saisi sur la ligne précédente, et tous
le non- les caractères de la ligne courante doivent être traités comme des colonnes d'effacement.
Lorsque vous accédez au mode de saisie de texte ou après la saisie d'un caractère de mode de saisie de texte (sauf
comme spécifié pour les caractères spéciaux ci-dessous), le curseur doit être positionné comme suit :
1. Sur la première colonne qui affiche n'importe quelle partie de la première colonne d'effacement, s'il en existe une
2. Sinon, si le ouverture lente l'option d'édition est définie, sur la première colonne de ligne d'affichage après
le dernier caractère de la première, de la deuxième ou de la troisième catégorie, s'il en existe une
3. Sinon, la première colonne qui affiche une partie du premier caractère du cinquième
catégorie, s'il en existe une
4. Sinon, la colonne de ligne d'affichage après le dernier caractère du premier, deuxième ou
troisièmes catégories, s'il en existe
5. Sinon, en position de colonne 1
Les caractères qui sont mis à jour à l'écran pendant le mode de saisie de texte ne sont pas spécifiés,
à part cela, le dernier caractère d'entrée de texte doit toujours être mis à jour et, si le
ouverture lente l'option d'édition n'est pas définie, le caractère actuel du curseur doit toujours être mis à jour.
Les spécifications suivantes concernent les caractères de commande saisis en mode de saisie de texte.
NUL
Synopsis:
NUL
Si le premier caractère du texte saisi est NUL, le dernier texte saisi doit être
saisie comme si elle avait été saisie par l'utilisateur, puis le mode de saisie de texte doit être quitté. Le texte doit
être saisi littéralement ; c'est-à-dire que les caractères ne sont ni macro ni abréviation étendus, ni
sont des caractères interprétés d'une manière spéciale. Il n'est pas précisé si
les mises en œuvre doivent prendre en charge plus de 256 octets de texte d'entrée mémorisé.
-RÉ
Synopsis:
-RÉ
le Le caractère ‐D n'aura pas de signification particulière lorsqu'il est en mode de saisie de texte pour un
commande orientée ligne (voir Command Descriptions in vi).
Cette commande n'a pas besoin d'être prise en charge sur les terminaux en mode bloc.
Si le curseur ne suit pas un indentation automatique personnage ou un indentation automatique personnage et un
«0 ' or '^' personnage:
1. Si le curseur est en position de colonne 1, le Le caractère ‐D doit être ignoré
et aucune autre mesure prise.
2. Sinon, le Le caractère ‐D n'a pas de signification particulière.
Si le dernier caractère saisi était un «0 ', le curseur doit être déplacé à la position de colonne 1.
Sinon, si le dernier caractère saisi était un '^', le curseur doit être déplacé vers la colonne
position 1. De plus, le indentation automatique le niveau de la ligne d'entrée suivante doit être dérivé
de la même ligne à partir de laquelle le indentation automatique le niveau de la ligne d'entrée actuelle a été dérivé.
Sinon, le curseur doit revenir à la colonne après le décalage précédent (voir
le ex largeur de décalage commande) frontière.
Tous les glyphes sur les colonnes entre la position de départ du curseur et (inclusivement) le
la position du curseur de fin deviendra des colonnes d'effacement comme décrit dans Entrée Mode Commandes in
vi.
Courant en ligne: Inchangé.
Courant colonne: mis à 1 si le -D était précédé d'un '^' or «0 '; sinon, définissez
à (colonne −1) −((colonne −2) % largeur de décalage).
-H
Synopsis:
-H
Si vous êtes en mode saisie de texte pour une commande orientée ligne et qu'il n'y a pas de caractères à effacer,
le mode de saisie de texte doit être terminé, aucune autre action ne doit être effectuée pour cette commande, et
la ligne et la colonne actuelles doivent être inchangées.
S'il y a des caractères autres que indentation automatique caractères saisis sur le
ligne courante avant le curseur, le curseur reculera d'un caractère.
Sinon, s'il y a indentation automatique caractères sur la ligne courante avant le curseur, il est
mise en œuvre définie si le La commande ‐H est une erreur ou si le curseur se déplace
retour un indentation automatique caractère.
Sinon, si le curseur est en position de colonne 1 et qu'il y a des lignes précédentes qui ont
été entrée, il est défini par la mise en œuvre si le La commande ‐H est une erreur ou si
cela équivaut à entrer ‐H après le dernier caractère saisi sur le précédent
ligne d'entrée.
Sinon, ce sera une erreur.
Tous les glyphes sur les colonnes entre la position de départ du curseur et (inclusivement) le
la position du curseur de fin deviendra des colonnes d'effacement comme décrit dans Entrée Mode Commandes in
vi.
Le caractère d'effacement actuel (voir Sty) doit entraîner une action équivalente à la -H
commande, sauf si le caractère précédemment inséré était un , auquel cas il
sera comme si le caractère littéral d'effacement courant avait été inséré à la place du
.
Courant en ligne: Inchangé, à moins que les lignes saisies précédemment ne soient effacées, auquel cas
être mis à la ligne -1.
Courant colonne: défini sur la première colonne qui affiche toute partie du caractère sauvegardé
au-dessus de.
Synopsis:
-J
-M
Si l'entrée faisait partie d'une commande orientée ligne, le mode d'entrée de texte doit être arrêté et le
La commande doit continuer l'exécution avec l'entrée fournie.
Sinon, terminer la ligne en cours. S'il n'y a pas de caractères autres que indentation automatique
caractères sur la ligne, tous les caractères sur la ligne doivent être ignorés. Sinon, c'est
non précisé si le indentation automatique les caractères de la ligne sont modifiés en saisissant ces
caractères.
Continuer le mode de saisie de texte sur une nouvelle ligne ajoutée après la ligne actuelle. Si la ouverture lente
l'option d'édition est définie, les lignes à l'écran sous la ligne actuelle ne doivent pas être poussées
vers le bas, mais le premier d'entre eux sera effacé et apparaîtra écrasé.
Sinon, les lignes de l'écran en dessous de la ligne actuelle seront poussées vers le bas.
Si la indentation automatique l'option d'édition est définie, un nombre approprié de indentation automatique les caractères doivent
être ajouté comme préfixe à la ligne comme décrit par le ex indentation automatique possibilité d'édition.
Toutes les colonnes après le curseur qui sont des colonnes d'effacement (comme décrit dans Entrée Mode Commandes
in vi) doit être rejeté.
Si la indentation automatique l'option d'édition est définie, tout caractères suivant immédiatement le
curseur doit être ignoré.
Tous les caractères restant après le curseur seront transférés sur la nouvelle ligne, positionnés
après tout indentation automatique caractères.
Courant en ligne: Réglez sur la ligne actuelle +1.
Courant colonne: défini sur la première colonne qui affiche n'importe quelle partie du premier caractère
après le indentation automatique caractères sur la nouvelle ligne, le cas échéant, ou la position de la première colonne
après le dernier indentation automatique caractère, le cas échéant, ou position de colonne 1.
-T
Synopsis:
-T
le Le caractère ‐T n'aura pas de signification particulière lorsqu'il est en mode de saisie de texte pour un
commande orientée ligne (voir Command Descriptions in vi).
Cette commande n'a pas besoin d'être prise en charge sur les terminaux en mode bloc.
Comportez-vous comme si l'utilisateur avait saisi le nombre minimum de caractères nécessaires pour se déplacer
le curseur avance à la position de la colonne après le prochain largeur de décalage (voir le ex largeur de décalage
commande) frontière.
Courant en ligne: Inchangé.
Courant colonne: Mis à colonne + largeur de décalage − ((colonne −1) % largeur de décalage).
-U
Synopsis:
-U
S'il y a des caractères autres que indentation automatique caractères saisis sur le
ligne courante avant le curseur, le curseur se déplacera au premier caractère entré après
le indentation automatique caractères.
Sinon, s'il y a indentation automatique caractères sur la ligne courante avant le curseur, il est
mise en œuvre définie si le La commande ‐U est une erreur ou si le curseur se déplace
à la première position de colonne sur la ligne.
Sinon, si le curseur est en position de colonne 1 et qu'il y a des lignes précédentes qui ont
été entrée, il est défini par la mise en œuvre si le La commande ‐U est une erreur ou si
cela équivaut à entrer ‐U après le dernier caractère saisi sur le précédent
ligne d'entrée.
Sinon, ce sera une erreur.
Tous les glyphes sur les colonnes entre la position de départ du curseur et (inclusivement) le
la position du curseur de fin deviendra des colonnes d'effacement comme décrit dans Entrée Mode Commandes in
vi.
Le courant tuer caractère (voir Sty) doit entraîner une action équivalente à la ‐U
commande, sauf si le caractère précédemment inséré était un , auquel cas il
sera comme si le courant littéral tuer caractère a été inséré à la place du
.
Courant en ligne: Inchangé, à moins que les lignes saisies précédemment ne soient effacées, auquel cas
être mis à la ligne -1.
Courant colonne: défini sur la première colonne qui affiche n'importe quelle partie du dernier caractère
sauvegardé plus.
-V
Synopsis:
-V
-Q
Autoriser la saisie de tout caractère suivant, autre que ‐J ou le , comme un
caractère littéral, supprimant toute signification particulière qu'il peut avoir pour l'éditeur dans le texte
mode d'entrée. Si un ‐V ou ‐Q est saisi avant un ‐J ou ,
la ‐V ou Le caractère ‐Q doit être ignoré et le ‐J ou
doit se comporter comme décrit dans le caractère de commande pendant le mode d'entrée.
Aux fins d'affichage uniquement, l'éditeur doit se comporter comme si un '^' le personnage était
entré, et le curseur doit être positionné comme s'il écrasait le '^' personnage. Lorsqu'un
caractère suivant est saisi, l'éditeur doit se comporter comme si ce caractère avait été saisi
à la place de l'original ‐V ou caractère ‐Q.
Courant en ligne: Inchangé.
Courant colonne: Inchangé.
-W
Synopsis:
-W
S'il y a des caractères autres que indentation automatique caractères saisis sur le
ligne courante avant le curseur, le curseur revient sur le dernier mot précédant
le curseur (y compris tout caractères entre la fin du dernier mot et le
curseur courant); le curseur ne doit pas se déplacer avant le premier caractère après la fin de
tout indentation automatique caractères.
Sinon, s'il y a indentation automatique caractères sur la ligne courante avant le curseur, il est
mise en œuvre définie si le La commande ‐W est une erreur ou si le curseur se déplace
à la première position de colonne sur la ligne.
Sinon, si le curseur est en position de colonne 1 et qu'il y a des lignes précédentes qui ont
été entrée, il est défini par la mise en œuvre si le La commande ‐W est une erreur ou si
cela équivaut à entrer ‐W après le dernier caractère saisi sur le précédent
ligne d'entrée.
Sinon, ce sera une erreur.
Tous les glyphes sur les colonnes entre la position de départ du curseur et (inclusivement) le
la position du curseur de fin deviendra des colonnes d'effacement comme décrit dans Entrée Mode Commandes in
vi.
Courant en ligne: Inchangé, à moins que les lignes saisies précédemment ne soient effacées, auquel cas
être mis à la ligne -1.
Courant colonne: défini sur la première colonne qui affiche n'importe quelle partie du dernier caractère
sauvegardé plus.
Synopsis:
Si l'entrée faisait partie d'une commande orientée ligne :
1. Si interrompre a été entré, le mode de saisie de texte doit être terminé et l'éditeur doit
revenir en mode commande. Le terminal doit être alerté.
2. Si a été entré, le mode de saisie de texte doit être terminé et la commande doit
continuer l'exécution avec l'entrée fournie.
Sinon, quittez le mode de saisie de texte et revenez au mode de commande.
Toutes indentation automatique caractères saisis sur les lignes nouvellement créées qui n'ont pas d'autres non-
les caractères doivent être supprimés.
Tout leader indentation automatique et les caractères sur les lignes nouvellement créées doivent être réécrits dans
être le nombre minimum de caractères possibles.
L'écran doit être réaffiché si nécessaire pour correspondre au contenu du tampon d'édition.
Courant en ligne: Inchangé.
Courant colonne:
1. S'il y a des caractères de saisie de texte sur la ligne actuelle, la colonne doit être définie sur
dernière colonne où n'importe quelle portion du dernier caractère de saisie de texte est affichée.
2. Sinon, si un caractère est affiché dans la colonne courante, inchangé.
3. Sinon, réglez sur la position de colonne 1.
EXIT STATUT
Les valeurs de sortie suivantes doivent être renvoyées :
0 Achèvement réussi.
>0 Une erreur s'est produite.
CONSÉQUENCES OF LES ERREURS
Lorsqu'une erreur est rencontrée et que l'entrée standard n'est pas un fichier de périphérique terminal, vi
ne doit pas écrire le fichier ni revenir en mode de commande ou de saisie de texte, et doit se terminer par
un état de sortie non nul.
Sinon, lorsqu'une erreur irrécupérable est rencontrée, elle doit être équivalente à un SIGHUP
événement asynchrone.
Sinon, lorsqu'une erreur est rencontrée, l'éditeur doit se comporter comme spécifié dans Command
Descriptions in vi.
Pour Abonnement les sections sommes-nous informatif.
INSCRIPTION UTILISATION
Aucun.
EXEMPLES
Aucun.
RAISONNEMENT
Voir la JUSTIFICATION pour ex Pour plus d'informations sur vi. Des portions majeures de la vi utilitaire
point de spécification à ex pour éviter une divergence par inadvertance. Tandis que ex et mes vi avons
historiquement été implémenté comme un seul utilitaire, cela n'est pas requis par POSIX.1‐2008.
Il est reconnu que des portions de vi serait difficile, voire impossible, à mettre en œuvre
de manière satisfaisante sur un terminal en mode bloc, ou un terminal sans aucune forme de curseur
adressage, il n'est donc pas obligatoire que ces fonctionnalités fonctionnent sur tous
terminaux. Il est toutefois prévu qu'un vi la mise en œuvre devrait fournir la pleine
ensemble de capacités sur tous les terminaux capables de les prendre en charge.
Historiquement, vi quitté immédiatement si l'entrée standard n'était pas un terminal. POSIX.1‐2008
autorise, mais n'exige pas, ce comportement. Une condition de fin de fichier n'est pas équivalente
à un caractère de fin de fichier. Un caractère commun de fin de fichier, ‐D, est historiquement
a vi commander.
Le texte de la section STDOUT reflète l'utilisation du verbe l’affichage dans cette section;
certaines implémentations de vi utiliser la sortie standard pour écrire sur le terminal, mais POSIX.1‐2008
n'exige pas que ce soit le cas.
Historiquement, les implémentations revenaient en mode ouvert si le terminal était incapable de
prenant en charge le mode visuel complet. POSIX.1‐2008 requiert ce comportement. Historiquement, l'ouverture
mode de vi se comportait à peu près de manière équivalente au mode visuel, à l'exception que seul un
une seule ligne du tampon d'édition (une ``ligne de tampon'') était maintenue à jour à tout moment. Ce
la ligne était normalement affichée sur l'avant-dernière ligne d'un terminal avec adressage du curseur
(et la dernière ligne remplissait ses fonctions visuelles normales pour les commandes orientées ligne et
messages). De plus, quelques commandes se comportaient différemment en mode ouvert qu'en mode visuel.
mode. POSIX.1‐2008 exige la conformité à la pratique historique.
Historiquement, ex et mes vi les implémentations se sont attendues à ce que le texte se déroule de la manière habituelle
Ordre européen/latin de gauche à droite, de haut en bas. Il n'y a aucune exigence dans
POSIX.1‐2008 que ce soit le cas. La spécification a été délibérément écrite en utilisant des mots
comme ``avant'', ``après'', ``premier'' et ``dernier'' afin de permettre aux implémentations de
prennent en charge l'ordre naturel du texte de la langue.
Historiquement, les lignes après la fin du tampon d'édition étaient marquées d'un seul ('~')
personnages; c'est-à-dire, si l'affichage à base un était de 20 lignes de longueur, et la dernière ligne de
le fichier était sur la première ligne, les lignes 2 à 20 ne contiendraient qu'un seul '~' caractère.
Historiquement, le vi l'éditeur a tenté de n'afficher que des lignes complètes en bas de
l'écran (il affichait des lignes partielles en haut de l'écran). Si une ligne était trop longue pour
s'adapter dans son intégralité au bas de l'écran, les lignes d'écran où la ligne serait
ont été affichés ont été affichés comme simples '@' caractères, au lieu d'afficher une partie de
la ligne. POSIX.1‐2008 permet, mais n'impose pas, ce comportement. Les implémentations sont
encouragés à essayer de toujours afficher une ligne complète en bas de l'écran lorsque
faisant défiler ou positionner l'écran par lignes tampons.
Historiquement, les lignes marquées par '@' ont également été utilisés pour minimiser la sortie vers les terminaux muets
sur les lignes lentes ; c'est-à-dire que les modifications locales au curseur ont été mises à jour, mais les modifications apportées aux lignes
sur l'écran qui n'étaient pas proches du curseur étaient simplement marqués d'un '@' signer
au lieu d'être mis à jour pour correspondre au texte actuel. POSIX.1‐2008 permet, mais pas
nécessitent cette fonctionnalité car elle est de moins en moins utilisée à mesure que les terminaux deviennent plus intelligents
et les connexions sont plus rapides.
Initialisation in ex et mes vi
Historiquement, vi avait toujours une ligne dans le tampon d'édition, même si le tampon d'édition était
``vide''. Par exemple:
1. le ex commander = exécuté à partir du mode visuel a écrit ``1'' lorsque le tampon était vide.
2. Les écritures à partir du mode visuel d'un tampon d'édition vide ont écrit des fichiers d'un seul caractère (un
), tandis qu'écrit de ex mode d'un tampon d'édition vide a écrit des fichiers vides.
3. Placez et lisez les commandes dans un tampon d'édition vide en laissant une ligne vide en haut de la
tampon d'édition.
Par souci de cohérence, POSIX.1‐2008 n'autorise aucun de ces comportements.
Historiquement, vi n'a pas toujours ramené le terminal à ses modes d'origine; par exemple,
ICRNL a été modifié s'il n'était pas défini à l'origine. POSIX.1‐2008 ne le permet pas
comportement.
Command Descriptions in vi
Les commandes de mouvement comptent parmi les aspects les plus compliqués de vi décrire. Avec une certaine
exceptions, la zone de texte et l'effet du type de tampon d'une commande de mouvement sur un vi commande sont
décrites au cas par cas. Les descriptions des régions de texte dans POSIX.1‐2008 sont
n'est pas destiné à impliquer une direction ; c'est-à-dire une région inclusive de la ligne n à la ligne n+5 est
identique à une région de la ligne n+5 à la ligne n. C'est d'un intérêt plus qu'académique -
les mouvements vers les marques peuvent être dans les deux sens, et, si le numérisation enveloppante l'option est définie, donc peut
mouvements vers les points de recherche. Historiquement, les lignes sont toujours stockées dans des tampons dans le texte
commande; c'est-à-dire du début à la fin du tampon d'édition. POSIX.1‐2008 nécessite
conformité à la pratique historique.
Historiquement, les décomptes de commandes étaient appliqués à tout mouvement associé et étaient
multiplicatif à tout nombre de mouvements fourni. Par exemple, 2cw est la même que c2w et 2c3w
est la même que c6w. POSIX.1‐2008 requiert ce comportement. Historiquement, vi commandes qui
utilisé des gros mots, des mots, des paragraphes et des phrases comme des objets traités des groupes de lignes vides,
ou des lignes qui ne contenaient que personnages, de manière incohérente. Quelques commandes traitées
comme une seule entité, tandis que d'autres traitaient chaque ligne séparément. Par exemple, le w, W,
et mes B les commandes traitaient les groupes de lignes vides comme des mots individuels ; c'est-à-dire la commande
déplacerait le curseur à chaque nouvelle ligne vide. le e et mes E commandes traitées groupes de vide
lignes comme un seul mot ; c'est-à-dire que la première utilisation dépasserait le groupe de lignes. le b
la commande émettrait simplement un bip à l'attention de l'utilisateur, ou si elle était effectuée depuis le début de la ligne en tant que mouvement
commande, échouent de manière inattendue. Si les lignes ne contenaient que (ou se terminaient par)
personnages, le w et mes W les commandes émettraient juste un bip à l'intention de l'utilisateur, le E et mes e les commandes seraient
traiter le groupe comme un seul mot, et le B et mes b les commandes traiteraient les lignes comme
mots individuels. Pour la cohérence et la simplicité des spécifications, POSIX.1‐2008 nécessite
que tous vi les commandes traitent les groupes de lignes vides ou vides comme une seule entité, et que
mouvement à travers les lignes se terminant par les personnages soient cohérents avec les autres mouvements.
Historiquement, vi la documentation indiquait que n'importe quel nombre de guillemets doubles avaient été ignorés
après les signes de ponctuation aux limites des phrases ; cependant, les implémentations n'ont fait que sauter
Guillemets simples. POSIX.1‐2008 exige que les deux soient ignorés.
Historiquement, les premier et dernier caractères du tampon d'édition étaient des limites de mots. Ce
la pratique historique est requise par POSIX.1‐2008.
Historiquement, vi tenté de mettre à jour le nombre minimum de colonnes à l'écran possible,
ce qui pourrait entraîner l'affichage d'informations trompeuses. POSIX.1‐2008 ne fait pas
exigences autres que l'affichage correct du caractère en cours de saisie,
laissant toutes les autres décisions dans ce domaine à la mise en œuvre.
Historiquement, les lignes étaient arbitrairement pliées entre les colonnes de tous les caractères qui
nécessitait plusieurs positions de colonne à l'écran, à l'exception des onglets, qui
terminé à la marge de droite. POSIX.1‐2008 autorise le premier et requiert le
dernier. Implémentations qui ne coupent pas arbitrairement les lignes entre les colonnes de caractères
qui occupent plusieurs positions de colonne ne doivent pas permettre au curseur de reposer sur une colonne
qui ne contient aucune partie de caractère.
L'historique vi avait un problème en ce que tous les mouvements étaient par lignes tampons, pas par affichage
ou des lignes d'écran. C'est souvent la bonne chose à faire; par exemple, les mouvements d'une seule ligne,
tel que j or k, devrait fonctionner sur les lignes de tampon. Des commandes comme dj, ou j., Où . est un changement
commande, n'a de sens que pour les lignes de tampon. Ce n'est pourtant pas la bonne chose à faire pour
mouvement de l'écran ou commandes de défilement comme -RÉ, -F, et H. Si la fenêtre
est assez petit, l'utilisation de lignes tampons dans ces cas peut entraîner un mouvement complètement aléatoire ;
par exemple, 1-RÉ peut entraîner un écran complètement modifié, sans aucun chevauchement.
Ce n'est clairement pas ce que l'utilisateur souhaitait. Le problème est encore pire dans le cas du H,
L et M commandes—car elles positionnent le curseur sur la première non- de la ligne, ils
peuvent tous faire référence au même emplacement dans de grandes lignes et n'entraîneront aucun mouvement.
De plus, si la ligne est plus grande que l'écran, l'utilisation de lignes tampons peut la rendre
impossible d'afficher des parties de la ligne - il n'y a pas de commandes qui n'affichent pas le
début de la ligne dans l'histoire vi, et si le début et la fin de la ligne
ne peut pas être à l'écran en même temps, l'utilisateur en souffre. Enfin, la page et demi-
commandes de défilement de page historiquement déplacées vers le premier non- dans la nouvelle ligne. Si
la ligne est approximativement de la même taille que l'écran, ce n'est pas suffisant car le
curseur avant et après un La commande ‐D fera référence au même emplacement sur le
avec l'écran du tableau des commandes prêtes.
Implémentations de ex et mes vi existent qui n'ont pas ces problèmes parce que les
commandes ( -B, -RÉ, -F, -U, -Y, -E, H,
L et M) fonctionnent sur les lignes d'affichage (écran), pas sur les lignes de tampon (édition).
POSIX.1‐2008 n'autorise pas ce comportement par défaut car les développeurs standard
pensait que les utilisateurs trouveraient cela trop déroutant. Cependant, la pratique historique a été
détendu. Par exemple, ex et mes vi historiquement tenté, quoique parfois sans succès,
ne jamais mettre une partie de ligne sur les dernières lignes d'un écran ; par exemple, si une ligne devait
pas dans son intégralité, aucune partie de la ligne n'a été affichée et les lignes d'écran
correspondant à la ligne contenue unique '@' personnages. Ce comportement est autorisé, mais
pas requis par POSIX.1‐2008, de sorte qu'il est possible pour les implémentations de prendre en charge
lignes dans de petits écrans plus raisonnablement sans changer les commandes à orienter vers le
affichage (au lieu d'être orienté vers le tampon). POSIX.1‐2008 permet également aux implémentations de
refuser d'éditer tout tampon d'édition contenant une ligne qui ne tient pas sur l'écran dans sa
intégralité.
La zone d'affichage (par exemple, la valeur du fenêtre option d'édition) a toujours été
`` agrandi '', ou développé, pour afficher un nouveau texte lorsque des mouvements locaux sont effectués dans les affichages
où le nombre de lignes affichées est inférieur au maximum possible. L'expansion a
historiquement été le premier choix, lorsque la ligne cible est inférieure au maximum possible
valeur d'expansion loin. Le défilement a toujours été le choix suivant, effectué lorsque le
la ligne cible est à moins d'un demi-écran, et sinon, l'écran a été redessiné. Là
constituaient toutefois des exceptions en ce sens que ex généralement, les commandes provoquaient toujours l'affichage de l'écran
redessiné. POSIX.1‐2008 ne spécifie pas de comportement standard car il peut y avoir des
problèmes, tels que la vitesse de connexion, le nombre de caractères nécessaires pour redessiner par opposition
pour faire défiler, ou les capacités du terminal que les implémentations devront prendre en charge.
La ligne actuelle dans POSIX.1-2008 correspond un à un à une ligne de tampon dans le fichier. Le courant
la colonne ne le fait pas. Il existe deux valeurs de colonne différentes qui sont décrites par POSIX.1‐2008.
Le premier est la valeur de la colonne actuelle telle que définie par de nombreux vi commandes. Cette valeur est
rappelé pour la durée de vie de l'éditeur. La valeur de la deuxième colonne est la position réelle
sur l'écran où se trouve le curseur. Les deux ne sont pas toujours les mêmes. Par exemple, lorsque
le curseur est accompagné d'un caractère multicolonne, la position réelle du curseur à l'écran
a toujours été la dernière colonne du personnage en mode commande, et la première
colonne du caractère en mode saisie.
Les commandes qui définissent la ligne courante, mais qui ne définissent pas la valeur courante du curseur (par
Par exemple, j et mes k) tenter de se rapprocher le plus possible de la position de colonne mémorisée,
de sorte que le curseur a tendance à se limiter à une colonne verticale lorsque l'utilisateur se déplace
dans le tampon d'édition. POSIX.1‐2008 exige la conformité à la pratique historique, exigeant
que l'emplacement d'affichage du curseur sur la ligne d'affichage soit ajusté à partir de la position actuelle
valeur de colonne nécessaire pour prendre en charge ce comportement historique.
Historiquement, une seule ligne (et pour certains terminaux, une seule ligne moins 1 colonne) de
des caractères peuvent être entrés par l'utilisateur pour les commandes orientées ligne ; C'est, :, !, /,
or ?. POSIX.1‐2008 autorise, mais n'impose pas, cette limitation.
Historiquement, les erreurs "soft" dans vi a provoqué l'alerte du terminal, mais pas d'erreur
message s'est affiché. En règle générale, aucun message d'erreur n'était affiché pour les erreurs de
exécution de la commande dans vi, lorsque l'erreur résulte du fait que l'utilisateur a tenté une erreur ou
action impossible ou lorsqu'un objet recherché n'a pas été trouvé. Exemples d'erreurs logicielles
inclus h à la marge de gauche, -B ou [[ au début du fichier, 2G au
fin du fichier, etc. De plus, des erreurs telles que %, ]], }, ), N, n, f, F, t et T
ne pas trouver l'objet recherché étaient également mous. Moins régulièrement, / et mes ?
affichait un message d'erreur si le motif n'était pas trouvé, /, ?, N et n affiché une erreur
message si aucune expression régulière précédente n'a été spécifiée, et ; n'a pas affiché de
message d'erreur si pas de précédent f, F, t, ou T commande avait eu lieu. Aussi, le comportement dans ce
peut raisonnablement être basée sur une évaluation d'exécution de la vitesse d'un réseau
connexion. Enfin, certaines implémentations ont fourni des messages d'erreur pour les erreurs logicielles dans
afin d'aider les utilisateurs naïfs, en fonction de la valeur d'une option d'édition détaillée. POSIX.1‐2008
ne répertorie pas les erreurs spécifiques pour lesquelles un message d'erreur doit être affiché.
Les mises en œuvre doivent être conformes à la pratique historique en l'absence de toute raison valable
diverger.
Page En arrière
le -Bande Les commandes ‐F considéraient historiquement comme une erreur de tenter de
page après le début ou la fin du fichier, alors que la -D et ‐U
commandes simplement déplacées au début ou à la fin du fichier. Par souci de cohérence, POSIX.1‐2008
requiert ce dernier comportement pour les quatre commandes. Les quatre commandes le considèrent toujours
une erreur si la ligne courante est au début ( -B, ‐U) ou fin
( -F, -D) du fichier. Historiquement, le -Bande -F
les commandes sautent deux lignes afin d'inclure des lignes qui se chevauchent lorsqu'une seule commande est
entré. Cela a moins de sens en présence d'un compter, comme il y en aura, par
définition, pas de lignes qui se chevauchent. Le calcul réel utilisé par les historiques
implémentations de vi éditeur pour ‐B était :
((courant premier ligne) - compter x (la fenêtre éditer option)) +2
et pour ‐F était :
((courant premier ligne) + compter x (la fenêtre éditer option)) -2
Ce calcul ne fonctionne pas bien lors du mélange de commandes avec et sans décompte ; pour
Par exemple, 3‐F n'est pas équivalent à saisir le commande ‐F trois fois,
et n'est pas réversible en saisissant le commande ‐B trois fois. Pour la cohérence
avec les autres vi commandes qui comptent, POSIX.1‐2008 nécessite un calcul différent.
Faites défiler l'Avant
Les implémentations 4BSD et System V de vi différé sur la valeur initiale utilisée par le
volute commander. 4BSD utilisé :
((la fenêtre éditer option) + 1) /2
alors que System V utilisait la valeur de la volute option d'édition. La version System V est spécifiée
par POSIX.1‐2008 parce que les développeurs de standards pensaient que c'était plus intuitif et
a permis à l'utilisateur une méthode de réglage de la valeur de défilement initialement sans définir également le
nombre de lignes affichées.
Faites défiler l'Avant by Gamme
Historiquement, le ‐E et Les commandes ‐Y considéraient comme une erreur si le dernier
et les premières lignes, respectivement, étaient déjà à l'écran. POSIX.1‐2008 nécessite
conformité à la pratique historique. Historiquement, le ‐E et ‐Y commandes
n'avait aucun effet en mode ouvert. Pour la simplicité et la cohérence des spécifications, POSIX.1‐2008
exige qu'ils se comportent comme d'habitude, mais avec un écran à une seule ligne.
Effacer et mes Réafficher
L'historique La commande ‐L a rafraîchi l'écran exactement comme il était censé l'être
actuellement affiché, remplaçant tout '@' caractères pour les lignes qui avaient été supprimées mais pas
mis à jour à l'écran avec rafraîchi '@' personnages. L'intention de la -L commande
est de rafraîchir lorsque l'écran a été accidentellement écrasé ; par exemple, par un écrire
commande d'un autre utilisateur ou bruit de modem.
Redessiner pour écran
L'historique Commande ‐R réaffichée uniquement lorsque nécessaire pour mettre à jour les lignes qui
avaient été supprimés mais pas mis à jour à l'écran et qui étaient signalés par '@' caractères.
Il n'est pas nécessaire que l'écran soit rafraîchi de quelque manière que ce soit si aucune ligne de ce formulaire
sont actuellement affichés. POSIX.1‐2008 permet aux implémentations d'étendre cette commande à
rafraîchir les lignes à l'écran signalées par '@' personnages parce qu'ils sont trop longs pour être
affiché dans le cadre actuel ; cependant, la ligne et la colonne actuelles n'ont pas besoin d'être
modifié.
Rechercher pour chaîne de balise
Historiquement, le premier non- à ou après le curseur était le premier caractère, et
tous les caractères suivants qui étaient des caractères de mot, jusqu'à la fin de la ligne, étaient
inclus. Par exemple, avec le curseur sur le début ou sur le '#' caractère
le texte "#bar@", la balise était "#bar". Sur le personnage 'b' c'était "bar"et sur le 'une'
c'était "ar". POSIX.1‐2008 requiert ce comportement.
remplacer Texte avec Résultats de coquille Command
Historiquement, le <, > et ! les commandes considéraient la plupart des mouvements de curseur autres que la ligne-
les mouvements orientés une erreur ; par exemple, la commande >/foo réussi, tandis que la commande
>l a échoué, même si la zone de texte décrite par les deux commandes peut être identique.
Par souci de cohérence, les trois commandes ne prennent en compte que les lignes entières et non les lignes partielles, et
la région est définie comme n'importe quelle ligne qui contient un caractère qui a été spécifié par le
mouvement.
Move à Adapter Personnage
D'autres caractères correspondants ont été laissés définis par l'implémentation afin de permettre
extensions telles que la correspondance «<» et mes '>' pour la recherche HTML, ou #ifdef, #else et #endif
pour rechercher la source C.
Répéter Substitution
POSIX.1‐2008 exige que tout c et mes g drapeaux spécifiés à la commande de substitution précédente
Etre ignoré; Cependant, le r flag peut toujours s'appliquer, s'il est pris en charge par l'implémentation.
Retour à Précédent (Le contexte or Section)
Pour [[, ]], (, ), { et } les commandes sont toutes affectées par les ``limites de section'', mais dans
certaines implémentations historiques toutes les commandes ne reconnaissent pas la même section
les frontières. Il s'agit d'un bogue, pas d'une fonctionnalité, et un algorithme de limite de section unique n'a pas été
décrit pour chaque commande. Un cas particulier qui est préservé est que la phrase
la commande se déplace à la fin de la dernière ligne du tampon d'édition tandis que les autres commandes vont
au début, afin de préserver le caractère sémantique coupé traditionnel de la
commande de phrase. Historiquement, vi limites de section au début et à la fin du montage
tampon ont été les premiers non- sur les première et dernière lignes du tampon d'édition si l'on
existe ; sinon, le dernier caractère des première et dernière lignes du tampon d'édition si
un existe. Pour augmenter la cohérence avec les autres emplacements de section, cela a été simplifié
par POSIX.1‐2008 au premier caractère des première et dernière lignes du tampon d'édition, ou
la première et la dernière lignes du tampon d'édition si elles sont vides.
Les limites des peines étaient problématiques dans l'histoire vi. Ils n'étaient pas seulement les
limites telles que définies pour les commandes de section et de paragraphe, mais elles étaient les premières
non- cela s'est également produit après ces frontières. Historiquement, le vi
les commandes ont été documentées comme prenant une taille de fenêtre facultative comme un compter précédant le
commander. Cela n'a pas été implémenté dans les versions historiques, donc POSIX.1‐2008 exige que
le compter répéter la commande, par souci de cohérence avec les autres vi les commandes.
Répéter
Historiquement, les commandes mappées autres que les commandes de saisie de texte ne pouvaient pas être répétées à l'aide de
le période commander. POSIX.1‐2008 exige la conformité à la pratique historique.
Les restrictions sur l'interprétation des caractères spéciaux (par exemple, -H) dans
la répétition des commandes du mode de saisie de texte est destinée à correspondre à la pratique historique. Pour
exemple, étant donné la séquence d'entrée :
iab -H -H -Hdef
l'utilisateur doit être informé d'une erreur lors de la première saisie de la séquence, mais pas pendant
une répétition de commande. Le personnage ‐T en est spécifiquement exempté
restriction. Implémentations historiques de vi ignoré ‐T caractères qui étaient
saisie dans la commande d'origine lors de la répétition de la commande. POSIX.1‐2008 interdit cela
comportement.
Trouvez Régulier Expression
Historiquement, les commandes n'affectaient pas la ligne recherchée vers ou depuis si la commande de mouvement
était une recherche (/, ?, N, n) et la position finale était le début/la fin de la ligne. Il y avait
quelques cas particuliers et vi n'était pas cohérent. POSIX.1‐2008 ne permet pas ce comportement,
pour la cohérence. Les implémentations historiques étaient autorisées mais incapables de gérer les recherches
en tant que commandes de mouvement enveloppées (c'est-à-dire en raison de l'option d'édition numérisation enveloppante) à l'origine
lieu. POSIX.1‐2008 exige que ce comportement soit traité comme une erreur.
Historiquement, la syntaxe "/RE/0" a été utilisé pour forcer la commande à couper le texte en mode ligne.
POSIX.1‐2008 exige la conformité à la pratique historique.
Historiquement, en mode ouvert, un z spécifié à une commande de recherche a réaffiché la ligne courante
au lieu d'afficher l'écran actuel avec la ligne actuelle en surbrillance. Pour
cohérence et simplicité de spécification, POSIX.1‐2008 ne permet pas ce comportement.
Historiquement, à la traîne z les commandes étaient autorisées et ignorées si elles étaient saisies dans le cadre d'un
search utilisé comme commande de mouvement. Pour la cohérence et la simplicité des spécifications,
POSIX.1‐2008 ne permet pas ce comportement.
Exécution an ex Command
Historiquement, vi les implémentations restreignaient les commandes pouvant être saisies sur le
ligne de commande deux-points (par exemple, ajouter et mes Change), et certaines autres commandes étaient connues pour
les faire échouer de manière catastrophique. Par souci de cohérence, POSIX.1‐2008 ne permet pas ces
restrictions. Lors de l'exécution d'un ex commande en saisissant :, il n'est pas possible d'entrer un
dans le cadre de la commande car il est considéré comme la fin de la commande. UNE
approche différente est d'entrer ex mode de commande en utilisant le vi Q commande (et plus tard
reprendre le mode visuel avec le ex vi commander). Dans ex mode de commande, la ligne unique
limite n'existe pas. Ainsi, par exemple, ce qui suit est valide :
Q
s/pause ici/pause\
ici/
vi
POSIX.1‐2008 exige que, si le ex commande écrase toute partie de l'écran qui
être effacé par un rafraîchissement, vi pauses pour un caractère de l'utilisateur. Historiquement, cela
caractère peut être n'importe quel caractère ; par exemple, un caractère entré par l'utilisateur avant le
message est apparu, ou même un caractère mappé. C'est probablement un bogue, mais les implémentations
qui ont essayé d'être plus rigoureux en demandant à l'utilisateur de saisir un caractère spécifique,
ou que l'utilisateur a saisi un caractère après l'affichage du message, ont été forcés par
l'indignation des utilisateurs dans le comportement historique. POSIX.1‐2008 exige la conformité à
pratique historique.
Shift Gauche (Droite)
Reportez-vous à la justification de la ! et mes / commandes. Historiquement, le < et mes > commandes
parfois déplacé le curseur vers le premier non- (par exemple si la commande était
répétée ou avec _ comme commande de mouvement) et la laissait parfois inchangée. POSIX.1‐2008
ne permet pas cette incohérence, exigeant à la place que le curseur se déplace toujours vers le
premier non- . Historiquement, le < et mes > les commandes ne supportaient pas les arguments de tampon,
bien que certaines implémentations permettent la spécification d'un tampon facultatif. Ce comportement
n'est ni requis ni interdit par POSIX.1‐2008.
Exécution
Historiquement, les tampons pouvaient exécuter d'autres tampons, et les boucles, infinies ou autres, étaient
possible. POSIX.1‐2008 exige la conformité à la pratique historique. Le *tampon syntaxe de
ex n'est pas nécessaire dans vi, parce que ce n'est pas une pratique historique et qu'elle a été utilisée dans certains
vi implémentations pour prendre en charge des langages de script supplémentaires.
Inverser Témoignage client
Historiquement, le ~ la commande a ignoré tout associé compter, et n'a agi que sur les caractères
dans la ligne courante. Par souci de cohérence avec les autres vi commandes, POSIX.1‐2008 exige qu'un
associé compter agir sur la suite compter caractères, et que la commande passe au suivant
lignes si justifié par compter, pour permettre de modifier de gros morceaux de texte dans un
manière raisonnablement efficace. Il existe vi implémentations qui nécessitent éventuellement un
commande de mouvement associée pour le ~ commander. Implémentations prenant en charge cette fonctionnalité
sont encouragés à se baser sur tildéop option d'édition et gérer les zones de texte et
positionnement du curseur identique au coup sec commander.
Ajouter
Historiquement, compters spécifié à la A, a, I et i commandes répétées l'entrée de la
Première ligne compter fois et n'a pas répété les lignes suivantes du texte d'entrée.
POSIX.1‐2008 exige que la saisie de texte entière soit répétée compter fois.
Move Vers l'arrière à Précédent Word
Historiquement, vi devenait confus si des commandes de mots étaient utilisées comme commandes de mouvement dans le vide
des dossiers. POSIX.1‐2008 exige que ce soit une erreur. Implémentations historiques de vi a une
grand nombre de bogues dans les commandes de mouvement de mot, et leur comportement variait considérablement dans
la présence de lignes vides, de « mots » composés d'un seul caractère et de lignes contenant
seulement personnages. Pour la cohérence et la simplicité des spécifications, POSIX.1‐2008
n'autorise pas ce comportement.
Changer à Fin de ligne
Quelques implémentations historiques de la C la commande ne s'est pas comportée comme décrit par
POSIX.1‐2008 lorsque le $ la clé a été remappée parce qu'elle a été implémentée en poussant le $
clé dans la file d'attente d'entrée et de la retraiter. POSIX.1‐2008 ne permet pas ce comportement.
Historiquement, le C, S et s les commandes n'ont pas copié le texte remplacé dans le numérique
tampons. Pour la cohérence et la simplicité des spécifications, POSIX.1‐2008 exige qu'ils
se comporter comme leurs respectifs c commandes à tous égards.
Supprimer
Historiquement, les lignes en mode ouvert qui étaient supprimées défilaient vers le haut, et un @ glyphe
écrit en début de ligne. Dans le cas de terminaux incapables de
mouvements de curseur nécessaires, l'éditeur a effacé la ligne supprimée de l'écran. POSIX.1‐2008
exige la conformité à la pratique historique ; c'est-à-dire si le terminal ne peut pas afficher
'@' caractère, la ligne ne peut pas rester à l'écran.
Supprimer à Fin de ligne
Quelques implémentations historiques de la D la commande ne s'est pas comportée comme décrit par
POSIX.1‐2008 lorsque le $ la clé a été remappée parce qu'elle a été implémentée en poussant le $
clé dans la file d'attente d'entrée et de la retraiter. POSIX.1‐2008 ne permet pas ce comportement.
S'inscrire
Une bizarrerie historique de vi c'est que les commandes J, 1J et 2J sont tous équivalents.
POSIX.1‐2008 exige la conformité à la pratique historique. le vi J la commande est spécifiée
en termes de ex rejoindre commande avec un ex commander compter évaluer. La correction d'adresse pour
a compter qui est après la fin du tampon d'édition est nécessaire pour la compatibilité historique
au niveau ex et mes vi.
Mark Position
La pratique historique est que seules les lettres minuscules, plus les guillemets arrière et les guillemets simples, pouvaient
être utilisé pour marquer une position de curseur. POSIX.1‐2008 exige la conformité à l'historique
pratique, mais encourage les implémentations à prendre également en charge d'autres caractères en tant que marques.
Répéter Régulier Expression Trouvez (Effronté et mes Inverser)
Historiquement, le N et mes n les commandes n'ont pas pu être utilisées comme composants de mouvement pour le c
commander. A l'exception de la cN commande, qui fonctionnait si la recherche franchissait une ligne
limite, la zone de texte serait ignorée et l'utilisateur ne serait pas en saisie de texte
mode. Pour des raisons de cohérence et de simplicité de spécification, POSIX.1‐2008 ne le permet pas.
comportement.
insérer Vide Gamme (Au dessous de et mes Au dessus)
Historiquement, compte pour le O et mes o commandes ont été utilisées comme nombre de lignes physiques à
ouvert, si le terminal était muet et que le ouverture lente l'option n'a pas été définie. Celle-ci était destinée à
minimiser le trafic sur les connexions lentes et repeindre les terminaux muets. POSIX.1‐2008
n'autorise pas ce comportement, exigeant qu'un compter à la commande open se comporter comme pour
autres commandes de saisie de texte. Cette modification de la pratique historique a été faite par souci de cohérence,
et parce qu'un sur-ensemble de la fonctionnalité est fourni par le ouverture lente possibilité d'édition.
mettre de Buffer (Suivant et mes Avant de)
Historiquement, compters au p et mes P les commandes étaient ignorées si le tampon était en mode ligne
tampon, mais étaient (principalement) implémentés comme décrit dans POSIX.1‐2008 si le tampon était un
tampon en mode caractère. Parce qu'il existe des implémentations qui n'ont pas cette limitation, et
parce que coller des lignes plusieurs fois est généralement utile, POSIX.1‐2008 exige que compter
être soutenu pour tous p et mes P les commandes.
Implémentations historiques de vi étaient largement connus pour avoir des problèmes majeurs dans le p et mes P
commandes, en particulier lorsque des zones de texte inhabituelles ont été copiées dans le tampon d'édition. le
les développeurs standard les considéraient comme des bogues, et ils ne sont pas autorisés pour la cohérence et
simplicité de spécification.
Historiquement, un P or p commande (ou une ex mettre commande exécutée depuis le mode ouvert ou visuel)
exécuté dans un fichier vide, a laissé une ligne vide comme première ligne du fichier. Pour
cohérence et simplicité de spécification, POSIX.1‐2008 ne permet pas ce comportement.
remplacer Personnage
Historiquement, le r la commande n'a pas correctement géré le effacer et mes mot effacer caractères
en tant qu'arguments, et il n'a pas non plus géré un associé compter supérieur à 1 avec un
return> argument, pour lequel il a remplacé compter personnages avec un seul .
POSIX.1‐2008 ne permet pas ces incohérences.
Historiquement, le r commande a permis le ‐V échappement des caractères saisis, tels que
comme et le ; cependant, il a fallu deux leaders ‐V
caractères au lieu d'un. POSIX.1‐2008 exige que cela soit changé pour la cohérence avec
les autres commandes de saisie de texte de vi.
Historiquement, c'est une erreur d'entrer le r commande s'il y a moins de compter
caractères à ou après le curseur dans la ligne. Bien qu'il soit raisonnable et sans ambiguïté
l'extension consisterait à permettre r commande sur des lignes vides, il faudrait que trop grand
a compter être ajusté pour correspondre au nombre de caractères à ou après le curseur pour
cohérence, qui est suffisamment différente de la pratique historique pour être évitée.
POSIX.1‐2008 exige la conformité à la pratique historique.
remplacer Personnages
Historiquement, s'il y avait indentation automatique caractères dans la ligne sur laquelle le R la commande était
courir, et indentation automatique a été fixé, le premier serait correctement indenté et non
les caractères seraient remplacés par les . Chaque supplémentaires remplacerait n
personnages, où n était le nombre de caractères nécessaires pour indenter le reste de
la ligne au niveau d'indentation approprié. Ce comportement est un bogue et n'est pas autorisé par
POSIX.1-2008.
annuler
La pratique historique pour le positionnement du curseur après l'annulation des commandes était mélangée. Dans la plupart
cas, lors de l'annulation de commandes affectant une seule ligne, le curseur était déplacé vers
début du texte ajouté ou modifié, ou immédiatement après le texte supprimé. Cependant, si l'utilisateur
s'était déplacé de la ligne en cours de modification, la colonne était soit définie sur la première non- ,
est revenu à l'origine de la commande, ou est resté inchangé. Lors de l'annulation de commandes qui
affecté plusieurs lignes ou des lignes entières, le curseur a été déplacé vers le premier caractère de
la première ligne restaurée. Pour illustrer à quel point cela était incohérent, une recherche, suivie de
an o commande de saisie de texte, suivie d'une défaire renverrait le curseur à l'endroit où
le o commande a été entrée, mais un cw commande suivie d'un o commande suivie d'un défaire
renverrait le curseur au premier non- de la ligne. POSIX.1‐2008 nécessite le
le plus utile de ces comportements, et écarte le moins utile, dans l'intérêt de
cohérence et simplicité des spécifications.
ricain
Historiquement, le coup sec la commande ne s'est pas déplacée jusqu'à la fin du mouvement si le mouvement était en
la direction vers l'avant. Il s'est déplacé à la fin du mouvement si le mouvement était à l'envers
direction, à l'exception de la _ commande, ou pour la G et mes ' commandes lorsque la fin de la
mouvement était sur la ligne actuelle. Cela était encore compliqué par le fait que pour un certain nombre
des commandes de mouvement, le coup sec la commande a déplacé le curseur mais n'a pas mis à jour l'écran ; pour
exemple, une commande suivante déplacerait le curseur de la fin du mouvement, même
bien que le curseur à l'écran n'ait pas reflété le mouvement du curseur pour le coup sec
commander. POSIX.1‐2008 exige que tous coup sec commandes associées aux mouvements de recul
déplacer le curseur à la fin du mouvement pour plus de cohérence, et plus précisément, pour faire '
commandes en tant que mouvements compatibles avec les modèles de recherche en tant que mouvements.
ricain Courant Gamme
Quelques implémentations historiques de la Y la commande ne s'est pas comportée comme décrit par
POSIX.1‐2008 lorsque le '_' la clé a été remappée parce qu'elle a été implémentée en poussant le
'_' clé dans la file d'attente d'entrée et de la retraiter. POSIX.1‐2008 ne le permet pas
comportement.
Redessiner Vitrine
Historiquement, le z commande redessine toujours l'écran. Ceci est autorisé mais pas obligatoire
par POSIX.1‐2008, en raison de l'utilisation fréquente des z commande dans des macros telles que plan n nz.
pour le positionnement de l'écran, au lieu de son utilisation pour modifier la taille de l'écran. Le standard
les développeurs pensaient que l'expansion ou le défilement de l'écran offrait une meilleure interface pour
utilisateurs. La possibilité de redessiner l'écran est conservée si la nouvelle taille de fenêtre facultative est
spécifié, et dans le -Terre ‐R commandes.
La sémantique de z^ sont au mieux confus. La pratique historique est que l'écran avant
l'écran qui s'est terminé par la ligne spécifiée s'affiche. POSIX.1‐2008 nécessite
conformité à la pratique historique.
Historiquement, le z la commande n'afficherait pas une ligne partielle en haut ou en bas de la
écran. Si la ligne partielle aurait normalement été affichée au bas de la
écran, la commande a fonctionné, mais la ligne partielle a été remplacée par '@' personnages. Si la
ligne partielle aurait normalement été affichée en haut de l'écran, la commande
échouerait. Pour des raisons de cohérence et de simplicité de spécification, POSIX.1‐2008 ne permet pas
Ce comportement.
Historiquement, le z La commande avec une spécification de ligne de 1 a ignoré la commande. Pour
cohérence et simplicité de spécification, POSIX.1‐2008 ne permet pas ce comportement.
Historiquement, le z la commande n'a pas défini la colonne du curseur sur le premier non- pour le
caractère si le premier écran devait être affiché, et était déjà affiché. Pour
cohérence et simplicité de spécification, POSIX.1‐2008 ne permet pas ce comportement.
Entrée Mode Commandes in vi
Implémentations historiques de vi ne permettait pas à l'utilisateur d'effacer plus d'une seule ligne
d'entrée, ou d'utiliser des caractères d'effacement normaux tels que en ligne effacer, effacement de texte et effacer à
effacer indentation automatique personnages. Comme il existe des implémentations de vi qui n'ont pas ces
limitations, les deux comportements sont autorisés, mais seule la pratique historique est requise. Dans
le cas de ces extensions, vi est obligé de s'arrêter au indentation automatique et ligne précédente
limites.
Implémentations historiques de vi mis à jour uniquement la partie de l'écran où le courant
le caractère du curseur s'est affiché. Par exemple, considérez le vi frappes d'entrée :
iabcd 0C
Historiquement, le écraserait les caractères "a B c d" quand il a été affiché. Autre
les implémentations remplacent uniquement les 'une' personnage avec le , puis appuyez sur le reste de
les caractères devant le curseur. Les deux implémentations ont des problèmes. L'historique
la mise en œuvre est probablement visuellement plus agréable pour l'exemple ci-dessus ; cependant, pour le
frappes :
iabcd 0R
l'implémentation historique donne la chaîne "bdc" disparaissant puis magiquement
réapparaissant lorsque le caractère est entré. POSIX.1‐2008 nécessite l'ancien comportement
lors de l'écrasement des colonnes d'effacement, c'est-à-dire l'écrasement des caractères qui ne sont plus
fait logiquement partie du tampon d'édition - et ce dernier se comporte autrement.
Implémentations historiques de vi jeté le -D et caractères ‐T lorsque
ils ont été entrés à des endroits où leur fonctionnalité de commande n'était pas appropriée.
POSIX.1‐2008 exige que le ‐T la fonctionnalité soit toujours disponible, et que
‐D être traité comme n'importe quelle autre clé lorsqu'il n'est pas utilisé indentation automatique caractères.
NUL
Quelques implémentations historiques de vi limité le nombre de caractères saisis à l'aide de la
Caractère d'entrée NUL à 256 octets. POSIX.1‐2008 permet cette limitation ; cependant,
les implémentations sont encouragées à supprimer cette limite.
-RÉ
Voir aussi Justification de la commande de mode d'entrée . Les hypothèses cachées dans le
commande ‐D (et dans la vi indentation automatique spécification en général) est que
les personnages occupent une seule colonne à l'écran et que les personnages sont composés
d'un nombre entier de personnages.
Les implémentations sont autorisées à réécrire indentation automatique caractères dans la ligne lorsque ,
, -D, et ‐T sont entrés, ou lorsque le décalage commandes
sont utilisés, car les implémentations historiques l'ont fait et ont jugé nécessaire de
faites-le. Par exemple, un ‐D lorsque le curseur est précédé d'un simple , avec
tabulation réglé sur 8, et largeur de décalage réglé sur 3, entraînera le étant remplacé par
nombreuses personnages.
-T
Voir aussi la justification de la commande du mode d'entrée . Historiquement, -T
n'a fonctionné que si aucun non- caractères n'avaient pas encore été saisis dans la ligne de saisie actuelle. Dans
outre, les caractères insérés par ‐T ont été traités comme indentation automatique personnages,
et n'a pas pu être effacé à l'aide de caractères d'effacement utilisateur normaux. Parce que les implémentations existent
qui n'ont pas ces limitations, et comme le déplacement vers une limite de colonne est généralement
utile, POSIX.1‐2008 exige que les deux limitations soient supprimées.
‐V
Historiquement, vi d'utiliser ^V, quelle que soit la valeur du caractère littéral suivant du
Terminal. POSIX.1‐2008 exige la conformité à la pratique historique.
Les utilisations décrites pour ‐V peut également être réalisé avec ‐Q, qui est
utile sur les terminaux qui utilisent ‐V pour la fonction flèche vers le bas. Cependant, la plupart
implémentations historiques utilisent ‐Q pour le terminus caractère START, donc l'éditeur
ne recevra généralement pas le ‐Q sauf si Sty ixo mode est désactivé. (Dans
De plus, certaines implémentations historiques de vi explicitement défini ixo mode activé, il était donc
difficile pour l'utilisateur de le désactiver.) L'un des caractères de commande décrits dans
POSIX.1‐2008 peut être rendu inefficace par leur sélection comme terminus caractères de contrôle,
en utilisant l' Sty utilitaire ou d'autres méthodes décrites dans le volume Interfaces système de
POSIX.1-2008.
Historiquement, SIGINT alertait le terminal lorsqu'il était utilisé pour mettre fin au mode de saisie. Ce comportement est
autorisé, mais non requis, par POSIX.1‐2008.
FUTUR DIRECTIONS
Aucun.
Utilisez viposix en ligne en utilisant les services onworks.net