mam currentling użyciuVim obowiązuje retab na początku linii tylko
:set noet|retab!
ale problem używam do jest to zastąpienie wszystkich wystąpień 4 spacji do zakładek w całym pliku. Potrzebuję vim, aby zastępować tylko instancje o wielkości 4 spacji na początku linii.
Po usunięciu! na końcu retabii przestrzenie nie są nigdzie wymieniane.
Próbowałem przy użyciu funkcji niestandardowej, że ktoś Utworzono:
" Retab spaced file, but only indentation
command! RetabIndents call RetabIndents()
" Retab spaced file, but only indentation
func! RetabIndents()
let saved_view = winsaveview()
execute '%[email protected]^\(\{'.&ts.'}\)\[email protected]\=repeat("\t", len(submatch(0))/'.&ts.')@'
call winrestview(saved_view)
endfunc
ale uzyskać ładny wiadomość trochę błędzie podczas uruchamiania: Wykryto
:RetabIndents
Błąd podczas przetwarzania RetabIndents funkcyjnych :
wiersz 2:
E486: Nie znaleziono wzoru:^({4}) +
Czy jesteś pewny, że nie zostały już zastąpione wszystkich rozpoczynających pomieszczeń z kartami? Czy używasz oryginalnego pliku lub zmodyfikowanego pliku (lub bufora), w którym już uruchomiłeś ': set noet | retab!'? – gotgenes
Ok, więc to jest problem, że nie mam żadnych spacji do zastąpienia. Czy nie powinien istnieć modyfikator do zignorowania, jeśli nie znaleziono pasujących elementów? –
zobacz także http://stackoverflow.com/questions/5144284/force-vi-vim-to-use-leading-tabs-only-on-retab – wimh