GNU/Linux >> Tutoriels Linux >  >> Linux

Est-il possible de créer et d'utiliser des menus dans Vim (basé sur un terminal) ?

Je configure des boîtiers Linux virtualisés (en tant que serveurs de développement locaux) pour les développeurs d'une entreprise principalement basée sur Windows, et certains développeurs font des fissures négatives à propos de vim (entre autres). (Il leur semble représenter Linux/Unix d'une certaine manière et prouver que l'environnement est obtus difficile à utiliser.) Je me souviens quand j'ai été forcé d'utiliser vim pour la première fois (les administrateurs système ont refusé d'installer emacs !) et la difficile courbe d'apprentissage, donc je suis quelque peu sympathique. Il m'est venu à l'esprit que, plutôt que de leur présenter nano (qu'ils ne dépasseraient probablement jamais), il pourrait être possible de configurer des menus de type nano dans vim pour faciliter la transition. (J'ai trouvé un fichier .vimrc très convivial pour les débutants, mais il n'a rien à voir avec les menus de style nano.)

Le seul problème est que la seule chose que j'ai pu trouver qui prétend qu'il est possible de configurer des menus dans vim (pas gvim) n'a pas fonctionné, et mes tentatives pour corriger le problème m'ont laissé un autre problème à résoudre. Avant de perdre beaucoup de temps, j'aimerais savoir si c'est en fait possible, car il semble y avoir très peu d'informations sur la façon de le faire.

Réponse acceptée :

Oui c'est possible. Vous pouvez charger menu.vim (les définitions de menu gvim par défaut), ou vous pouvez simplement commencer à partir de zéro et créer les vôtres, puis y accéder via :emenu . Cependant, cela ne vous donne pas des menus toujours visibles de type nano; il vous donne la possibilité de naviguer dans les menus à l'aide de la saisie semi-automatique de la ligne de commande.

Si l'utilisateur n'a pas de vimrc, vous voudrez commencer par désactiver la compatibilité vi :

:set nocompatible

Activer la complétion intelligente de la ligne de commande sur <Tab> (activer la liste de tous les choix possibles et naviguer dans les résultats avec <Up> , <Down> , <Left> , <Right> , et <Enter> ):

:set wildmenu

Faites défiler les appuis répétés entre tous les choix correspondants :

:set wildmode=full

Chargez les menus par défaut (cela se produirait automatiquement dans gvim, mais pas dans le terminal vim) :

:source $VIMRUNTIME/menu.vim

Après ces quatre commandes, vous pouvez déclencher manuellement l'achèvement du menu en appelant l'achèvement de l'onglet sur le :emenu commande, en faisant :emenu<space><tab>

Vous pouvez parcourir les résultats à l'aide de la touche de tabulation, des touches fléchées et de la touche Entrée (elle développe les sous-menus et sélectionne des éléments). Vous pouvez ensuite rendre cela plus pratique en allant un peu plus loin et en liant un mappage pour faire apparaître le menu sans avoir à taper :emenu à chaque fois :

En relation :Trouver la 2e occurrence de la chaîne à partir de la fin du fichier ?

Faites en sorte que Ctrl-Z dans un mappage agisse comme si vous appuyiez sur <Tab> interactivement sur la ligne de commande :

:set wildcharm=<C-Z>

Et créez une liaison qui invoque automatiquement :emenu achèvement pour vous :

:map <F4> :emenu <C-Z>

Linux
  1. Comment créer et utiliser des sous-domaines

  2. Comment utiliser GParted pour créer et redimensionner facilement des partitions

  3. Possible d'utiliser un .dll sous Linux

  4. Est-il possible de créer un script pour enregistrer et restaurer les autorisations ?

  5. Utiliser les .vimrc et .vim/ d'un autre utilisateur

Comment utiliser et tirer le meilleur parti de la commande fuser sous Linux

Comment utiliser des marqueurs et effectuer une sélection de texte dans Vim

Comment créer une Amazon Machine Image (AMI) et l'utiliser sur AWS

Comment créer et utiliser un fichier d'échange sous Linux

Schémas de couleurs dans Vim :comment les modifier et les utiliser

Bash Scripting Part6 - Créer et utiliser des fonctions Bash