vi 의 인덴팅이 조금 이상한것 같습니다.

freezm7의 이미지

if (i == 0)
        return false;
ⓐ      ⓑ

return false; 에서 엔터를 치면 인덴팅 레벨이 하나 줄어들어 ⓐ에 커서가 위치해야 하는데,

인덴팅 레벨이 줄어들지 않고 ⓑ 로 그대로 유지됩니다.

백스페이스라도 써서 ⓑ 에서 ⓐ 로 이동할 수 있으면 덜 불편하겠는데,
그게 안되어서, command 모드로 가서 ⓐ로 이동한 다음, insert 모드로 돌아오고 있습니다.

vim 배우기가 쉽지 않네요.

kslee80의 이미지

뭔가 좀 이상하군요 ;;
vim 의 인덴팅이 조금 꼬인게 아닐까 싶네요.
syntax 파일 자체는 문제가 없는데 가끔 꼬이는 경우가 있더라구요.

b 에서 a 로 백스페이스를 써서 갈려면은,
:set bs=indent 하시면은 귀찮게 command 모드 안 가고도
백스페이스로 갈수 있을 겁니다.
이게 맘에 드시면은 .vimrc 파일에 넣어 두시면 되구요.

cdpark의 이미지

cindent 모드인가요?

프로그램의 확장자가 .c나 .cpp인지 확인해보세요.

그리고 vi 계열에서 back indent 명령은 Ctrl-D입니다. (vim에서도 역시..)