注æï¼NeoVimã¨ãneocompleteã¨ã
NeoVimã®éçºé²è¡ã«ä¼´ããå¤ãã®shougowareï¼neoã·ãªã¼ãºï¼ãéçºãçµäºãã¦ãéã®åãã¾ã¨ã£ããªããã«ãªã£ã¦ãã£ã¦ãã£ã½ãã§ãã
åã¯NeoVimé¢ä¿ã®æ
å ±ããã£ããã¢ããã§ãã¦ãã¾ããããåãã©ã°ã¤ã³ã«é¢ãã¦ã¯READMEãdocãèªãã§ãã£ã¦èªå·±å¤æããã£ã¦ããã¾ãããã
è³å¦ããã§ãããããPycharmï¼IDEAï¼ã®ãããªåªããPythonç¨IDEãããç¾ä»£ã«ããã¦ã¯ãã¨ãã£ã¿ã®ã«ã¹ã¿ãã¤ãºãå ¨ãè¡ããªãã¨ããã®ã¯çç£æ§ãç ç²ã«ããè¡çºã§ããã¨çè ã¯èãã¦ãã¾ãã
ã¨ã¯ãããã¼ã«ã®ã»ããã¢ããã¨ãããã®ã¯ããã©ããããã®ã§ããIDEã§ããè¨å®ãã¹ãç®æã¯å¤æ°ããã¾ãã
ä»ã®ã¨ããPythonç¨Vimã«ã¹ã¿ãã¤ãºã®è¨å®ä¾ã¨ãã¦å人çã«æºè¶³ãããã®ããªãã£ãã®ã§ããã°ã«ã¾ã¨ãã¦ãããã¨æãã¾ãã
Vimåå¿è ã ã¨ããããªãç¨èªããã£ãããããããããªãã®ã§ãããVim-jpã ã¨ãã®è§£èª¬è¨äºãåèã«ããªããé å¼µã£ã¦ãã ããã
ã¾ããã¼ãã¤ã³ãã®è¨å®ã¨ããã®ã¯å¤åã«å±äººçãªãã®ã§ãããããå½è¨äºã«ããã¦ã¯ä¸é¨ãé¤ãã¦ãã¼ãã¤ã³ãè¨å®ã®ä¾ã¯è¨è¿°ãã¾ããã
ã©ããã¦ããµã³ãã«ã欲ããå ´åã¯çè
ã®vimrcãåç
§ãã¦ãã ãããã¾ãåãã©ã°ã¤ã³ã«ã¤ãã¦ã¯ãåºæ¬çã«:helpã«è¨å®ä¾ãåå¨ããã¯ãã§ãã
https://github.com/hachibeeDI/dotfiles/blob/master/.vimrc
Vimã®ãã«ããªãã·ã§ã³
Vimã®ã³ã³ãã¤ã«ã«ã¯å¤æ°ã®ãªãã·ã§ã³ãããã¾ããããã®ä¸ã§ãonã«ãã¦ãããæ¹ãè¯ããã®ã¯ä»¥ä¸ã«ãªãã¾ã
python
Pythonã®ã©ã¤ãã©ãªãå¼ã³åºããããªãã©ã°ã¤ã³ã®å¤ããå©ç¨ãã¦ãã¾ããå¿ é ã¨ãã£ã¦ãããã§ãã
clipboard
Vimã®æã£ã¦ããã¬ã¸ã¹ã¿ã®ä»çµã¿ã¨ãOSã®ã¯ãªãããã¼ãã飿ºåºæ¥ãããã«ãªãã¾ãã
ä¾ãã°Macã«æåããå ¥ã£ã¦ããBSDç±æ¥ã®Vimã§ã¯ãã®æ©è½ãonã«ãªã£ã¦ãã¾ãããlua or luajit
NeoCompleteãUniteãªã©ã®Shogowareã便å©ã«ä½¿ãã«ã¯å¿ è¦ã§ãã
vim --versionã¨ããã°ãã©ã®ãªãã·ã§ã³ãonã«ãªã£ã¦ããã®ãããããã¾ãã+pythonãªã©ã¨è¡¨ç¤ºããã¦ããã°OKã§ãã
ãã«ãã®æ¹æ³ãã®ãã®ã«ã¤ãã¦ã¯ãããã§ãæ
å ±ãããã®ã§å²æãã¾ãã
Linuxã®ãã£ã¹ããªãã¥ã¼ã·ã§ã³ãªã©ã«ãã£ã¦ã¯ãå¤ãVimããé
å¸ãã¦ããªããã®ããã£ããããã®ã§ãªãã¹ããªãèªåã§ãã«ãåºæ¥ãããã«ãªã£ã¦ãããæ¹ãè¯ãã¨æãã¾ãã
ã§ãMacã®å ´åã¯homebrewãWindowsã®å ´åã¯Kaoriya-Vimã使ãã°ããã¨æããã
以éãå°ãªãã¨ã7.4以éã®ãã¼ã¸ã§ã³ã®Vimã使ã£ã¦ããã¨ããåæã§è©±ãé²ãã¾ãã
åºæ¬çãª.vimrcã®è¨å®
æä½éã便å©ã«ããããã®è¨å®ã以ä¸ã«ãªãã¾ããåå¥ã®è¨å®ã«ã¤ãã¦ãã¡ãã¡èª¬æã¯ãã¾ãããããªãã¹ããªãhelpãã²ãã¦æå³ã調ã¹ã¦ãã ããã
if &compatible set nocompatible endif filetype plugin indent on syntax enable set t_Co=256 set fileformats=unix, dos set smarttab set expandtab set virtualedit=block set ignorecase set smartcase set incsearch set nohlsearch set wrapscan set list set number set listchars=tab:>-, trail:~ set ambiwidth=double if has('path_extra') set tags& tags + =.tags, tags endif set laststatus=2 set showtabline=2 set clipboard=unnamed set backspace=eol,indent,start set wildmenu set wildmode=list:full set wildignore=*.o,*.obj,*.pyc,*.so,*.dll let g:python_highlight_all = 1
set clipboard=unnamedãå°å³ãªããçµæ§éè¦ã§ãVimã®ç¡åã¬ã¸ã¹ã¿ã¨OSã®ã¯ãªãããã¼ãã飿ºããããã¨ãåºæ¥ã¾ãã
çµæ§ãªå²åã§ãã®æ©è½ãæå¹ã«ããªãã¾ã¾Vimã使ã£ã¦ãã人ãè¦ãããã®ã§ãããä¸ä¾¿ãããã¨æãã®ã§ã¡ããã¨ä½¿ã£ãæ¹ãããã¨æãã¾ããã¬ã¸ã¹ã¿ã®æ©è½ã¯ä½¿ãããªãã°ä¾¿å©ã ã¨ããããã§ãããåã¯ä½¿ãããªãã¦ãã¾ãããã¯ãªãããã¼ãã§ååã§ãã
Pythonåºæã®è¨å®
vimrcå ã§'autocmd FileType python'ãã¦ããä¾ãå¤ãã§ãããå¤è¨èªå©ç¨è ã¯vimrcã®ç®¡çãç ©éã«ãªãã®ã§ftpluginã®å©ç¨ããå§ããã¾ãã
" .vim/after/ftplugin/python.vim if exists('b:did_ftplugin_python') finish endif let b:did_ftplugin_python = 1 setlocal smarttab setlocal expandtab setlocal tabstop=4 setlocal shiftwidth=4 setlocal foldmethod=indent setlocal commentstring=#%s " - af: a function " - if: inner function " - ac: a class " - ic: inner class " this plugin has aditional key-bind " - '[pf', ']pf': move to next/previous function " - '[pc', ']pc': move to next/previous class xmap <buffer> af <Plug>(textobj-python-function-a) omap <buffer> af <Plug>(textobj-python-function-a) xmap <buffer> if <Plug>(textobj-python-function-i) omap <buffer> if <Plug>(textobj-python-function-i) xmap <buffer> ac <Plug>(textobj-python-class-a) omap <buffer> ac <Plug>(textobj-python-class-a) xmap <buffer> ic <Plug>(textobj-python-class-i) omap <buffer> ic <Plug>(textobj-python-class-i) setlocal omnifunc=jedi#completions
å¾è¿°ãããã©ã°ã¤ã³ãjediã¨textobj-pythonç¨ã®è¨å®ãåæã«ãã¦ãã¾ãã
Pythonã®ã·ã³ã¿ãã¯ã¹ãã¤ã©ã¤ãã«ããã¤ã追å ãã
Pythonã®ããã©ã«ãã®ã·ã³ã¿ãã¯ã¹ã¯ããªãç°¡ç´ ã§ãã
Pythonã«ãããäºå®ä¸ã®äºç´èªã§ããselfããæ¼ç®åãªã©ããã¤ã©ã¤ãããããã«ãããã¨ã§å¯èªæ§ãåä¸ãã¾ããGoè¨èªã§ãerrãã·ã³ã¿ãã¯ã¹ã«è¿½å ããã¨æããã¿ãããªè¨äºã話é¡ã«ãªã£ã¦ã¾ããããããããæãã§ãã
if version < 600 syntax clear elseif exists('b:current_after_syntax') finish endif " We need nocompatible mode in order to continue lines with backslashes. " Original setting will be restored. let s:cpo_save = &cpo set cpo&vim syn match pythonOperator "\(+\|=\|-\|\^\|\*\)" syn match pythonDelimiter "\(,\|\.\|:\)" syn keyword pythonSpecialWord self hi link pythonSpecialWord Special hi link pythonDelimiter Special let b:current_after_syntax = 'python' let &cpo = s:cpo_save unlet s:cpo_save
åã¯ã«ã©ãã«ãªæ¹ã好ããªãã§ããã
Vimãã©ã°ã¤ã³ã®å°å ¥
æ±ç¨çãªãã©ã°ã¤ã³
ããã«ã¤ãã¦ã¯ç¡æ°ã«è§£èª¬ãããã®ã§ä»¥ä¸ç¥
Shougo/neobundle.vim
ãã©ã°ã¤ã³ã管çãããã©ã°ã¤ã³ã§ãã
解説ããã«ããèªãã§ãfiletype plugin indent onã®ã¿ã¤ãã³ã°ãªã©ã«ã¤ãã¦ã¯æ°ãã¤ãã¦è¨å®ãã¦ãã ãããShougo/neocomplete.vim
neocomplcache.vimã¯ãã§ã«éçºã忢ãã¦ããã®ã§ãã©ããã¦ã+luaããããªãã¨ãã人以å¤ã¯ãã£ã¡ã使ãã¾ãããã
Shougo/Unite.vim
å¿ é ã®æé«ä¾¿å©ã§ãã
Shougo/unite-outline
ã¯ã©ã¹ã颿°åã®ä¸è¦§ã表示ããunite sourceã§ãã
Shougo/neosnippet
ã¹ããããã§ãã
thinca/vim-quickrun
ç·¨éä¸ã®ã½ã¼ã¹ã³ã¼ããéåæå®è¡ãã¦ãçµæãã¿ããã¨ãåºæ¥ã¾ããå¿ é ã ã¨æãã¾ãã
kana/vim-smartinput
IDEçãªã対å¿ããã«ãã³ã®èªåå ¥åã ã¨ããããããã®ãè¨å®ãããããã¦ããã¾ããå人çã«ã¯ããªãæç¨ãã¦ãããã©ã°ã¤ã³ã§ãã
kana/vim-operator-user, kana/vim-textobj-user
åãVimãæç¨ãã¦ãã大ããªçç±ã®ä¸ã¤ã§ããæ¨æ¥ããªãã¬ã¼ã¿ã¼ã¨ããã¹ããªãã¸ã§ã¯ããã¦ã¼ã¶ãæ¡å¼µãããããã¦ããããã©ã°ã¤ã³ã§ãã
ãªãã¬ã¼ã¿ã¼ã¨ããã¹ããªãã¸ã§ã¯ãã§ãããããã使ããªãã¨Vimã使ãæå³ã5å²ãããæ¸ãã®ã§ãIDEã使ããªãã®ãªãã°æ¯éè¦ãã¾ããããkana/vim-operator-replace
vim-operator-userãå©ç¨ãã¦ãã¾ããVimã«æ¬ ãã¦ãããã¯ãªãããã¼ãã®æååã§å¯¾è±¡ã®æååãå ¥ãæ¿ãããã¨ããæ©è½ãè£ã£ã¦ããã¾ãã
rhysd/vim-operator-surround
ç·¨éç³»ã®ä¸ã§ãæé«ã®ãã©ã°ã¤ã³ã®ä¸ã¤ã§ããsurround.vimã®æ¹è¯çã§ã
ãããã¸ãã®ãã©ã°ã¤ã³ã¯ãæ±ç¨çã«è²ã ã¨ä½¿ããã®ã§è¨å®ãã¦ããã¨å¤§å¤æãã¾ãã
Pythonç¨ã®ããããVimãã©ã°ã¤ã³
davidhalter/jedi-vim
IDEã®æ§ãªãªã ãè£å®ãæä¾ãã¦ããããã©ã°ã¤ã³ã§ãã neocompleteã¨ä¸ç·ã«è¨å®ããã¨ããã§ããããè¨å®ã«ã¤ãã¦ã¯ãããã§ãç´¹ä»è¨äºãããã®ã§å²æãã¾ãã
andviro/flake8-vim
Pythonã®ã½ã¼ã¹ã³ã¼ãã«å¯¾ãã¦ãéçæ¤æ»ãã¹ã¿ã¤ã«ãã§ãã¯ãããã¦ããããã©ã°ã¤ã³ã§ããã¨ã©ã¼ããã£ãå ´æã赤ããã¤ã©ã¤ããã¦ããã¾ãã
ã±ã¢ã¬ã¹ãã¹ããªããªãã¾ããããä¸ã¤ãåããããªãã©ã°ã¤ã³ãããã®ã§ããä¾åããPythonã¢ã¸ã¥ã¼ã«ã®submoduleåãªã©ãããã¦ããããè¨å®ãç ©éãªãããåã¯ãã¡ããæ¨å¥¨ãã¾ãã
hynek/vim-python-pep8-indent
Vimæ¨æºã®Pythonã®ã¤ã³ãã³ãã¯æåãä¸å¯©ã§ãæ®éã«æ¸ãã¦ããã¨pep8ã«éåãã¦ãã¾ãããããã¡ããå ¥ãããã¨ã§å¿«é©ã«ã³ã¼ãã£ã³ã°åºæ¥ãããã«ãªãã¾ãã
jmcantrell/vim-virtualenv
Vimå ã®Pythonç°å¢ã¨virtualenvãé£åããã¦ããããã©ã°ã¤ã³ã§ããå¿ é ã§ãã
hachibeeDI/python_hl_lvar.vim
æä½ã§ãã
ç·¨éãã¦ãã颿°ã®ãã¡ããã¼ã«ã«å¤æ°ããã¤ã©ã¤ããã¾ããçµæ§ä¾¿å©ã ã¨æã£ã¦ã¾ããkana/vim-textobj-indent
ã¤ã³ãã³ãåä½ã§ããã¹ããªãã¸ã§ã¯ãã使ããããã«ãªãã¾ãã
ã¤ã³ãã³ãã®èª¿æ´ããã³ã¡ã³ãã¢ã¦ããªã©Pythonã§ã¯å¤§å¤ä¾¿å©ãªããã¹ããªãã¸ã§ã¯ãã§ããbps/vim-textobj-python
Pythonã®é¢æ°ãã¯ã©ã¹ãããã¹ããªãã¸ã§ã¯ãã¨ãã¦æ±ããããã«ãªãã¾ãã便å©ã§ãã
hachibeeDI/smartinput-petterns
åè¿°ãããsmartinputã®ä¾¿å©è¨å®ãåãç¬æã¨åè¦ã§ä½ã£ã奴ã§ããPython以å¤ã®è¨å®ãå ¥ã£ã¦ãããã¾ãã
大å¤å人çãªãã®ãªã®ã§ä½¿ã£ã¦ã¿ã¦æ°ã«å ¥ã£ã人ã ãã©ããã
ã¾ã¨ã
ãã®è¨äºã«ã¤ãã¦ã§ãããå ã ã¯ç¤¾å ã§ãã¼ã ç¨ã«ä½ã£ã¦ãæç« ãæç´ããããã®ã«ãªãã¾ããå¦ä½ããè¨å®é ç®ãå¤ãã®ã§ãæ°ã«ãªã£ãé¨åãå°ããã¤åãå ¥ãã¦ããã¨ãããããããªãã§ããããã
åºãæµ
ããã¨ããæãã§ç´¹ä»ããã®ã§åé
ç®ã®æ
å ±éã¯å°ãªããªã£ã¦ããããããã¾ããã
jediãªã©ãåå¥ã®ãã©ã®ã³ã¨ãã®è¨å®ã«ã¤ãã¦ã¯å°ã
å¤ãã§ãããã¡ãã®è¨äºãããããããã¨æãã¾ãã
Vimを最強のPython開発環境にする2 - Λlisue's blog
以ä¸ãæ°ãåãããã¾ãæ å ±éãå¢ãã¦ãããã¨æãã¾ãã

å®è·µVimãæèã®ã¹ãã¼ãã§ç·¨éãããï¼ (ã¢ã¹ãã¼æ¸ç±)
- ä½è : Dï½ï½ ï½ï¼®ï½ ï½ï½,æ°ä¸å¾
- åºç社/ã¡ã¼ã«ã¼: KADOKAWA / ã¢ã¹ãã¼ã»ã¡ãã£ã¢ã¯ã¼ã¯ã¹
- çºå£²æ¥: 2014/01/28
- ã¡ãã£ã¢: Kindleç
- ãã®ååãå«ãããã° (3ä»¶) ãè¦ã

Vim script ãã¯ããã¯ãã¤ãã« ~Vim使ãã®éæ³ã®æ
- ä½è : Vim scriptãµãã¼ã¿ã¼ãº
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2014/08/06
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- ãã®ååãå«ãããã° (2ä»¶) ãè¦ã