Vimã¡ã¢ : jedi-vimã§Pythonã®å ¥åè£å®
jedi-vim
Pythonã使ãæ©ä¼ããã£ãã®ã§Vimã§Pythonã®ç°å¢ãæ´ãã¦ã¿ãã
è£å®ã«ã¤ãã¦ã¯jedi-vim
ã¨ãããã©ã°ã¤ã³ãè¯ããããªã®ã§è©¦ãã¦ã¿ãã
ã¤ã³ã¹ãã¼ã«
åææ¡ä»¶
Vimã+python
ã§ã³ã³ãã¤ã«ããã¦ããå¿
è¦ãããã®ã§ä¸è¨ã³ãã³ãã§ç¢ºèªãPython3ã使ããã+python3/dyn
ã¨ãªã£ã¦ããã°ããããï¼dyn
ã¯åçãªã³ã¯ã¨ãããã¨ãããï¼ããã®ç¶æ
ã ã¨Vimã§:echo has('python3')
ãå®è¡ããã¨1
ãè¿ã£ã¦ããã
$ vim --version | grep python +cryptv +linebreak -python +vreplace +cscope +lispindent +python3/dyn +wildignore
jedi-vim
ã§ã¯jedi
ã©ã¤ãã©ãªã使ç¨ããã®ã§ãjedi
ãã¤ã³ã¹ãã¼ã«ãã¦ããå¿
è¦ããããpip
ã®å ´åã¯ä¸è¨ã³ãã³ããå®è¡ããã ãããã®ãã©ã°ã¤ã³ä»¥å¤ã«jedi
ã使ç¨ããäºå®ããªãã®ã§ããã°å¾ã§èª¬æããgit submodule
ã¨ãã¦ã¤ã³ã¹ãã¼ã«ããæ¹æ³ãããã
$ pip install jedi
ã¾ããé¢æ°ãã©ã¡ã¼ã¿è£å®æ©è½ã使ç¨ããããã«ã¯Vimã®ãã¼ã¸ã§ã³ã7.3以ä¸ã§ã+conceal
ã¨ãªã£ã¦ããå¿
è¦ãããã¨ã®ãã¨ã
$ vim --version | grep conceal +conceal +libcall +profile +viminfo
ã¤ã³ã¹ãã¼ã«æ¹æ³
NeoBundleã®å ´åã¯ä¸è¨è¡ãvimrc
ã«è¿½å ã
NeoBundle 'davidhalter/jedi-vim'
deinã®å ´åã¯ä¸è¨è¡ãdeinlazy.toml
ãªã©ã«è¿½å ã
[[plugins]] repo = 'davidhalter/jedi-vim' on_ft = 'python'
ããã¦jedi
ãåå¥ã«ã¤ã³ã¹ãã¼ã«ããå ´åã¯jedi-vim
ãã£ã¬ã¯ããªã§ãµãã¢ã¸ã¥ã¼ã«ã®æ´æ°ã¨åæåãè¡ãã
$ git submodule update --init
ã¤ã³ã¹ãã¼ã«ãæåãã¦ããã°Vimã§:help jedi-vim
ã§ãã«ãç»é¢ã表示ãããããã«ãªãï¼ãã«ãã表示ãããªãå ´åã¯:helptags {path/to/vimruntime}/doc
ã®å®è¡ãå¿
è¦ããï¼ã
åºæ¬çãªä½¿ãæ¹
ã¤ã³ã¹ãã¼ã«ãæåãã¦ããã°ããã©ã«ãã®è¨å®ã§åä½ã確èªã§ãã以ä¸ã®ããã«Pythonã®ãã¡ã¤ã«ãéãã¦.
ãå
¥åããã¨è£å®åè£ã表示ãããã
ç¶ãã¦æåãå ¥åããã°åè£ãçµãè¾¼ã¾ããã
ã¾ããé¢æ°åã®å¾ã§(
ãå
¥åããã¨å¼æ°ã表示ãããã
FAQ
FAQããã£ãã®ã§è¦ã¦ã¿ãã
https://github.com/davidhalter/jedi-vim#faq
docstringã®ãããã¢ãããç¡å¹
è£å®æã«docstringï¼ã¢ã¸ã¥ã¼ã«ãã¯ã©ã¹ãé¢æ°ãªã©ã®èª¬ææï¼ã®ãããã¢ããã¦ã£ã³ãã¦ï¼åã®ãã£ããã£ç»åã§ä¸é¨ã«è¡¨ç¤ºããã¦ããï¼ã表示ãããããç¡å¹ã«ãããå ´åã¯vimrc
ã«ä¸è¨è¡ã追å ã
autocmd FileType python setlocal completeopt-=preview
ã¿ããã¼ã§è£å®
ã¿ããã¼ãæ¼ãã¦è£å®ãããå ´åã¯supertabプラグインã使ç¨ããã¨ãããããã
NeoBundleã®å ´åã¯ä¸è¨è¡ãvimrc
ã«è¿½å ãã¦ã¤ã³ã¹ãã¼ã«ã
NeoBundle 'ervandew/supertab'
ã¿ããã¼ãæ¼ãã¦ãè£å®ã§ããªãå ´åããè£å®ã®é çªãéã«ãªãå ´åã¯ä¸è¨è¡ãvimrc
ã«è¿½å ã
let g:SuperTabContextDefaultCompletionType = "context" let g:SuperTabDefaultCompletionType = "<c-n>"
è£å®ãé ã
Numpyãªã©ã®ã©ã¤ãã©ãªã®è£å®ã¯1åç®ã¯æéãããããã¨ããããã2åç®ä»¥éã¯çµæããã£ãã·ã¥ãããã®ã§é«éã«è£å®ã§ããã¨ã®ãã¨ã
ããã©ã«ãè¨å®
åºæ¬çãªä½¿ãæ¹ã¯ããã£ãã®ã§ããã©ã«ãè¨å®ããã«ãã§ç¢ºèªãã¦ã¿ãã
é ç® | ãã¼ | 説æ |
g:jedi#completions_command | <Ctrl-Space> | è£å®éå§ |
g:jedi#goto_command | <leader>d | Definitionï¼ã¾ãã¯Assignmentï¼ã«ç§»å |
g:jedi#goto_assignments_command | <leader>g | Assignmentã«ç§»å |
g:jedi#goto_definitions_command | - | éæ¨å¥¨ãªã®ã§#goto_commandãä½¿ç¨ |
g:jedi#documentation_command | <K> | pydoc表示 |
g:jedi#rename_command | <leader>r | å¤æ°ãªãã¼ã |
g:jedi#usages_command | <leader>n | 使ç¨ç®æ表示 |
:Pyimport | :Pyimport | ã¢ã¸ã¥ã¼ã«ã®ãªã¼ãã³ |
ä¸è¨ã®ããã«jedi-vim
ã§ã¯è£å®ã ãã§ãªãå®ç¾©ã¸ã®ç§»åãpydocã®è¡¨ç¤ºãªã©ãã§ããã
ãã¼è¨å®ãå¤æ´ãããå ´åã¯ã
let g:jedi#completions_command = "<C-N>"
ã®ããã«vimrc
ã«è¨è¿°ããã°ããã
ãã®ä»ã®è¨å®å¤ã¨ãã¦ã¯ä»¥ä¸ã®ãã®ãããã1
ã®å ´åã¯æå¹åããã¦ããã
é ç® | ããã©ã«ã | 説æ |
g:jedi#auto_initialization | 1 | èªåã§åæå |
g:jedi#auto_vim_configuration | 1 | completeoptã®è¨å® |
g:jedi#popup_on_dot | 1 | ããªãªã(.)ãå ¥åãããè£å® |
g:jedi#popup_select_first | 1 | è£å®åè£ã®1çªç®ãé¸æ |
g:jedi#auto_close_doc | 1 | ãã¬ãã¥ã¼ã¦ã£ã³ãã¦ãèªåã§éãã |
g:jedi#show_call_signatures | 1 | é¢æ°ã®å¼æ°è¡¨ç¤ºãæå¹åï¼2ãæå®ããã°ã³ãã³ãã©ã¤ã³ã«è¡¨ç¤ºï¼ |
g:jedi#show_call_signatures_delay | 500 | é¢æ°ã®å¼æ°è¡¨ç¤ºãããã¾ã§ã®æéï¼millisecondã§æå®ï¼ |
g:jedi#use_tabs_not_buffers | 0 | å®ç¾©ç§»åãªã©ãã¿ãã§è¡¨ç¤º |
g:jedi#squelch_py_warning | 0 | Vimã+pythonã§ã³ã³ãã¤ã«ããã¦ããªãå ´åã«è¡¨ç¤ºããè¦åãç¡å¹ã«ãããã¨ãã¯1ã« |
g:jedi#completions_enabled | 1 | è£å®æ©è½ãæå¹å |
g:jedi#use_splits_not_buffers | "" | å®ç¾©ç§»åãªã©ãåå²ã§è¡¨ç¤ºã"left", "right", "top", "bottom", "winwidth"ãæå® |
g:jedi#force_py_version | "auto" | Python2, Python3ã®ä¸¡æ¹ãã¤ã³ã¹ãã¼ã«ããã¦ããå ´åã«ã©ã¡ãã使ç¨ãããæå® |
g:jedi#smart_auto_mappings | 1 | from module.name<space>ã¨å ¥åããã¨ãã®è£å®ãæå¹å |
g:jedi#use_tag_stack | 1 | ã¿ã°ã¹ã¿ãã¯æ©è½ãæå¹å |
è¨å®å¤ãå¤æ´ãããå ´åã¯ã
let g:jedi#use_tabs_not_buffers = 1
ã®ããã«vimrc
ã«è¨è¿°ããã°ããã
è£å®ä»¥å¤ã®æ©è½
å®ç¾©ã¸ç§»å
ä¾ãã°ã以ä¸ã®ãããªãã¡ã¤ã«æ§æã®ã¨ãã«file1.py
ã®foo
ã«ã«ã¼ã½ã«ãç½®ãã¦ã<leader>d
ãæ¼ãã¨å®ç¾©å
ã®file3.py
ã®bar()
ã«ç§»åãããã<leader>g
ãæ¼ãã¨file2.py
ã®foo
ã«ç§»åããã
# file1.py: from file2 import foo # file2.py: from file3 import bar as foo # file3.py def bar(): pass
pydoc表示
調ã¹ããåèªã«ã«ã¼ã½ã«ãç½®ãã¦K
ãæ¼ãã¨pydocã表示ãããã
å¤æ°ãªãã¼ã
ãªãã¼ã ãããå¤æ°ã«ã«ã¼ã½ã«ãç½®ãã¦<leader>r
ãæ¼ãã¨ãå¤æ°ãåé¤ããã¦æ¿å
¥ã¢ã¼ãã«ãªããããã¦ãæ°ããå¤æ°åãå
¥åãã¦æ¿å
¥ã¢ã¼ããæããã¨é¢é£ããé¨åããªãã¼ã ãããã
使ç¨ç®æ表示
使ç¨ç®æã調ã¹ããåèªã«ã«ã¼ã½ã«ãç½®ãã¦<leader>n
ãæ¼ãã¨Quickfixã«ãªã¹ãã表示ãããã

- ä½è : Bill Lubanovic,æè¤åº·æ¯ ,é·å°¾é«å¼
- åºç社/ã¡ã¼ã«ã¼: ãªã©ã¤ãªã¼ã¸ã£ãã³
- çºå£²æ¥: 2015/12/01
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- ãã®ååãå«ãããã° (2件) ãè¦ã