proteanthread / vim

Automatically exported from code.google.com/p/vim
0 stars 0 forks source link

Cindent not behaving as expected after substitute. #92

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. vim -u NONE -U NONE
2. Enter the following exactly as shown:
:set cindent
:setf cpp
iint main(){
int a;
}<ESC>gg:%s/int a;/ /
iint a;
int b;
int c;

3. Alternatively, with expandtab:
:set cindent
:setf cpp
:set et
iint main(){
int a;
}<ESC>gg:%s/int a;/ /
iint a;
int b;
int c;

What is the expected output? What do you see instead?
Expected:
int main() {
         int a;
         int b;
         int c;
}

Actual:
int main() {
         int a;
        int b;
int c;
}

Expected with expandtab:
int main() {
        int a;
        int b;
        int c;
}

Actual with expandtab:
int main() {
        int a;
       int b;
      int c;
}

What version of the product are you using? On what operating system?
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Sep  1 2012 18:08:47)
MacOS X (unix) version
Included patches: 1-646
Compiled by Bjorn Winckler <bjorn.winckler@gmail.com>
Huge version with MacVim GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+conceal
+cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff +digraphs +dnd 
-ebcdic
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path 
+float
+folding -footer +fork() +fullscreen -gettext -hangul_input +iconv 
+insert_expand
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap 
-lua
+menu +mksession +modify_fname +mouse +mouseshape +mouse_dec -mouse_gpm 
-mouse_jsbterm
+mouse_netterm -mouse_sysmouse +mouse_xterm +mouse_urxvt +mouse_sgr +multi_byte
+multi_lang -mzscheme +netbeans_intg +odbeditor +path_extra +perl 
+persistent_undo
+postscript +printer +profile +python -python3 +quickfix +reltime +rightleft 
+ruby
+scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop 
+syntax
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse 
+textobjects
+title +toolbar +transparency +user_commands +vertsplit +virtualedit +visual
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup -X11
-xfontset +xim -xsmp -xterm_clipboard -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall 
-Wno-unknown-pr
agmas -pipe  -DMACOS_X_UNIX -no-cpp-precomp  -g -O2 -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=1

Linking: clang   -L.    -L.         -L/usr/local/lib -o Vim -framework Cocoa 
-framework C
arbon      -lncurses  -liconv -framework Cocoa    -fstack-protector 
-L/usr/local/lib  -L/
System/Library/Perl/5.12/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc 
-framework
 Python   -framework Ruby

Please provide any additional information below.
Setting the filetype to cpp is optional, it works without that too. 
Indenting one space too far with the :s is intentional, it is to better show 
the effect, if you turn on expandtab, it will deindent one space for each line.
Please note that if you enter insert mode using 'a' this issue does not occur, 
only when you use 'i'.

Original issue reported on code.google.com by randy.th...@gmail.com on 12 Nov 2012 at 7:29