Comment déplacer X octets vers l'avant, à partir de l'emplacement actuel du curseur (y compris les sauts de ligne)?
[count]go
pourrait être utilisé pour avancer X octets depuis le début du tampon. J'ai essayé Shift + V, G, [count]go
(en supposant que [count]go
cela commencerait à compter depuis le début de ma sélection), mais malheureusement cela n'a pas fonctionné non plus car il go
ne commence à compter qu'à partir du début de la mémoire tampon.
J'ai également essayé :set rulerformat=%o
d'afficher le décalage d'octet actuel (comme suggéré par le passage à un décalage d'octet et l'affichage de la position comme décalage d'octet ), j'ai ajouté les chiffres dans ma tête et finalement publié [count]go
. Cela fonctionne, mais ce n'est pas très pratique ...
Xl
(oùX
est le nombre de caractères) ou le nombre de caractères suivi de la flèche droite.Réponses:
Cette recherche déplace 40 caractères (pas d'octets, cependant) vers l'avant:
en recherchant exactement 40 caractères (
\{40}
) de toute sorte, y compris newline (\_.
), et en plaçant le curseur à la fin de la recherche (/e
). Voir: http://vimregex.com/#Non-Greedy ,:help search-offset
et:help \_
Voir également
:h 23.4
pour l'édition binaire.Mise à jour: Sur la base de cette réponse, voici une fonction qui passe au décalage d'octet:
Peut être utilisé comme ceci:
ou en tapant le mappage du clavier mappé, avec un nombre:
Si vous n'utilisez pas de comptage, le numéro de comptage précédent est réutilisé. Vous pouvez donc faire:
40CTRL-C CTRL-C CTRL-C 30CTRL-C CTRL-C
sauter 40, 40, 40, 30, 30 octets, etc.Appuyez
Ctrl-O
pour sauter en arrière (voir les commentaires à l'intérieur de la fonction).la source
[count]go
processus dans une fonction vim (lire le décalage d'octet actuel, ajouter le nombre souhaité,go
là).[count]go
et votre méthode: 1)[count]go
ajoute un élément à la liste de sauts, donc je peux utiliserCtrl+O
pour revenir rapidement à ma position précédente. 2)[count]go
peut être utilisé sans:
, est-il possible d'introduire un nouveau[count]GO
qui fait votre truc. Pourriez-vous modifier votre réponse pour qu'elle corresponde également à ce comportement dego
?J'ai fini par utiliser la solution suivante, qui met en œuvre la logique de ma question.
[count]GO
pour avancer les[count]
octets.[count]Go
pour déplacer les[count]
octets en arrière.Ajoutez ceci à votre
.vimrc
:Merci à VanLaser pour sa mise en œuvre initiale, qui m'a mis dans la bonne direction.
la source