2014-12-26 25 views
5

Sto provando a spostare .zshrc in una cartella in cui tengo questo tipo di file sincronizzati con Github.Come specificare un percorso personalizzato per il mio file .zshrc?

Ma ora ogni volta che avviare una sessione di zsh non utilizza il file di configurazione.

Supponendo di aver modificato il file in ~/.dotfiles, come posso aggiungere ~/.dotfiles/.zshrc al PATH (?!) per avviare zsh con quella configurazione?

Facendo source ~./Dotfile/.zshrc funziona solo per quella sessione. Non funziona più se chiudo il terminale.

risposta

6

È possibile symlink:

ln -s /path/to/original /path/to/symlink 

Per il zshrc si può fare qualcosa di simile:

ln -s ~/.dotiles/.zshrc ~/.zshrc 
+0

Avevo provato, ma ho avuto un errore nel comando. Grazie. È esattamente quello che stavo cercando! –

+1

Suggerisco -> ln -s ~/.dotiles/zshrc ~/.zshrc che è, lo zshrc dentro e .dotfiles non da nascondere – SergioAraujo

4

Un'alternativa ad un link simbolico è quello di mettere questo in ~/.zshenv:

ZDOTDIR=~/.dotfiles 

Se si desidera .zshenv in ~/.dotfiles, è possibile controllare l'impostazione ZDOTDIR in uno dei file di configurazione globale (/etc/zshenv è una buona scelta).

+0

Grazie per la risposta, ma mi atterrò a @nash_ag alternativa. –

+0

Lo farei anch'io :) Volevo solo far luce sull'uso di 'ZDOTDIR'. – chepner

3

In alternativa, puoi fare quello che faccio e usare GNU Stow. Ho i miei dotfile in un repository, una sottodirectory per categoria, in questo modo:

dotfilerepo/zsh/.zshrc 
dotfilerepo/zsh/.zlogin 
dotfilerepo/git/.gitconfig 
dotfilerepo/vim/.vimrc 

allora posso cd in pronti contro termine e fare stow zsh e si creerà un link simbolico da ~/.zshrc a repo/zsh /.zshrc, un altro da zsh/.zlogin a ~/.zlogin. stow vim per creare collegamenti dalla sottodirectory vim a ~, ecc.

Ho uno script, install-linkfarm, che esegue tutti i comandi di stow in modo che quando passo a una nuova macchina, clotino il mio repository, cd per ed esegui install-linkfarm e sono a posto.

+0

questo è interessante. Lo proverò –

+0

È molto meno fastidio che eseguire manualmente ln -s .foo ~/.foo'. Mi piace anche avere i dotfiles segregati nei loro sottodiretti. –

-1

Ecco un trucco interessante che non richiede l'utilizzo di collegamenti simbolici. Nella tua .xsession, (. O * WMRC) hanno i seguenti:

 
xterm -e 'zsh -c ". ~/.dotfiles/.zshrc; zsh"'.

invece di:

 
xterm
Assicurarsi di mettere il -e alla fine dopo tutte le altre opzioni xterm.

+0

Questo non funzionerà quando l'utente esegue l'accesso alla casella. –

Problemi correlati