Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5651

Python3で簡単なVim Pluginを書く

$
0
0

はじめに

  • Vimのことをもっと知りたいと思い、PythonでVim Pluginを書いてみた(Neovim使ってるけど...)
  • 人生初のVim Plugin

作ったもの

ディレクトリ、ファイル

.
├── autoload
│   └── passgen.vim
├── plugin
│   └── passgen.vim
└── python3
    └── passgen.py
  • Pluginとして動かすだけなら、最低限3つのファイルがあれば良さそう
  • もちろんテストもあったほうがよい
  • 公開するのであれば、更にdocやREADMEやLICENCEも合ったほうが良い

作成の流れ

まずmainの処理を普通のPythonとして書く

python3/passgen.py
importsecretsimportstringdefpassgenvim_generate_password(size=''):chars=string.ascii_letters+string.digitsreturn''.join(secrets.choice(chars)forxinrange(int(size)))

Pythonを呼び出すVimscriptをautoload配下に書く

autoload/passgen.vim
lets:save_cpo=&cpo
set cpo&vim

py3file <sfile>:h:h/python3/passgen.pypython3 import vimfunction! passgen#passgen(size)python3vim.command("call setline('.', '%s')" % passgenvim_generate_password(vim.eval('a:size')))endfunctionlet&cpo =s:save_cpo
unlet s:save_cpo

autoloadに書いた関数を、コマンドから呼び出す

plugin/passgen.vim
lets: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

参考にしました


Viewing all articles
Browse latest Browse all 5651

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>