Existe-t-il un moyen pour que IdeaVIM respecte les mappages de mon fichier .vimrc?

Je suis récemment entré dans vim (encore une fois) et j’ai maintenant une tonne de personnalisation dans mon fichier .vimrc . Je me rends compte que tout cela n’aurait pas de sens dans le contexte d’un plug-in IDEA, mais je voudrais vraiment que des choses comme le remappage de jj à Esc soient sockets en compte et honorées. Y-a-t-il un moyen de faire ça? Sans avoir besoin de modifier manuellement tous ces éléments dans la carte clé d’IDEA.

Merci.

    Mise à jour: oui! Voir la réponse ci-dessous .

    Réponse courte: non.

    J’ai essayé de le faire aussi, surtout parce que je suis habitué à un .vimrc assez complexe au fil des ans.

    Quoi qu’il en soit, il existe une solution de contournement (en quelque sorte). Les parameters IdeaVim sont stockés dans un fichier appelé vim.xml dans le .IntelliJIdea10/config/keymaps votre dossier personnel ( C:\Users\ sous Windows). Vous pouvez modifier le code XML pour append des éléments souhaités. Par exemple, j’ai ajouté les lignes suivantes pour enregistrer un fichier en appuyant sur F2 au lieu de taper :w! :

        

    Cependant, je ne vois pas comment nous pouvons append des choses comme des fonctions ou des parameters vim (ce que j’utilise généralement pour .vimrc ).

    PS Cela pourrait expliquer pourquoi un fichier .vimrc n’est pas utilisé (emphase sur le mien):

    Pour les curieux, le plugin est écrit sans aucune référence au code source VIM (sauf pour la gestion des expressions régulières). J’utilise essentiellement l’excellente documentation VIM et VIM comme référence pour vérifier le comportement correct.
    Source: http://ideavim.sourceforge.net/

    Réponse mise à jour: IdeaVim version 0.35 (publié le 2014-05-15) lit les parameters et les raccourcis clavier de ~/.ideavimrc . Vous pouvez mettre le source ~/.vimrc dans ce fichier si vous souhaitez inclure des mappages de ~/.vimrc .

    0,33 et 0,34 lisent directement ~/.vimrc .

    0.33 (publié le 28/04/2014) était la première version à implémenter VIM-288 , y compris des éléments tels que le mappage de j j à ESC . Cela fonctionne très bien, et il y a une nouvelle section Vim Emulation dans les préférences IDEA qui répertorie tous les conflits entre les mappages ~/.vimrc et les mappages Intellij et vous permet de résoudre les conflits en atsortingbuant les clés à IDEA ou IdeaVim. Voici l’ annonce de sortie sur Twitter.

    (Note: je ne suis pas l’auteur, juste un utilisateur satisfait.)

    Il regarde le numéro d’IdeaVIM # VIM-288 (edit, update: voir la réponse de jbyler , VIM-288 maintenant corrigé) résoudra votre problème quand il sera corrigé. Moi aussi, je cherchais un moyen d’avoir le mode d’insertion «jk» au lieu d’utiliser la touche Échap. Je ne suis pas un expert des plug-ins IntelliJ, mais j’ai réussi à modifier le code source d’IdeaVIM pour y insérer le raccourci «jk». Il ne me restait plus qu’à déployer le plugin et à l’utiliser à la place de la version officielle. Voici comment je l’ai fait:

    1. Prenez le code source IdeaVIM.

      https://github.com/JetBrains/ideavim

    2. Vous pouvez suivre les instructions sous “Développement” sur cette page pour configurer votre environnement de développement pour le plug-in.

    3. Maintenant que votre projet IdeaVIM est entièrement configuré, ouvrez ce fichier: com.maddyhome.idea.vim.key.RegisterActions.java

    4. Il semble que ce fichier possède toutes les commandes Visual / Insert / Normal et leurs raccourcis clavier correspondants. Pour mon exemple de modification de la liaison de clé “exit insert mode”, recherchez “VimInsertExitMode”. Vous devrez append une ligne à ce bloc de code pour votre nouveau raccourci.

    5. Voici comment la section de code s’est occupée de mon édition:

        parser.registerAction (KeyParser.MAPPING_INSERT, "VimInsertExitMode", Command.Type.INSERT, nouveau raccourci [] {
           nouveau raccourci (KeyStroke.getKeyStroke ('[', KeyEvent.CTRL_MASK)),
           nouveau raccourci (KeyStroke.getKeyStroke (KeyEvent.VK_C, KeyEvent.CTRL_MASK)),
           nouveau raccourci (KeyStroke.getKeyStroke (KeyEvent.VK_ESCAPE, 0)),
           nouveau raccourci ("jk"),
           nouveau raccourci (new KeyStroke [] {KeyStroke.getKeyStroke (KeyEvent.VK_BACK_SLASH, KeyEvent.CTRL_MASK),
               KeyStroke.getKeyStroke (KeyEvent.VK_N, KeyEvent.CTRL_MASK)})
       }) 

    6. Maintenant, déployez le projet (créez un fichier .jar) et ajoutez-le à votre dossier de plug-ins. J’ai suivi ces instructions pour référence:

      http://confluence.jetbrains.com/display/IDEADEV/Getting+Started+with+Plugin+Development#GettingStartedwithPluginDevelopment-anchor5

    7. Il se peut que vous deviez enregistrer votre fichier Vim.xml à partir de votre dossier keymaps, je ne suis pas sûr. J’ai supprimé le mien et il a été refait quand j’ai redémarré IntelliJ.

    8. Essayer! Devrait être capable d’utiliser ‘jk’ comme raccourci de mode d’insertion de sortie maintenant!

    Vous savez, j’ai eu un certain succès avec .vimrc dans mon dossier personnel sous Windows, donc généralement C: \ Users \ yourLogin. Il semblerait que ce soit par conception. Oleg mentionne qu’IdeaVIM utilise un sous-ensemble de commandes VIm ici.

    http://youtrack.jetbrains.com/issue/VIM-134#tab=Comments

    On dirait que vous devez être connecté pour voir les commentaires sur le système youtrack.

    Oleg Shpynov 15 août 2011 18:12

    Le plug-in IdeaVIM charge certaines données de configuration à partir du fichier .vimrc, mais la prise en charge des plug-ins vim n’est pas et ne sera pas disponible, car il est nécessaire de réécrire tout le runtime VIM dans le plug-in IdeaVim.

    Notez que vous devez nommer le fichier .vimrc, pas _vimrc, si vous êtes sous Windows où vous pouvez vous attendre à ce dernier.

    Fonctionne avec set ignorecase au moins!

    Selon la description dans le repository du plugin ( https://github.com/JetBrains/ideavim ), vous pouvez réaliser cela en créant un fichier ” ~ / .ideavimrc ” avec son contenu:

     source ~/.vimrc 

    IdeaVim maintenant (au moins dès 0,35) prend en charge un nombre limité de commandes , ainsi que la carte et ses variations. Pour les obtenir automatiquement, placez vos parameters dans ~ / .ideavimrc.

    Pour le faire fonctionner sur Windows 7, créez .ideavimrc dans C: \ Users [nom d’utilisateur]

    Travaillé pour moi

    Je viens juste de comprendre comment faire ça hier. J’ai été en mesure de lier symboliquement mon fichier .vimrc à mes parameters ideavim en exécutant la commande suivante:

     ln -s $HOME/.vimrc $HOME/.ideavim