Je tente d'écrire un script python qui peut automatiser vim, mais l'interface python vim ne me donne pas assez de puissance pour faire tout ce dont j'ai besoin. Je veux communiquer avec vim comme si mon script était un tty (capable d'émettre des instructions en "mode visuel", etc.). En ce qui concerne vim, mon script est un humain exécutant xterm (ou peu importe). Cela peut-il être fait sans construire mon propre émulateur de terminal en python?"scripting" vim en utilisant python avec plus de granularité
0
A
Répondre
1
Toutes les interfaces non-vimscript sont maudites: la seule façon de communiquer avec vim (sauf si vous souhaitez modifier/obtenir le contenu d'un tampon qui est disponible en utilisant l'objet tampon) sont execute
(vim.command(string)
en python) et eval
(vim.eval(string)
en python), les deux nécessitant des arguments de sérialisation. Si vous voulez simplement commencer à utiliser en mode visuel
vim.command("normal! V")
ou
vim.eval("feedkeys('V')")
. Mais si vous voulez, par exemple, de retourner une valeur à une fonction de l'appelant, vous devrez utiliser
import json
# Some code that puts result into variable r
# This won't work if r contains non-unicode strings,
# you will have to write your own serializer in this case.
# As far as I know, it will also fail if some characters in the string
# can be represented only using surrogate pairs.
vim.command("let reply=".json.dumps(r))
# Now in the caller function variable l:reply is defined
Questions connexes
- 1. Alarme UNIX() avec granularité plus élevée
- 2. Obtenir plus de "granularité" avec le MVC Mini Profiler
- 3. Scripting Shell en utilisant sed
- 4. Granularité de Paradigm Mixing
- 5. Scripting OpenOffice Forms avec VB ou python
- 6. recompiler vim avec + python
- 7. VIM: Utilisez Python 2.5 avec vim 7.2
- 8. VIM: Scripting une sélection de toute la section CDATA
- 9. Granularité de datetime SQL
- 10. Authentification à granularité fine avec RESTlet
- 11. faire avec vim en utilisant Intel Fortran
- 12. Scripting Powershell utilisant l'objet where
- 13. Rappels avec Scripting Bridge?
- 14. vim: code complet en utilisant l'erreur omnifunc pour python
- 15. Scripting LMMS à partir de Python
- 16. en essayant d'obtenir vim de travailler avec python
- 17. vim scripting "Je veux un remplacement pour tnext dans cscope"
- 18. Vim "smartoutdent" pour Python?
- 19. alignement et granularité de mmap
- 20. Erreur de téléchargement de fichier en utilisant Flash AS3 Scripting
- 21. Comment ajouter une piste à une liste de lecture iTunes en utilisant Python et Scripting Bridge
- 22. Déchiffrer le fichier chiffré VIM en Python
- 23. Extraction de données pdf avec python à travers le presse-papier - Python Scripting the OS
- 24. Scripting en android
- 25. Thunderbird scripting
- 26. Vim indentation en utilisant ">"
- 27. Scripting VirtualBox avec C#
- 28. en utilisant l'option -W de vim
- 29. en cours d'exécution python sur vim
- 30. Passer des fonctions vim au python intégré de vim
ne peut pas vous faire des choses comme ': exec « V2jx normale »' partir de cette interface Python? – ninjalj