执行格式化时由于制定了 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}/下
1quanwei$ find . -iname *file* 2 3./share/vim/vim74/autoload/netrwFileHandlers.vim 4./share/vim/vim74/autoload/spellfile.vim 5./share/vim/vim74/doc/filetype.txt 6./share/vim/vim74/filetype.vim 7./share/vim/vim74/ftplugin/dockerfile.vim 8./share/vim/vim74/macros/maze/Makefile 9./share/vim/vim74/plugin/spellfile.vim 10./share/vim/vim74/syntax/dockerfile.vim 11
然后查看上面的 filetype.vim,搜索jsx 发下如下
au BufNewFile,BufRead *.js,*.javascript,*.es,*,jsx setf javascript
这里映射成了javascript,所以解决方案就显而易见了,删掉上面的jsx,再新增一行
1au BufNewFile,BufRead *.js,*.javascript,*.es setf javascript 2au BufNewFile,BufRead *.jsx setf jsx
重启vim ,正常工作了