Mam duży skrypt powłoki, który używa kombinacji spacji i tabulatorów. Chcę ponownie wciąć cały plik na podstawie składni, na przykład Format Eclipse. Czy istnieje program (upiększający?), Który to zrobi?
Trudno mi zrozumieć logikę, gdy wszystko jest ze sobą zablokowane, np
if [ "$CANCELLATION" ]
then
while test $num -gt 0
do
if [ "$cjb" -gt 0 ]
Nauczył się, jak wywoływać funkcje w Vimie, ale to nie działało.
Emacs - stracił wszystkie nowe linie
linux
indentation
jsymolon
źródło
źródło
M->
jest zwykłym obowiązkiem dlaend-of-buffer
. Ponieważ zdejmowanie rąk z klawiatury jest złe.C-x h
, który działamark-whole-buffer
.untabify
ponieważ wszystko jest niezaznaczone, i (2) czy to nie tylko kiedyś znajdowało się w menu? Zasługuje na to!W Vi / Vim po ustawieniu poprawnej składni pliku (
:set syntax=sh
) możesz nacisnąć: gg=G(lub 1G=G), aby poprawić wcięcie całego pliku.Oto polecenie formatowania całego pliku w miejscu:
Uwaga: wykonaj kopię zapasową przed uruchomieniem powyższej komendy.
Aby przetestować formatowanie pierwsze, należy edytować plik w vim i uruchomić:
:norm gg=G
.Zobacz także: Ponowne wcięcie źle wciętego kodu w Vi SE
źródło
if
ifi
słowa kluczowe. Być może wymagana jest wtyczka?filetype=sh
(lubft
).Wygląda na to, że shfmt może załatwić sprawę . Formatuje kod powłoki / bash, który obejmuje wcięcia.
źródło
shfmt -i 2 -ci ~/mariadb-qa/pquery-run.sh
Prawdopodobnie chcesz wcięcia Super Shell . Zapisz go w ~ / .vim / indent, a kiedy będziesz następny w vimie, uruchom
:source ~/.vim/indent/sh.vim
Prawdopodobnie zechcesz również skonfigurować inteligentne wcięcie w pliku w .vimrc
Jeśli nie masz nic przeciwko vimowi bałaganowaniu przy formatowaniu, dodaj również ten wiersz do vimrc.
W każdym razie oto, na co czekałeś. Kiedy następnym razem edytujesz skrypt powłoki w vimie, zakładając, że włączyłeś inteligentne wcięcia i zainstalowałeś identyfikator super powłoki, po prostu naciśnij następujące klawisze, aby ponownie uruchomić skrypt:
gg=G
źródło