Jak przypisać własny margines wcięcia, jeśli warunek jest spełniony (tzn. zawiera ciąg) w poprzednim wierszu? Przykładem może być jedno wcięcie spacji w instrukcji if. Z góry dziękuję.

Wejście:

`int main(int argc, char **argv) {

If (argc != 1) return(2);

if (argc != 2)
   return(3); 

for (...)

Printf("\n");
}`

Wyjście:(przy użyciu g/if/normal j>>) przesuwa się w prawo co powrót wiersz

Wyjście:(oczekiwane)

int main(int argc, char **argv) {
if (argc != 1)
 return(2);

if (argc != 2)
 return(3);   

for (...)

Printf("\n"); }

Innymi słowy, oczekuje się, że pozycjonowanie będzie odnosić się do ciągu, a nie do jego poprzedniej pozycji. jeszcze raz dziękuję za twój wysiłek @kev

vim
4
angelo bodas 18 luty 2012, 15:58

2 odpowiedzi

Najlepsza odpowiedź
:help indentexpr

Musisz utworzyć funkcję wcięcia.

Korzystałem już wcześniej z następującego odniesienia. Jak napisać skrypt wcięcia Vima

Możesz także zajrzeć do folderu wcięcia w swojej instalacji vima po przykłady.

W systemie Max OS X

/usr/share/vim/vim73/indent
2
William Bettridge-Radford 17 kwiecień 2012, 03:51

Użyj tych poleceń, aby automatycznie wciąć plik źródłowy C:

:set syn=cpp

gg=G

1
kev 18 luty 2012, 19:53