当我在打开cindent或vim-javascript的vim中有以下内容时:
if(bla){
#
(#显示光标)
我输入一个新行:
if(bla){
#
然后关闭}
if(bla){
}
问题是,现在我回到上一行并且
if(bla){
#
}
#之后没有更多的缩进!现在你可能认为这并不烦人,但是当我处理具有多级标签缩进的文件时,由于我的编码方式,它会破坏我的工作效率。有没有办法让关闭a}不破坏行之前的标签缩进?
答案 0 :(得分:2)
由于您关闭了{}
,因此未删除该标签,因为您未在该行中输入任何文字而将其删除。
我的~/.vimrc
中有以下映射的多种变体来解决这个问题(等待更清洁的解决方案)几年:
inoremap {<CR> {<CR>}<C-o>==<C-o>O
inoremap {; {<CR>};<C-o>==<C-o>O
两者都做同样的事情:他们关闭{}
并将光标放在它所属的位置。有一堆自动插件提供了这个功能,但从长远来看,我发现它们太烦人了。
答案 1 :(得分:0)
你有什么用来升空线?箭头键(一个坏习惯,根据一些)?也许在你写完上面的东西之前你不需要放入右大括号?您也可以不留下空行,点击右括号,然后键入<esc>O
以打开上方。或者,如果您因某些原因想留空行,只需使用S
重置缩进。