2010-01-25 6 views
18

L'une des fonctionnalités les plus intéressantes de MacVim est qu'il est possible d'utiliser les commandes OS habituelles pour copier et coller du texte (à savoir commande + C et commande + V).Utiliser MAJ + Flèches pour sélectionner le texte dans vim/MacVim

Ceci est particulièrement agréable dans les situations où vous avez travaillé dans un autre éditeur juste une minute avant et votre cerveau n'est pas encore prêt à conseiller vos doigts sur la façon de taper le vrai.

Cependant, il y a une chose sur laquelle mon cerveau doit réfléchir: c'est le mode de sélection de texte. Dans les éditeurs non vi, j'utiliserais Maj + Flèche pour cela et essayer ceci dans MacVim ne fonctionne pas. Mais d'un autre côté, il ne me semble pas que Shift + Arrow soit utilisé pour autre chose. Est-il possible de remapper les clés pour rendre cela possible?

(Idéalement, l'éditeur serait toujours en mode d'insertion après avoir sélectionné le texte, qui épargnerait quelques coups clés supplémentaires.)

+1

Belle question, mais je suis tenté de proposer de le déplacer vers Super User comme une question de configuration du programme. Problèmes très similaires pour emacs comme discuté ici: http://meta.stackexchange.com/questions/36017/what-site-should-host-questions-about-emacs-keybinding on meta. – dmckee

+0

Voulez-vous être en mode insertion après la sélection parce que vous remplacez la sélection (comme lorsque vous appuyez sur 'c' pour effacer la sélection et passer en mode insertion), ou pour une autre raison? Il me semble que si vous avez une sélection, vous êtes en mode visuel, et ne pouvez donc pas être en mode insertion. – Jay

+0

Je voulais rester en mode insertion car je ne veux pas quitter le mode insertion sauf si c'est vraiment nécessaire. Dans un éditeur de texte 'normal' lorsque vous sélectionnez du texte, vous resterez également en mode insertion. C'est plus pour des raisons «transitoires»; et comme je l'ai dit, copier et coller (et même enregistrer) via la touche de commande fonctionne aussi en mode insertion. – Debilski

Répondre

25

A partir du manuel:

éditeurs de texte sur Mac OS X permet à l'utilisateur de maintenir la touche Maj + Déplacer pour étendre la sélection. En outre, en appuyant sur une touche imprimable tout en sélectionnant remplace la sélection en cours avec ce caractère. MacVim peut imiter ce genre de comportement (en fournissant raccourcis clavier et en réglant « keymodel » et « selectmode » à non-valeurs par défaut) bien qu'il ne soit pas activé par défaut . Pour MacVim comporter plus comme TextEdit et moins vim, ajouter les lignes suivantes à votre "~/.vimrc" fichier (non .gvimrc):

if has("gui_macvim") 
    let macvim_hig_shift_movement = 1 
endif 
+0

Génial. Merci beaucoup. On dirait que c'est exactement ce que je cherchais. – Debilski

+3

Un ennui mineur est que maintenant je vais devoir appuyer sur Maj même en mode visuel lorsque vous utilisez les touches fléchées. Il est temps de s'habituer à 'hjkl' ... – Debilski

6

Comme une note à l'auto et Puisque la sélection SHIFT + flèche et la sélection de la souris commencent maintenant automatiquement le mode SELECT, cela signifie qu'il n'est apparemment pas aussi facile de faire une sélection VISUAL en utilisant la souris ou les touches fléchées. (Même quand déjà en mode VISUAL une sélection de souris déclenchera toujours le mode SELECT.) Par conséquent, quand on veut appliquer des commandes à la sélection, la méthode suivante aide.

  • Sélectionnez le texte en utilisant la souris ou Maj + flèche
  • Unselect en appuyant sur ESC
  • Appuyez sur gv resélectionner automatiquement la sélection précédente et déclencher VISUAL Mode

Edit: même peut être fait en utilisant simplement CTRL + g.

+2

Vous pouvez ajouter 'set selectmode =' pour éviter d'entrer en mode SELECT par défaut. Utilisez Ctrl + g pour basculer entre les modes SELECT et VISUAL. – kennytm

+0

Personnellement, j'aime être en mode select quand j'utilise SHIFT + flèche la plupart du temps; mais Ctrl + g est une bonne idée de toute façon. Un peu plus simple que 'ESC, g, v'. – Debilski

Questions connexes