我有这个标签间距配置:
set autoindent
set smartindent
set expandtab tabstop=4 shiftwidth=4 smarttab softtabstop=4
在配置结束时,我把它放在:
autocmd FileType javascript,jade,json set shiftwidth=2 tabstop=2 softtabstop=2
2个空格标签工作得很好。但是,如果我输入enter(新行),它就变成了4个空格。这是一个例子:
var Post = orm.define('Post', { title: sequelize.STRING, content: sequelize.STRING, | /* wrong spaces */ });
但如果我使用4个制表符空格,则在输入后也会使用4个空格。
我无法弄清楚问题是什么。
只有当我在javascript回调函数中编写object-literal时才会发生这种情况(如上面的代码示例)。它适用于通用代码语句和json object-literal。这是一个例子:
/* the 2 spaces works fine*/ app.set('port', 3000); app.use(express.bodyParser()); /* also works fine here */ var config = { host: 'localhost', port: 5432 }
答案 0 :(得分:9)
请尝试使用以下内容:
set number
set smartindent
set tabstop=2
set shiftwidth=2
set expandtab
set clipboard=unnamed
答案 1 :(得分:0)
我发现了这个问题,试图理解为什么使用ENTER键()或使用TAB键时,根据自动识别的不同,制表符的大小会有所不同。 阅读较旧的答案后,此链接可帮助我解决问题。 https://www.reddit.com/r/vim/comments/99ylz8/confused_about_the_difference_between_tabstop_and/
为解决这些缩进大小之间的差异,我在$HOME/.vimrc
中放入了
set tabstop=2
set shiftwidth=2
通过这两个设置,我意识到tabstop
是按键盘上的TAB键时的大小,shiftwidth
是按键盘上的Enter键时的大小。