3 votes

Emuler le défilement d'une machine à écrire dans Vim

J'utilise WriteRoom depuis un moment pour tous mes besoins d'écriture sans distraction. Mais depuis que j'ai récemment décidé de passer à Vim (ou plus précisément, MacVim), j'ai essayé de réduire mon utilisation d'autres éditeurs de texte.

Vim peut reproduire la plupart des fonctionnalités de WriteRoom, mais la seule qui m'empêche de changer est le mode "défilement machine à écrire". Pour ceux qui n'ont pas utilisé WriteRoom, cette fonctionnalité vous permet d'écrire toujours sur la même ligne (un peu comme une machine à écrire) afin que vous soyez toujours concentré sur ce que vous écrivez et non distrait par ce que vous avez écrit. Tout le texte défile vers le haut lorsque vous commencez une nouvelle ligne.

J'ai fait mes devoirs en googlant tout ce que je pensais être lié, mais je n'ai trouvé que des "plugins" et autres Vim configurations qui font ressembler Vim à WriteRoom mais n'ont jamais fourni la fonction sacrée (peut-être ai-je cherché avec les mauvais mots-clés car je ne suis pas un locuteur natif).

Bien que j'ai trouvé ceci article en disant que c'est possible avec un simple réglage, je n'ai pas réussi à le faire fonctionner, que ce soit dans le Terminal ou dans MacVim... Si cela fonctionne pour vous, je serais heureux de savoir comment (j'ai commencé avec un .vimrc vierge, peut-être devez-vous activer d'autres choses).

Cette fonctionnalité n'est pas très utile du point de vue du code, je ne serais donc pas surpris qu'elle ne soit pas possible dès le départ. Dans ce cas, si vous avez des pistes sur la façon dont je pourrais script cela (même si je ne suis pas familier avec le scriptage de Vim, je peux regarder), alors je pourrais essayer de faire un petit plugin pour cela.

6voto

Craig McQueen Points 13194

set scrolloff=999 a fonctionné parfaitement, ici mais j'ai trouvé cela ennuyeux à la longue.

Cela ne dépend de rien d'autre que du fait que Vim ne soit pas dans compatible mode. Il suffit de l'ajouter à votre ~/.vimrc est suffisant.

0voto

Jon.D. Points 143

J'ai essayé set setscrolloff=999 qui semble être la solution officielle à ce problème, mais comme indiqué dans les commentaires, cela n'a fonctionné pour moi qu'après avoir créé des lignes en avant du curseur.

Je n'utilise Vim que depuis une semaine, donc je ne suis pas un expert et je ne sais pas si c'est la meilleure alternative, mais vous pourriez ajouter :inoremap <CR> <CR><Esc>zzi à votre vimrc. Au moins de cette façon, votre ligne actuelle (c'est-à-dire le paragraphe) est toujours centrée lorsque vous atteignez le milieu de l'écran.

0voto

Jackson Points 1

Voici une solution de contournement pour obtenir l'effet complet de défilement de la machine à écrire dans vim. En plus de mettre

 :set scrolloff=999

dans votre .vimrc, ajoutez un certain nombre de lignes vides ou de commentaires à la fin du fichier, afin qu'il y ait toujours un certain "contexte" sous votre dernière ligne. Vous pouvez automatiser cela en ayant un fichier modèle qui contient les lignes vides (et tout ce que vous voulez) et une commande dans votre .vimrc pour insérer le modèle, comme ceci :

com New :0r ~/lib/templates/new.txt

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X