J'utilise vim en tant que spectateur dans Midnight Commandder et je souhaite visualiser et fermer rapidement un fichier. Comment mapper la touche d'échappement à :qen mode normal pour que vim ne quitte que si rien n'est changé?
J'utilise vim en tant que spectateur dans Midnight Commandder et je souhaite visualiser et fermer rapidement un fichier. Comment mapper la touche d'échappement à :qen mode normal pour que vim ne quitte que si rien n'est changé?
Réponses:
Pour le faire uniquement pour la vimsession en cours, tapez les commandes suivantes (in vim). (Des espaces sont ajoutés pour plus de clarté. Ne tapez pas d’espace sauf là où je l’ai indiqué Space.)
: m a p Space Ctrl+ V Esc Space : q Ctrl+V Enter Enter
Pour le faire uniquement pour le reste de la session Terminal en cours, tapez les commandes suivantes (dans Terminal, c’est-à-dire le shell). (Les sauts de ligne sont ajoutés pour plus de clarté. Tapez les informations suivantes sur une seule ligne; ne tapez pas Entersauf si j'ai indiqué Enter.)
E X I N I T =
" : m a p Space Ctrl+ V Esc Space : q Ctrl+V Enter " Enter
et alors
export EXINITEnter
Pour rendre les modifications «permanentes» (c'est-à-dire jusqu'à ce que vous modifiiez les fichiers), insérez les commandes ci-dessus (le EXINIT="…"et export EXINIT) dans votre .bash_profileet / ou .bashrc. (Vous pouvez les regrouper sur la même ligne, en les séparant ;. Vous pourrez peut-être abréger cela en les combinant export EXINIT="…".) il suffit de taper les EXINITcommandes ou sourcele fichier dans lequel vous avez placé les EXINITcommandes.
Remarque: si vous n'utilisez pas bash comme shell principal, vous devrez peut-être modifier ce qui précède pour votre shell.
Sinon, essayez de mettre la :map …commande dans votre .exrcfichier.
Au cas où cela ne serait pas évident,
: carte chaîne 1 chaîne 2
(in vi/ vim) crée un mappage (traduction) de sorte que, lorsque vous tapez (en mode commande), l'éditeur agit comme si vous l'aviez saisi . Et + est le caractère super-escape qui indique à / et au shell (en fait, probablement tous les programmes, ou du moins la plupart d'entre eux) que le caractère suivant est censé être interprété comme un caractère textuel littéral, et non comme un contrôle. personnage. Notez que + suivi de
vous donne un caractère de retour chariot, qui est souvent affiché comme ; mais, dans un , cela est interprété comme un .string1string2CtrlVvivimCtrlVEnter^M:map string2Enter
~/.exrcfichier et cela ne fonctionne pas aussi bien.
vimune de ces techniques? Par exemple, avez-vous déjà un ~/.exrcdont le contenu fonctionne? Si vous tapez export EXINIT=":map q jjjj"; vim some_file, est-ce que ( q) fait descendre votre curseur de quatre lignes? Si vous tapez export EXINIT=":set list"; vim some_file, cela s'affiche-t-il $aux extrémités des lignes (et affiche-t-il les tabulations sous la forme ^I)?
videvrait être vile monde autour, mais OS X n'est pas Linux. Essayez d’effectuer des recherches visur OS X (commencez par man vi, puis recherchez Super User, puis Google) pour voir s’il existe une façon différente de vous permettre de passer des commandes d’initialisation.