VimでPythonのコードを自動整形する
使うものリスト
今回使っているプラグインのリンクです。
各自READMEなど確認しておいてください。
- https://github.com/nvie/vim-flake8
- https://github.com/tell-k/vim-autopep8
- https://pypi.org/project/autopep8/
autopep8のインストール
pip install autopep8
vim pluginのインストール
vimのプラグイン管理をdeinで行っている人は、plugin_lazy.toml
に以下の行をコピーして貼り付ける。(deinを使ってない人は今すぐdeinを使いましょう)
[[plugins]]
repo = 'nvie/vim-flake8'
on_ft = ['python']
[[plugins]]
repo = 'tell-k/vim-autopep8'
on_ft = ['python']
.vimrcの編集
gitにpushする前に自動で実行したりファイルを保存するときに自動で実行したりすることも可能ですが、あまり勝手に実行されても怖いのでvim上でsift+fを押したときに自動整形が実行されるように設定します。
以下を.vimrcに追記します。
"autopep8を<sift>+fで実行
function! Preserve(command)
" Save the last search.
let search = @/
" Save the current cursor position.
let cursor_position = getpos('.')
" Save the current window position.
normal! H
let window_position = getpos('.')
call setpos('.', cursor_position)
" Execute the command.
execute a:command
" Restore the last search.
let @/ = search
" Restore the previous window position.
call setpos('.', window_position)
normal! zt
" Restore the previous cursor position.
call setpos('.', cursor_position)
endfunction
function! Autopep8()
call Preserve(':silent %!autopep8 --ignore=E501 -')
endfunction
autocmd FileType python nnoremap <S-f> :call Autopep8()<CR>
参考
これはこちらのStackoverflowのページを参考にしています。
使い方
- vimのノーマルモードでF7キーを押すと、Flake8が実行されてpep8に準拠していない箇所が表示される。
- 同じくノーマルモードでsift+fキーを押すと、Autopep8が実行されて、ソースコードの自動整形が行われる。
Author And Source
この問題について(VimでPythonのコードを自動整形する), 我々は、より多くの情報をここで見つけました https://qiita.com/Haruka2003/items/4ae1b9ac504567ad4142著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .