Mon .tcshrc

Contenue du fichier ~/.tcshrc

#{{{ Env
if ($tty == '') then
   exit 0
endif
setenv PATH /sbin:/usr/sbin:$PATH
setenv EDITOR      vim
setenv VISUAL      vim
setenv PAGER       more
setenv LESS        "-erX"
setenv GIT_PAGER   less
setenv LANG        en_US.UTF-8
setenv LC_TYPE     en_US.UTF-8

if ${?TERM} then
    switch( $TERM )
    case "xterm*":
        setenv TITLE "%{\033]0;%n@%m [%~]\007%}"
        breaksw;
    default:
        setenv TITLE ""
        breaksw;
    endsw
endif
#}}}
#{{{ Env tcsh
set myuid       = `id -u`
set stty        = `echo $tty | sed 's/tty//'`
set prompt      = "${TITLE}%h %n@%m-$stty [%B%.03%b]%# "
set prompt2     = "%n@%M-$tty >%R?<%# "
set time        = ( 1 "%Uu %Ss %Er %Pcpu %X+%Dk %I+%Oio %Fpf+%Wsw" )
set who         = "%n has %a %l from %M"
set fignore     = ( .o \~ \#\*\# )
set complete    = enhance
set watch       = ( 1 any any )
set autolist    = ambiguous
set correct     = cmd
set listjobs    = long
set history     = ( 5000 "%h (%D-%W-%Y %T) %R\n" )
set savehist    = ( 5000 merge )
set histfile    = ~/.tcsh_history
set histdup     = erase
set matchbeep   = nomatch
set promptchars = '>#
set listflags   = 'a
set printexitvalue
set autoexpand
set listlinks
set echo_style  = both
unset autologout

bindkey "^R"    history-search-backward
bindkey "^S"    history-search-forward
#}}}
#{{{ Alias
alias   l               'ls -Glh \!*
alias   ll              'ls -Glha \!*
alias   monip           'wget -q --no-check-certificate https://panel.pascalito.org/ip.php -O - ; echo ""
alias   mplayer-nova    'mplayer -ao pulse,alsa,sdl:aalib,coreaudio http://broadcast.infomaniak.net:80/radionova-high.mp3
alias   mplayer-play    'mplayer -ao pulse,alsa,sdl:aalib,coreaudio \!*
alias   mplayer-pls     'mplayer -ao pulse,alsa,sdl:aalib,coreaudio -loop 0 -playlist \!:1
alias   mplayer-plsr    'mplayer -ao pulse,alsa,sdl:aalib,coreaudio -shuffle -loop 0 -playlist \!:1
alias   mplayer-rfg     'mplayer -ao pulse,alsa,sdl:aalib,coreaudio http://www.radiofg.com/streams/fg.pls
alias   mplayer-rfg-c   'mplayer -ao pulse,alsa,sdl:aalib,coreaudio http://www.radiofg.com/streams/fgc.pls
alias   mplayer-rfg-r   'mplayer -ao pulse,alsa,sdl:aalib,coreaudio http://www.radiofg.com/streams/fgv.pls
alias   mplayer-rfg-h   'mplayer -ao pulse,alsa,sdl:aalib,coreaudio http://www.radiofg.com/streams/fgd.pls
alias   mplayer-rfg-u   'mplayer -ao pulse,alsa,sdl:aalib,coreaudio http://www.radiofg.com/streams/fgu.pls
alias   pls-create      'find ~/Music -ctime -\!:1  -iname "*.m4a" -o -iname "*.mp4" -o -iname "*.mp3" -type f -printf "/%AY%Am%Ad %p\r\n" | sort | sed "s/^.\{10\}//g" > ~/.mplayer/tmp.m3u
alias   rm              '\rm -i
alias   screenshot      'import -window root `hostname`-`date +%y%m%w-%H%M%S`.png
alias   src             'source ~/.tcshrc
alias   svnup           'find ~/Documents/svn -type d -depth 1 -exec svn up {} \;
alias   taroverssh      'tar cvpf - . | ssh \!:1 tar xpf - -C \!:2
alias   vi              'vim \!*
unalias ls
#}}}
#{{{ pmad
if ( -o ~/Documents/svn/scripts/dotfiles/pmad.tcsh ) then
    source ~/Documents/svn/scripts/dotfiles/pmad.tcsh
endif
if ( -d ~/Documents/svn/scripts/pmad ) then
    setenv PATH ~/Documents/svn/scripts/pmad:$PATH
endif
#}}}
#{{{ Completion
# tcsh
complete {fg,bg,stop}   c/%/j/ p/1/"(%)"//
complete kill           'c/%/j/' 'c/-/S/
complete chgrp          'p/1/g/
complete chown          'p/1/u/
complete find           'p/1/d/' 'n/-user/u/' 'n/-group/g/
complete cd             'C/*/d/
complete rmdir          'C/*/d/
complete lsd            'C/*/d/

complete git p/1/"(add am apply archive bisect branch config checkout clone commit  \
      count-objects describe diff fetch fsck gc grep init ls-files log merge mv pull push \
      prune rebase repack reset revert rm remote show show-branch status tag version)"/
complete cvs 'c/--/(help help-commands help-synonyms)/' \
      'p/1/(add admin annotate checkout commit diff \
      edit editors export history import init log login \
      logout rdiff release remove rtag status tag unedit \
      update watch watchers)/' 'n/-a/(edit unedit commit \
      all none)/' 'n/watch/(on off add remove)/
complete svn p/1/"(add blame cat checkout cleanup commit copy delete \
      diff export help import info list lock log merge mkdir move propdel \
      propedit propget proplist propset resolved revert status switch  \
      unlock update )"/

# signal names
# also note that the initial - can be created with the first completion
# but without appending a space (note the extra slash with no
# append character specified)
complete kill 'c/-/S/' 'p/1/(-)//

# use available commands as arguments for which, where, and man
complete which 'p/1/c/
complete where 'p/1/c/
complete man 'p/1/c/

# aliases
complete alias 'p/1/a/
complete unalias 'p/1/a/

# variables
complete unset 'p/1/s/
complete set 'p/1/s/

# environment variables
complete unsetenv 'p/1/e/
complete setenv 'p/1/e/
#(kinda cool: complete first arg with an env variable, and add an =,
# continue completion of first arg with a filename.  complete 2nd arg
# with a command)
complete env 'c/*=/f/' 'p/1/e/=/' 'p/2/c/

# limits
complete limit 'p/1/l/

# key bindings
complete bindkey 'C/*/b/

# groups
complete chgrp 'p/1/g/

# users
complete chown 'p/1/u/

# sudo
complete sudo 'n/-l/u/' 'p/1/c/

# You can use complete to provide extensive help for complex commands
# like find.
# Please check your version before using these completions, as some
# differences may exist.
complete find 'n/-name/f/' 'n/-newer/f/' 'n/-{,n}cpio/f/' \
     'n/-exec/c/' 'n/-ok/c/' 'n/-user/u/' 'n/-group/g/' \
     'n/-fstype/(nfs 4.2)/' 'n/-type/(b c d f l p s)/' \
     'c/-/(name newer cpio ncpio exec ok user group fstype type atime \
     ctime depth inum ls mtime nogroup nouser perm print prune \
     size xdev)/' \
     'p/*/d/

# set up cc to complete only with files ending in .c, .a, and .o
complete cc 'p/*/f:*.[cao]/

# of course, this completes with all current completions
complete uncomplete 'p/*/X/

# complex completion for ln
# In all cases, if you start typing, it completes with a filename
# But if you complete without typing anything you get this:
#   first argument:           adds "-s"
#   arguments that follow -s: reminds you of which argument is expected
complete ln 'C/?/f/' 'p/1/(-s)/' 'n/-s/x:[first arg is path to original file]/' 'N/-s/x:[second arg is new link]/

# set a printer list, for use with all print related commands
set printerlist=(hp1 hp2 color)
complete lp 'c/-d/$printerlist/
complete lpstat 'p/1/$printerlist/
complete lpq 'c/-P/$printerlist/
complete lpr 'c/-P/$printerlist/
complete enscript 'c/-d/$printerlist/
#}}}
#{{{ Other
switch($OSTYPE)
    #{{{ OSx
    case darwin:
        setenv PATH /opt/local/bin:/opt/local/sbin:$PATH
        alias  ggcontactsync '/System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync --sync com.google.ContactSync
        breaksw
    default:
        breaksw
    #}}}
    #{{{ Linux
    case linux:
        #{{{ Debian
        if ( -f /etc/debian_version ) then
            set ipackages = `dpkg --get-selections | awk '{print $1}'`
            set apackages = `apt-cache search '' | awk '{print $1}'`
            complete dpkg 'n/-L/$ipackages/
            complete apt-get \
                'c/--/(build config-file diff-only download-only \
                fix-broken fix-missing force-yes help ignore-hold no-download \
                no-upgrade option print-uris purge reinstall quiet simulate \
                show-upgraded target-release tar-only version yes )/' \
                'c/-/(b c= d f h m o= q qq s t x y )/' \
                'n/{source,build-dep}/x:<pkgname>/' \
                'n/{remove}/`dpkg -l|grep ^ii|awk \{print\ \$2\}`/' \
                'n/{install}/`apt-cache pkgnames | sort`/' \
                'C/*/(update upgrade dselect-upgrade source \
                build-dep check clean autoclean install remove)/

            complete apt-cache \
                'c/--/(all-versions config-file generate full help important \
                names-only option pkg-cache quiet recurse src-cache version )/' \
                'c/-/(c= h i o= p= q s= v)/' \
                'n/{search}/x:<regex>/' \
                'n/{pkgnames,policy,show,showpkg,depends,dotty}/`apt-cache pkgnames | sort`/' \
                'C/*/(add gencaches showpkg stats dump dumpavail unmet show \
                search depends pkgnames dotty policy )/
            if ($myuid == 0) then
                alias updateall 'apt-get update && apt-get upgrade && apt-get autoclean && apt-get dist-upgrade
            endif
        endif
        #}}}
    #}}}
    #{{{ Other
    default:
        breaksw
    #}}}
endsw
#}}}

Suggestions de lecture :

comments powered by Disqus