PythonをVimで書きたい。WindowsXPで環境を用意してみた。
現状の確認
MinGW/msysをインストールしたときのvim(7.3)が入っている。
これでも十分Pythonを書ける。しかし以下のようにバージョン確認すると、-python
, -python3
となっており、Pythonのオプションがついていない。
vim --version C:>vim --version VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Mar 19 2011 15:37:04) Included patches: 1-138 Compiled by ir0nh34d@users.sourceforge.net Huge version without GUI. Features included (+) or not (-): +arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape +mouse_dec -mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra -perl +persistent_undo +postscript +printer +profile -python -python3 +quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl -terminfo +termresponse +textobjects +title -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" fall-back for $VIM: "/usr/share/vim" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 Linking: gcc -o vim.exe -lm -ltermcap -liconv -lintl
新しいVimのインストール
vim-jpからインストールする。
執筆時点での最新版は8.0.0082。約16MB。
ダウンロード後、zipを解凍。環境変数に追加。MinGW/msysのvimよりも優先的に参照されるようにするために、先頭にパスを追記した。
以下のようにバージョン確認。+python/dyn
, +python3/dyn
, +ruby/dyn
などを確認。
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:>vim --version VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 13 2016 15:09:51) MS-Windows 32 ビット コンソール 版 適用済パッチ: 1-82 Modified by koron.kaoriya@gmail.com Compiled by koron.kaoriya@gmail.com Huge 版 without GUI. 機能の一覧 有効(+)/無効(-) +acl +extra_search +mouse +tag_old_static +arabic +farsi -mouseshape -tag_any_white +autocmd +file_in_path +multi_byte -tcl -balloon_eval +find_in_path +multi_lang +termguicolors -browse +float -mzscheme -tgetent ++builtin_terms +folding -netbeans_intg -termresponse +byte_offset -footer +num64 +textobjects +channel +gettext/dyn +packages +timers +cindent +guess_encode +path_extra +title +clientserver -hangul_input +perl/dyn -toolbar +clipboard +iconv/dyn +persistent_undo +user_commands +cmdline_compl +insert_expand -postscript +vertsplit +cmdline_hist +job +printer +virtualedit +cmdline_info +jumplist +profile +visual +comments +kaoriya +python/dyn +visualextra +conceal +keymap +python3/dyn +viminfo +cryptv +lambda +quickfix +vreplace +cscope +langmap +reltime +wildignore +cursorbind +libcall +rightleft +wildmenu +cursorshape +linebreak +ruby/dyn +windows +dialog_con +lispindent +scrollbind +writebackup +diff +listcmds +signs -xfontset +digraphs +localmap +smartindent -xim -dnd +lua/dyn +startuptime -xpm_w32 -ebcdic +menu +statusline -xterm_save +emacs_tags +migemo/dyn -sun_workshop +eval +mksession +syntax +ex_extra +modify_fname +tag_binary システム vimrc: "$VIM\vimrc" ユーザー vimrc: "$HOME\_vimrc" 第2ユーザー vimrc: "$HOME\vimfiles\vimrc" 第3ユーザー vimrc: "$VIM\_vimrc" ユーザー exrc: "$HOME\_exrc" 第2ユーザー exrc: "$VIM\_exrc" デフォルトファイル: "$VIMRUNTIME\defaults.vim" コンパイル: cl -c /W3 /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 -DFEAT_CSCOPE -DFEAT_JOB_CHANNEL /DMODIFIED_BY=\"koron.kaoriya@gmail.com\" /DDYNAMIC_MSV CRT_DLL=\"msvcr100.dll\" /DGETTEXT_DLL=\"intl.dll\" /DGETTEXT_DLL_ALT=\"intl.dll \" /D_BIND_TO_CURRENT_VCLIBS_VERSION=1 /D_USE_32BIT_TIME_T=1 -DWINVER=0x0501 -D_ WIN32_WINNT=0x0501 /Fo.\ObjCXULYHRi386/ -DHAVE_STDINT_H /Ox /GL -DNDEBUG /MD -DD YNAMIC_ICONV -DDYNAMIC_GETTEXT -DDYNAMIC_MIGEMO -DFEAT_LUA -DDYNAMIC_LUA -DDYNAM IC_LUA_DLL=\"lua51.dll\" -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"p ython27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python35. dll\" -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DDYNAMIC_PERL -DD YNAMIC_PERL_DLL=\"perl524.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=23 -DDYNAMIC_RUBY_DLL=\"msvcrt-ruby230.dll\" -DFEAT_HUGE /Fd.\ObjCXULYHRi386/ /Zi リンク: link /RELEASE /nologo /subsystem:console /LTCG:STATUS oldnames.lib kerne l32.lib advapi32.lib shell32.lib gdi32.lib comdlg32.lib ole32.lib uuid.lib /mac hine:i386 /nodefaultlib msvcrt.lib user32.lib /nodefaultlib:lua51.lib /node faultlib:python27.lib /nodefaultlib:python35.lib WSock32.lib /PDB:vim.pdb -d ebug
成果
- シンタックス・ハイライトがされるようになった
- TABキーを押下するとスペースキー4個になる
- インデントを1キーでアンインデントできる(BackSpaceキー)
Before
After
参考
さらに改善できそう。でも、難しそう&キリがない。
こういうのは面倒になってから用意したほうがいい。
vimプラグインというのがあるらしい。プラグインを管理するツールがあるらしい。
また、vimにはテキストオブジェクトとオペレータという概念があるらしい。それらを扱うと便利になるっぽい。
とりあえず、入れるとしても以下のもので十分。でも、なくても困らない。今はいいや。
プラグイン | 概要 |
---|---|
dein.vim | vimプラグインを管理する |
thinca/vim-quickrun | vimからプログラムを実行する |
所感
コードを書く前からツールにこだわりすぎると前に進めなくなる。とりあえず書こう。そして本題のgoogle-api-python-clientに戻ろう。