J'ai récemment découvert des raccourcis Ctrl+ Eet Ctrl+ Ypour Vim qui déplacent respectivement l'écran vers le haut et vers le bas avec un pas d'une ligne, sans déplacer le curseur .
Connaissez-vous une commande qui laisse le curseur là où il se trouve mais déplace l'écran de sorte que la ligne qui a le curseur devienne la première ligne? (avoir une commande pour la dernière ligne serait un bon bonus).
Je peux y parvenir en appuyant manuellement sur Ctrl+ E(ou Ctrl+ Y) le nombre approprié de fois, mais avoir une commande qui le fait directement serait bien.
Des idées?
vim
scroll
cursor-position
ereOn
la source
la source
Réponses:
( attentionzz , si vous avez allumé Caps Lockaccidentellement, vous enregistrerez et quitterez
vim
!)la source
xdotool
outriggerhappy
. Enfin, affichez votre état de verrouillage des majuscules (ne peut pas être fait dans Vimscript.) ...xev -q
,cat /proc/bus/input/devices
pour trouver le périphérique à interroger etevtest
outhd ... --dump /dev/input/event<#>
pour vérifier l'état, etc. mais le problème est plus d'oublier qu'il est activé, car si vous le vouliez avant, vous continuerez à l'utiliser, quelle que soit la carte. Risque de casser Vim avant les fichiers / utilisateur / système.confirm()
. De plus, au lieu de mapper le verrouillage des majuscules sur ctrl, vous pouvez le mapper sur une clé ou une combinaison comprise mais non mappée par Vim, puis émuler le verrouillage des majuscules exclusivement en mode insertion / remplacement, à la main ou par quelque chose comme github.com/tpope/ vim-capslock . Vous n'en aurez probablement pas besoin en dehors de Vim, mais si vous le faites, écrivez un script xmodmap pour annuler vos modifications, ou voyez si le programme prend en charge ses propres mappages (et prenez des notes.)Aditionellement:
Ctrl- yet Ctrl- ene modifiez la position du curseur que si elle devait être déplacée hors de l'écran.
Gracieuseté de http://www.lagmonster.org/docs/vi2.html
la source
:help CTRL-E
ditMnemonic: Extra lines.
Vim requiert que le curseur soit à tout moment dans l'écran actuel, cependant, vous pouvez marquer la position actuelle pour faire défiler et revenir à l'endroit où vous étiez.
la source
Ctrl-O
pour un autre vraiment génial, et "backtick, period" vous ramène à votre dernière édition.mg
, faire défiler, aller avec'g
et vous avez terminé. Vous pouvez maintenant invoquer la touche configurable pour vous déplacer et vous aurez l'impression que le curseur n'a jamais quitté la position actuelle. Voilá!Voici ma solution dans vimrc:
Pour que le curseur reste au milieu de l'écran et que l'écran se déplace vers le haut ou vers le bas.
la source
Pour laisser le curseur dans la même colonne lorsque vous utilisez Ctrl+ D,Ctrl + F, Ctrl+ B, Ctrl+ U, G, H, M, L,gg
vous devez définir l'option suivante:
la source
Je suis surpris que personne n'utilise l'
Scrolloff
option qui maintient le curseur au milieu de la page. Essayez-le avec:C'est la première méthode recommandée sur le wiki Vim et fonctionne bien.
la source
:set scrolloff=4
faudra que le curseur soit toujours à au moins 4 lignes du haut ou du bas de la fenêtre, donc vous aurez toujours au moins un peu de contexte.J'ai utilisé ces raccourcis dans le passé ( remarque: des touches distinctes, c.-à-d. Appuyez sur z , relâchez, appuyez sur la touche suivante):
z enter -> déplace la ligne actuelle en haut de l'écran
z . -> déplace la ligne actuelle au centre de l'écran
z - -> déplace la ligne actuelle vers le bas
Si ce n'est pas évident:
entersignifie la touche Returnou Enter.
.signifie la touche DOT ou "arrêt complet" (
.
).-signifie la touche HYPHEN (
-
)Pour ce que ça vaut, z.évite le danger de sauvegarder et de fermer Vi en tapant accidentellement ZZsi le verrouillage des majuscules est activé.
la source
Vous pouvez préfixer vos commandes de déplacement du curseur avec un nombre et cela répétera cette commande autant de fois
10Ctrl+ Efera Ctrl+ E10 fois au lieu d'un.
la source
zEnter fait exactement ce que cette question demande.
Cela fonctionne là où étrangement zzne fonctionnerait pas (vim 7.4.1689 sur Ubuntu 2016.04 LTS sans .vimrc spécial)
la source
Vous pouvez trouver des réponses à " Défilement de Vim par rapport au curseur, mappage personnalisé utile les ".
Vous pouvez utiliser à
ScrollToPercent(0)
partir de cette question pour ce faire.la source
Parfois, il est utile de faire défiler le texte avec les touches Ket J, j'ai donc cette fonction de "mode de défilement" dans mon .vimrc (également lié à zs).
Voir scroll_mode.vim .
la source
ma mnémonique pour faire défiler ...
Ajout d'autres réponses aussi de faire attention à
ze
etzs
, ce qui signifie: l' écran de déplacement vers la gauche / droite du curseur (sans déplacer le curseur)regardez également la position de
h
etl
ett
etb
et (avec le clavier qwertz)c-e
etc-y
(le "y" pointe en quelque sorte vers le bas) sur le clavier pour vous rappeler où l'écran se déplace.la source
J'ai écrit un plugin qui me permet de naviguer dans le fichier sans déplacer la position du curseur. C'est basé sur le pliage des lignes entre votre position et votre position cible, puis sur le pli, ou l'annulez et ne bougez pas du tout.
Il est également facile de basculer rapidement entre le curseur sur la première ligne, la dernière ligne et le curseur au milieu en cliquant simplement sur j, koul lorsque vous êtes en mode du plug - in.
Je suppose que ce serait un bon ajustement ici.
la source
Saisissez vim et saisissez:
:help z
zest la commande vim pour redessiner, donc elle redessinera le fichier par rapport à l'endroit où vous positionnez le curseur. Les options dont vous disposez sont les suivantes:
z+- Redessine le fichier avec le curseur en haut de la fenêtre et au premier caractère non vierge de votre ligne.
z-- Redessine le fichier avec le curseur en bas de la fenêtre et au premier caractère non vierge de votre ligne.
z.- Redessine le fichier avec le curseur au centre de la fenêtre et au premier caractère non vierge de votre ligne.
zt- Redessine le fichier avec le curseur en haut de la fenêtre.
zb- Redessine le fichier avec le curseur en bas de la fenêtre.
zz- Redessine le fichier avec le curseur au centre de la fenêtre.
la source