Ecrire un plugin Vim simple en Python 3

introduction

――Je voulais en savoir plus sur Vim, j'ai donc écrit un plugin Vim en Python (j'utilise Neovim ...)

Ce que j'ai fait

--Ce https://github.com/shase/passgen.vim

Répertoires, fichiers

.
├── autoload
│   └── passgen.vim
├── plugin
│   └── passgen.vim
└── python3
    └── passgen.py

Flux de création

Tout d'abord, écrivez le processus principal en Python ordinaire

python3/passgen.py


  
import secrets
import string


def passgenvim_generate_password(size=''):
   chars = string.ascii_letters + string.digits
   return ''.join(secrets.choice(chars) for x in range(int(size)))

Écrivez Vimscript qui appelle Python sous chargement automatique

autoload/passgen.vim


let s:save_cpo = &cpo
set cpo&vim

py3file <sfile>:h:h/python3/passgen.py
python3 import vim

function! passgen#passgen(size)
  python3 vim.command("call setline('.', '%s')" % passgenvim_generate_password(vim.eval('a:size')))
endfunction

let &cpo = s:save_cpo
unlet s:save_cpo

Appelez la fonction écrite en autoload à partir de la commande

plugin/passgen.vim


let s:save_cpo = &cpo
set cpo&vim

command! -nargs=1 PASSGEN call passgen#passgen(<f-args>)

let &cpo = s:save_cpo
unlet s:save_cpo

OK comme ça

Je l'ai utilisé comme référence

Recommended Posts

Ecrire un plugin Vim simple en Python 3
Ecrire le plugin vim en Python
Ecrire une méthode de cupidité simple en Python
Ecrire un programme de dynamique moléculaire super simple en python
Créer un plugin pour exécuter Python Doctest sur Vim (2)
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Ecrire une dichotomie en Python
Ecrire des algorithmes A * (A-star) en Python
Ecrire un graphique à secteurs en Python
Écrire une recherche de priorité en profondeur en Python
Implémentation d'un algorithme simple en Python 2
Exécutez un algorithme simple en Python
Un client HTTP simple implémenté en Python
Essayez de dessiner une animation simple en Python
Créer une application GUI simple en Python
Ecrire une courte définition de propriété en Python
Ecrire un programme de chiffrement Caesar en Python
Configurer un serveur HTTPS simple avec Python 3
Créez un environnement de test Vim + Python en 1 minute
Notes de programme simples Pub / Sub en Python
Créer un modèle d'investissement dynamique simple en Python
Diviser les fichiers lors de l'écriture du plugin vim en python
Plug-in Vim qui formate automatiquement les styles Python
Configurer un serveur SMTP simple en Python
Prendre une capture d'écran en Python
Créer un plugin Wox (Python)
Créer une fonction en Python
Créer un dictionnaire en Python
Écrire une distribution bêta en Python
Ecrire python dans Rstudio (réticulé)
Créez un Slackbot simple avec un bouton interactif en python
Créer un bookmarklet en Python
Ecrire un histogramme à l'échelle logarithmique sur l'axe des x en python
Analyse de régression simple avec Python
Dessinez un cœur en Python
Client IRC simple avec python
Un moyen simple d'éviter plusieurs boucles for en Python
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire un test piloté par table en C
[python] Gérer les fonctions dans une liste
Première analyse de régression simple en Python
Appuyez sur une commande en Python (Windows)
OAuth 2 simple avec Python (urllib + oauthlib)
Ecrire un schéma JSON avec Python DSL
Créer un conteneur DI avec Python
Formater automatiquement le code Python avec Vim
Ecrire un serveur HTTP / 2 en Python
Dessinez une matrice de diagramme de dispersion avec python
Ecrire une fonction AWS Lambda en Python
Créer un fichier binaire en Python
Résoudre ABC036 A ~ C avec Python
Écrire une liste de python astuces vim rapides
Résoudre ABC037 A ~ C avec Python
Ecrire un serveur TCP super simple
Dessinez un diagramme CNN en Python
Créer une chaîne aléatoire en Python
Logique gacha simple écrite en Python
Ecrire un test unitaire de langage C en Python