2012-08-11 20 views

Odpowiedz

7

Nie ma opcji, aby uzyskać wartość domyślną dla niezdefiniowanej zmiennej z wyjątkiem analizy dokumentacji lub kodu źródłowego.

HISTSIZE i SAVEHIST nie są ustawieniami, są to zmienne specjalne. Istnieje sposób na wylistowanie wszystkich zmiennych, ale nie wiem, jak wymienić te, które są specjalne i są używane jako ustawienia.

Aby wyświetlić listę parametrów zaimplementowanych jako zmienne, dostępny jest moduł zsh/parameter (012). Ma asocjacyjną tablicę $parameters, gdzie klucze są nazwami zmiennych, a wartości są opisami typów zmiennych. Zarówno HISTSIZE, jak i SAVEHIST pojawiają się tam jako integer-special. HISTCHARS pojawia się tam jako scalar-special. Zauważ jednak, że RANDOM pojawia się tutaj jako HISTSIZE: integer-special, więc nie możesz tego użyć, aby uzyskać specjalne zmienne używane jako opcje. Ale zawsze możesz skorzystać z sekcji PARAMETERS USED BY THE SHELL z man zshparam.

Nie znam żadnej opcji, która umożliwi określenie domyślnych wartości tych parametrów, z wyjątkiem analizy dokumentacji lub kodu źródłowego.

# setopt | grep hist 
nobanghist 
extendedhistory 
histfcntllock 
histignorealldups 
histignorespace 
histnostore 
histreduceblanks 
histsavenodups 
histverify 
incappendhistory 

Jeśli chcesz zobaczyć inne niż domyślne ustawienia:

Jeśli żadne argumenty są dostarczone, nazwy wszystkich aktualnie ustawionych opcji są drukowane. Formularz jest wybierany tak, aby zminimalizować różnice od domyślnych opcji dla bieżącej emulacji (domyślna emulacja jest natywnym zsh, pokazanym jak w zshoptions (1)). Opcje domyślnie włączone dla emulacji są wyświetlane z prefiksem nie tylko wtedy, gdy są wyłączone, podczas gdy inne opcje są wyświetlane bez prefiksu no i tylko wtedy, gdy są włączone. Oprócz opcji zmienionych z domyślnego stanu przez użytkownika, wszystkie opcje aktywowane automatycznie przez powłokę (na przykład SHIN_STDIN lub INTERACTIVE) będą wyświetlane na liście jako . Format jest dodatkowo modyfikowany opcją KSH_OPTION_PRINT, jednak uzasadnienie wyboru opcji z lub bez prefiksu pozostaje takie samo w tym przypadku.

To także poczucie używać:

# unsetopt | grep hist 
noappendhistory 
cshjunkiehistory 
histallowclobber 
nohistbeep 
histexpiredupsfirst 
histfindnodups 
histignoredups 
histlexwords 
histnofunctions 
nohistsavebycopy 
histsubstpattern 
sharehistory 

Jeśli żadne argumenty są dostarczane, nazwy wszystkich opcji aktualnie unset są drukowane.

Albo po prostu podążać za pomoc i korzystać

# setopt kshoptionprint 
# setopt | grep hist 
noappendhistory  off 
nobanghist   on 
cshjunkiehistory  off 
extendedhistory  on 
histallowclobber  off 
nohistbeep   off 
histexpiredupsfirst off 
histfcntllock   on 
histfindnodups  off 
histignorealldups  on 
histignoredups  off 
histignorespace  on 
histlexwords   off 
histnofunctions  off 
histnostore   on 
histreduceblanks  on 
nohistsavebycopy  off 
histsavenodups  on 
histsubstpattern  off 
histverify   on 
incappendhistory  on 
sharehistory   off 

Należy pamiętać, że wyjście setopt i unsetopt meczu gdy opcja kshoptionprint służy.

+0

Dzięki za @ZyX spróbować, ale to tylko pokazuje ustawienia logicznych. Nie pokazuje HISTSIZE i SAVEHIST, które są ustawieniami całkowitymi. –

+0

@RobBednark Nie są to ustawienia. Są to zmienne specjalne. Istnieje sposób na wyświetlenie * wszystkich * zmiennych, ale nie wiem, jak wymienić tylko te, które są specjalne i są używane jako ustawienia. – ZyX

+0

A niektóre zmienne specjalne (zdefiniowane w modułach C) nie są w pełni dostępne do wyświetlenia (pojawiają się w wynikach 'set', ale bez wartości). – ZyX

0

Nie wiem o WAS ...(To znaczy, i do use .prezto), ale jest to "autouzupełnianie" uzyskać po wejściu setoptTAB ...

enter image description here

który mówi mi pożytecznych rzeczy jak ..

-- zsh options (set) -- noaliases noautoresume nohashdirs nohistverify nonomatch ...

i

-- zsh options (unset) -- allexport cshjunkiehistory hashexecutablesonly kshglob nullglob singlecommand ...

4

Aby wyświetlić aktualną wartość, czy zostało ustawione, czy nie (w tym przypadku to pokazuje wartość domyślna):

➜ ~ echo $SAVEHIST 
10000 
➜ ~ echo $HISTSIZE 
10000