Jaka jest różnica między zestawem a: zestawem?

17

Szukałem na wtyczce vim-sensowne Tim Papieża i zauważyłem to w README ...

Zobacz źródło wiarygodnej listy funkcji. (Nie martw się, to głównie :setpołączenia).

Kiedy spojrzałem na źródło, :setwywołania są takie ...

set autoindent

Nie ma :przed set.

Jestem prawie pewien, że faktycznie widziałem także :setw przykładach .vimrcs.

Jaka jest różnica?

Której formy powinienem użyć w swoim .vimrc?

Ethan
źródło

Odpowiedzi:

22

„Skrypt” wykonuje jedynie sekwencję poleceń ex. „Polecenie ex” to to, co piszesz, gdy używasz :w Vimie. Na przykład :wq, :set wrap, :e file, itp są wszystkie polecenia ex.

To :nie jest częścią polecenia; uruchomienie klawisza jest tylko naciśnięciem klawisza; nie zawsze musisz uwzględniać :, na przykład, gdy łączysz wiele poleceń z |sobą, nie musisz powtarzać :więcej niż raz. Na przykład :write | quitbędzie działać dobrze.

Dla wygody :może być jednak włączone. Pomaga to w kopiowaniu / wklejaniu i tak dalej, ale nie musisz. To nie ma znaczenia W rzeczywistości wszystkie wiodące :litery są po prostu ignorowane. :write, writei :::::::::writewszystkie są równoważne pod względem funkcjonalności (choć oczywiście nie pod względem rozsądku).

Często przydatne jest dołączenie :dokumentacji do wyjaśnienia, że ​​jest to polecenie ex. Na przykład wmożna odwołać się do :wpolecenia trybu normalnego lub, waby przejść do następnego słowa.

Pamiętaj, że dotyczy to wszystkiego . Struktury kontrolne, takie jak ifi endifrównież tylko poleceniami ex; możesz wpisać coś takiego:

:if 1
:echo 'one'
:endif

z wiersza poleceń Vima dobrze; nie potrzeba „skryptu”. Skrypty Vima są bardzo „niemagiczne” i „niespecjalne”; wszystko, co możesz zrobić z wiersza poleceń ex, które możesz zrobić w skrypcie Vima i odwrotnie.

Martin Tournoij
źródło
6

Nie ma różnicy. Jeśli vim zobaczy :polecenie przed vimrc (lub dowolnym plikiem vimscript) , zignoruje je. Ponadto, jak wspomniano powyżej, nie jest to specyficzne dla setpolecenia.

Zwykle :oznacza to, że polecenie zostanie uruchomione przez ciebie zamiast być umieszczane w vimrc (lub innym pliku vimscript) , ale zwykle zależy to od kontekstu. Osobiście uważam, że znacznie lepiej jest nie umieszczać dwukropka przed poleceniami w plikach vimscript, i wydaje się, że tak też robi większość innych ludzi.

Więcej na ten temat patrz :help script.

Wiecznie zielone drzewo
źródło
:h scriptlub :h vim-script-intro(odpowiednik)
VanLaser