Existe-t-il une méthode pour créer des zones de texte ouvertes Google Chrome dans vim?

18

J'utilisais quotidiennement Firefox, mais je suis passé à Google Chrome et je l'utilise depuis plus de 2 ans maintenant. Le seul plugin qui me manque est celui-ci, It's All Text! . Ce plugin permettait d'ouvrir la zone de texte dans une fenêtre vimou une gvimfenêtre séparée où je pouvais faire des modifications puis enregistrer le contenu une fois terminé, de nouveau dans Firefox.

La chose la plus proche que j'ai trouvée est que ce plugin est TextAid , mais je le trouve un peu compliqué car il nécessite un serveur Web séparé pour être maintenu.

Je préférerais vraiment ne pas avoir à utiliser TextAid, quelqu'un connaît-il d'autres méthodes pour y parvenir en utilisant Chrome?

slm
la source
Cela ne serait-il pas plus approprié pour un superutilisateur?
Patrick
@Patrick - peut-être, mais je l'exécute entièrement sous Linux et je voulais une inclinaison Linux, pas des fenêtres. Je sais aussi que Jasonwryan utilise vimprobable et je voulais obtenir des commentaires sur les alternatives possibles d'autres utilisateurs puissants de ce site. Si d'autres conviennent que c'est loin du sujet, je serai heureux de le déplacer vers SU, mais je fréquente suffisamment ce site pour que je ne sois pas aussi intéressé par leur point de vue à ce sujet.
slm

Réponses:

6

Il existe une extension chrome nommée Surfingkeys , qui inclut l' éditeur ACE vim (un éditeur vim implémenté avec Javascript).

Avec l'extension, vous pouvez appuyer sur Ctrl-ipour appeler l'éditeur vim lorsque vous êtes dans un élément inputou textarea. Ensuite, vous pouvez modifier votre texte avec l'éditeur vim et :wqréécrire le texte dans l'éditeur vim sur l'élément de la page.

Vous pouvez également utiliser l'éditeur vim pour sélectionner l'option d'un selectélément, ce qui est utile lorsqu'il y a des tonnes d'options dans l' selectélément.

Plus d'informations peuvent être trouvées - éditeur vim avec ACE . modifier l'élément d'entrée

modifier l'élément de sélection

ruisseau hong
la source
Outre cette fonctionnalité, surfingkeys ajoute une tonne de fonctionnalités à Chrome, sans oublier que vous pouvez ajouter des fonctions supplémentaires en utilisant javascript
Ricardo Pietrobon
5

Wasavi ouvre des zones de texte dans un éditeur de type vi, qui est configurable via un rcfichier.

Vidéos et liens de téléchargement sur la page GitHub . Chrome, Opera et Firefox sont pris en charge.

Voici un exemple de moi modifiant cette réponse:

entrez la description de l'image ici

Tom Hale
la source
2

En général, vous devez avoir un backend. Cependant, il n'est pas nécessaire qu'il s'agisse d'un serveur Web. Si vous êtes à l'aise avec un script s'exécutant localement chaque fois que vous ouvrez une modification ou qu'un service est en cours d'exécution (bien que cela soit proche du problème à résoudre), cela peut être fait en utilisant l'API pour communiquer avec les scripts locaux via des canaux.

En bref, cela fonctionne en utilisant Ajax dans le navigateur. Une extension peut appeler un script local qui à son tour ouvre l'éditeur souhaité et maintient la communication. Le script local imprime les données stdoutet l'extension reçoit ce qui est poussé.

Un autre choix consiste à utiliser le stockage local, mais n'a pas trouvé de moyen de le combiner avec le lancement d'applications locales.

J'ai un projet sur glace utilisant python comme backend et principalement Vim comme éditeur, mais je l'ai également testé avec des choses comme Emacs et Gedit. J'avais une version de travail, mais je l'ai déformée et je ne l'ai pas regardée depuis un certain temps.

Ce n'est pas une réponse en soi, mais l'a ajouté en tant que note. Je pourrais travailler sur le plugin et y revenir;), mais si le script local n'est pas un démarreur, je crains que cela n'aidera pas beaucoup votre demande.

Runium
la source
J'aimerais savoir où cela s'est passé si vous décidez de faire quelque chose. Veuillez me tenir au courant, je serais également intéressé à participer si vous vouliez un jeu de mains supplémentaire.
slm