目前,我正在使用两个插件在 VIM 中格式化我的 JS(X) 代码:
pangloss/vim-javascriptmxw/vim-jsx我们的团队选择,当我们的 React 组件的 props 溢出到多行时,我们希望这些属性与第一行的属性对齐,如下所示:
<Toggle label={dragString} toggled={this.props.canDrag} onToggle={this.toggleDrag}
thumbStyle={toggleStyles.thumbOff}
thumbSwitchedStyle={toggleStyles.thumbOn}
trackStyle={toggleStyles.trackOff}
trackSwitchedStyle={toggleStyles.trackOn}
/>
Run Code Online (Sandbox Code Playgroud)
相反,它看起来像vim-jsx总是在新行上将 props 缩进两个空格(这就是我们设置的制表符大小):
<Toggle label={dragString} toggled={this.props.canDrag} onToggle={this.toggleDrag}
thumbStyle={toggleStyles.thumbOff}
thumbSwitchedStyle={toggleStyles.thumbOn}
trackStyle={toggleStyles.trackOff}
trackSwitchedStyle={toggleStyles.trackOn}
/>
Run Code Online (Sandbox Code Playgroud)
我可以在我的.vimrc或对vim-jsx插件代码中进行更改,以使新行上的 React 组件 props 与第一行上的 props 对齐吗?
.js就我而言,对于我的以下文件中包含此行的文件,我已经按预期进行了缩进.vimrc:
autocmd FileType javascript setlocal shiftwidth=2 tabstop=2
Run Code Online (Sandbox Code Playgroud)
为了在文件中获得类似的行为.jsx,我还需要添加:
autocmd FileType javascriptreact setlocal shiftwidth=2 tabstop=2
Run Code Online (Sandbox Code Playgroud)
可以:set filetype在vim中运行,根据vim显示文件类型;在这种情况下javascriptreact。