执行格式化时由于制定了 autocmd FileType jsx noremap <c-f> :call jsxBeautify()<cr>
但是格式化时却按照js
的格式化,如果在vim中执行: set filetype=jsx
就能正常格式化了,所以是文件类型匹配错误了。
在vim安装目录搜索 filetype.vim,一般都在/usr/share/vim 中,mac如果用homebrew安装就在/usr/local/Cellar/vim/{version}/
下
quanwei$ find . -iname *file*
./share/vim/vim74/autoload/netrwFileHandlers.vim
./share/vim/vim74/autoload/spellfile.vim
./share/vim/vim74/doc/filetype.txt
./share/vim/vim74/filetype.vim
./share/vim/vim74/ftplugin/dockerfile.vim
./share/vim/vim74/macros/maze/Makefile
./share/vim/vim74/plugin/spellfile.vim
./share/vim/vim74/syntax/dockerfile.vim
然后查看上面的 filetype.vim
,搜索jsx 发下如下
au BufNewFile,BufRead *.js,*.javascript,*.es,*,jsx setf javascript
这里映射成了javascript,所以解决方案就显而易见了,删掉上面的jsx,再新增一行
au BufNewFile,BufRead *.js,*.javascript,*.es setf javascript
au BufNewFile,BufRead *.jsx setf jsx
重启vim ,正常工作了