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 à :q
en 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 à :q
en mode normal pour que vim ne quitte que si rien n'est changé?
Réponses:
Pour le faire uniquement pour la vim
session 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 EXINIT
Enter
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_profile
et / 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 EXINIT
commandes ou source
le fichier dans lequel vous avez placé les EXINIT
commandes.
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 .exrc
fichier.
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 .string1
string2
CtrlVvi
vim
CtrlVEnter^M
:map
string2
Enter
~/.exrc
fichier et cela ne fonctionne pas aussi bien.
vim
une de ces techniques? Par exemple, avez-vous déjà un ~/.exrc
dont 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
)?
vi
devrait être vi
le monde autour, mais OS X n'est pas Linux. Essayez d’effectuer des recherches vi
sur 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.