xref: /freebsd/share/examples/csh/dot.cshrc (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
112330831SEitan Adler# Here are some example (t)csh options and configurations that you may find interesting
212330831SEitan Adler#
312330831SEitan Adler#
412330831SEitan Adler
512330831SEitan Adler# Sets SSH_AUTH_SOCK to the user's ssh-agent socket path if running
64ea96942SEitan Adler#
74ea96942SEitan Adler# This has a couple caveats, the most notable being that if a user
84ea96942SEitan Adler# has multiple ssh-agent(1) processes running, this will very likely
94ea96942SEitan Adler# set SSH_AUTH_SOCK to point to the wrong file/domain socket.
1012330831SEitan Adlerif (${?SSH_AUTH_SOCK} != "1") then
11d14a50d9SChristian Brueffer	setenv SSH_AUTH_SOCK `sockstat -u | awk '/^${USER}.+ ssh-agent/ { print $6 }'`
1212330831SEitan Adlerendif
1312330831SEitan Adler
1412330831SEitan Adler# Change only root's prompt
15d14a50d9SChristian Bruefferif (`id -g` == 0) then
1612330831SEitan Adler	set prompt="root@%m# "
1712330831SEitan Adlerendif
1812330831SEitan Adler
1912330831SEitan Adler# This maps the "Delete" key to do the right thing
2012330831SEitan Adler# Pressing CTRL-v followed by the key of interest will print the shell's
2112330831SEitan Adler# mapping for the key
2212330831SEitan Adlerbindkey "^[[3~" delete-char-or-list-or-eof
2312330831SEitan Adler
2412330831SEitan Adler# Make the Ins key work
2512330831SEitan Adlerbindkey "\e[2~" overwrite-mode
2612330831SEitan Adler
27dd4b1ae7SEitan Adler# Some common completions
28dd9de309SEitan Adlercomplete cd		'p/1/d/'
29dd4b1ae7SEitan Adlercomplete chown          'p/1/u/'
30dd4b1ae7SEitan Adlercomplete dd		'c/[io]f=/f/ n/*/"(if of ibs obs bs skip seek count)"/='
31dd9de309SEitan Adlercomplete find 	'n/-fstype/"(nfs 4.2)"/' 'n/-name/f/' \
32dd9de309SEitan Adler      	  	'n/-type/(c b d f p l s)/' \
33dd9de309SEitan Adler      		'n/-user/u/ n/-group/g/' \
34dd9de309SEitan Adler      		'n/-exec/c/' 'n/-ok/c/' \
35dd9de309SEitan Adler      		'n/-cpio/f/' \
36dd9de309SEitan Adler      		'n/-ncpio/f/' \
37dd9de309SEitan Adler      		'n/-newer/f/' \
38dd9de309SEitan Adler      	  	'c/-/(fstype name perm prune type user nouser group nogroup size inum atime mtime ctime exec \
39dd9de309SEitan Adler      		  ok print ls cpio ncpio newer xdev depth daystart follow maxdepth mindepth noleaf version \
40dd9de309SEitan Adler      		  anewer cnewer amin cmin mmin true false uid gid ilname iname ipath iregex links lname empty path \
41dd9de309SEitan Adler      		  regex used xtype fprint fprint0 fprintf print0 printf not a and o or)/' \
42dd9de309SEitan Adler      		'n/*/d/'
43dd9de309SEitan Adlercomplete fg		'c/%/j/'
44dd9de309SEitan Adlercomplete gpart	'p/1/(add backup bootcode commit create delete destroy modify recover resize restore set show undo unset)/' \
45dd9de309SEitan Adler			'n/add/x:-t type [-a alignment] [-b start] [-s size] [-i index] [-l label] -f flags geom/' \
46dd9de309SEitan Adler      		'n/backup/x:geom/' \
47dd9de309SEitan Adler      		'n/bootcode/x:[-b bootcode] [-p partcode -i index] [-f flags] geom/' \
48dd9de309SEitan Adler      		'n/commit/x:geom/' \
49dd9de309SEitan Adler      		'n/create/x:-s scheme [-n entries] [-f flags] provider/' \
50dd9de309SEitan Adler      		'n/delete/x:-i index [-f flags] geom/' \
51dd9de309SEitan Adler      		'n/destroy/x:[-F] [-f flags] geom/' \
52dd9de309SEitan Adler      		'n/modify/x:-i index [-l label] [-t type] [-f flags] geom/' \
53dd9de309SEitan Adler      		'n/recover/x:[-f flags] geom/' \
54dd9de309SEitan Adler      		'n/resize/x:-i index [-a alignment] [-s size] [-f flags] geom/' \
55dd9de309SEitan Adler      		'n/restore/x:[-lF] [-f flags] provider [...]/' \
56dd9de309SEitan Adler      		'n/set/x:-a attrib -i index [-f flags] geom/' \
57dd9de309SEitan Adler      		'n/show/x:[-l | -r] [-p] [geom ...]/' \
58dd9de309SEitan Adler      		'n/undo/x:geom/' \
59dd9de309SEitan Adler      		'n/unset/x:-a attrib -i index [-f flags] geom/'
60dd9de309SEitan Adlercomplete grep		'c/-*A/x:<#_lines_after>/' \
61dd9de309SEitan Adler      		'c/-*B/x:<#_lines_before>/' \
62dd9de309SEitan Adler      		'c/--/(extended-regexp fixed-regexp basic-regexp regexp file ignore-case word-regexp line-regexp \
63dd9de309SEitan Adler      		  no-messages revert-match version help byte-offset line-number with-filename no-filename quiet silent \
64dd9de309SEitan Adler      		  text directories recursive files-without-match files-with-matches count before-context after-context \
65dd9de309SEitan Adler      		  context binary unix-byte-offsets)/' \
66dd9de309SEitan Adler      		'c/-/(A a B b C c d E e F f G H h i L l n q r s U u V v w x)/' \
67dd9de309SEitan Adler      		'p/1/x:<limited_regular_expression>/ N/-*e/f/' \
68dd9de309SEitan Adler      		'n/-*e/x:<limited_regular_expression>/' \
69dd9de309SEitan Adler      		'n/-*f/f/' \
70dd9de309SEitan Adler      		'n/*/f/'
71dd9de309SEitan Adlercomplete ifconfig	'p@1@`ifconfig -l`@' \
72d14a50d9SChristian Brueffer      		'n/*/(range phase link netmask mtu vlandev vlan metric mediaopt down delete broadcast arp debug)/' \
73dd9de309SEitan Adler      		'c/%/j/' \
74dd9de309SEitan Adler      		'n/*/`ps -ax | awk '"'"'{print $1}'"'"'`/'
75dd4b1ae7SEitan Adlercomplete kill		'c/-/S/' 'c/%/j/' 'n/*/`ps -ax | awk '"'"'{print $1}'"'"'`/'
76dd4b1ae7SEitan Adlercomplete killall	'c/-/S/' 'c/%/j/' 'n/*/`ps -ax | awk '"'"'{print $5}'"'"'`/'
77dd9de309SEitan Adlercomplete kldload	'n@*@`ls -1 /boot/modules/ /boot/kernel/ | awk -F/ \$NF\ \~\ \".ko\"\ \{sub\(\/\.ko\/,\"\",\$NF\)\;print\ \$NF\}`@'
78dd4b1ae7SEitan Adlercomplete kldunload	'n@*@`kldstat | awk \{sub\(\/\.ko\/,\"\",\$NF\)\;print\ \$NF\} | grep -v Name`@'
79dd9de309SEitan Adlercomplete make		'p@1@`make -pn | sed -n -E "/^[#_.\/[:blank:]]+/d; /=/d; s/[[:blank:]]*:.*//gp;"`@' \
80dd9de309SEitan Adler      			'n@-V@`make -ndv | & grep Global: | sed -E -e "s/^Global://" -e "s/ .*//" -e "/^[[:lower:]]/d" | sort | uniq`@'
81dd4b1ae7SEitan Adlercomplete man		'C/*/c/'
82dd9de309SEitan Adlercomplete netstat	'n@-I@`ifconfig -l`@'
83dd4b1ae7SEitan Adlercomplete pkg_delete     'c/-/(i v D n p d f G x X r)/' 'n@*@`ls /var/db/pkg`@'
84dd4b1ae7SEitan Adlercomplete pkg_info       'c/-/(a b v p q Q c d D f g i I j k K r R m L s o G O x X e E l t V P)/' 'n@*@`\ls -1 /var/db/pkg | sed s%/var/db/pkg/%%`@'
85dd9de309SEitan Adlercomplete ping		'p/1/$hosts/'
86dd9de309SEitan Adlercomplete pkill		'c/-/S/' \
87dd9de309SEitan Adler      			'n@*@`ps -axc -o command="" | sort | uniq`@'
88dd9de309SEitan Adlercomplete portmaster	'c/--/(always-fetch check-depends check-port-dbdir clean-distfiles clean-packages delete-build-only \
89dd9de309SEitan Adler      		  delete-packages force-config help index index-first index-only list-origins local-packagedir \
90dd9de309SEitan Adler      		  no-confirm no-index-fetch no-term-title packages packages-build packages-if-newer packages-local \
91dd9de309SEitan Adler      		  packages-only show-work update-if-newer version)/' \
9212330831SEitan Adler      		'c/-/(a b B C d D e f F g G h H i l L m n o p r R s t u v w x)/' \
93dd9de309SEitan Adler      		'n@*@`pkg_info -E \*`@'
94dd9de309SEitan Adlercomplete rsync	"c,*:/,F:/," \
95dd9de309SEitan Adler      		"c,*:,F:$HOME," \
96dd9de309SEitan Adler      		'c/*@/$hosts/:/'
97dd9de309SEitan Adlercomplete scp	"c,*:/,F:/," \
98dd9de309SEitan Adler      		"c,*:,F:$HOME," \
99dd9de309SEitan Adler      		'c/*@/$hosts/:/'
100*1980d11bSLars Engelscomplete service  	'c/-/(e l r v)/' 'p/1/`service -l`/' 'n/*/(start stop reload restart status rcvar describe extracommands onestart onestop oneextracommands)/'
101dd9de309SEitan Adlercomplete svn		'C@file:///@`'"${HOME}/etc/tcsh/complete.d/svn"'`@@' \
102dd9de309SEitan Adler      		'n@ls@(file:/// svn+ssh:// svn://)@@' \
103dd9de309SEitan Adler      		'n@help@(add blame cat checkout cleanup commit copy delete export help import info list ls lock log merge mkdir move propdel \
104dd9de309SEitan Adler      		  propedit propget proplist propset resolved revert status switch unlock update)@' 'p@1@(add blame cat checkout cleanup commit \
105dd9de309SEitan Adler      		  copy delete export help import info list ls lock log merge mkdir move propdel propedit propget proplist propset resolved \
106dd9de309SEitan Adler      		  revert status switch unlock update)@'
107dd9de309SEitan Adlercomplete ssh	'p/1/$hosts/' \
108dd9de309SEitan Adler      		'c/-/(l n)/' \
109dd9de309SEitan Adler      		'n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/'
110dd4b1ae7SEitan Adlercomplete sysctl 'n/*/`sysctl -Na`/'
111dd9de309SEitan Adlercomplete tmux	'n/*/(attach detach has kill-server kill-session lsc lscm ls lockc locks new refresh rename showmsgs source start suspendc switchc)/'
112dd9de309SEitan Adlercomplete which	'C/*/c/'
113dd9de309SEitan Adler
114dd9de309SEitan Adlerif ( -f /etc/printcap ) then
115dd9de309SEitan Adler  set printers=(`sed -n -e "/^[^ 	#].*:/s/:.*//p" /etc/printcap`)
116dd9de309SEitan Adler  complete lpr	'c/-P/$printers/'
117dd9de309SEitan Adler  complete lpq	'c/-P/$printers/'
118dd9de309SEitan Adler  complete lprm	'c/-P/$printers/'
119dd9de309SEitan Adlerendif
12012330831SEitan Adler
12112330831SEitan Adler# Alternate prompts
12212330831SEitan Adlerset prompt = '#'
12312330831SEitan Adlerset prompt = '%B%m%b%# '
12412330831SEitan Adlerset prompt = '%B%m%b:%c03:%# '
12512330831SEitan Adlerset prompt = '%{\033]0;%n@%m:%/\007%}%B%m%b:%c03:%# '
12612330831SEitan Adlerset prompt = "%n@%m %c04%m%# "
12712330831SEitan Adlerset prompt = "%n@%m:%c04 %# "
12812330831SEitan Adlerset prompt = "[%n@%m]%c04%# "
12912330831SEitan Adlerset ellipsis
13012330831SEitan Adler
13112330831SEitan Adler# Color ls
13212330831SEitan Adleralias ll	ls -lAhG
13312330831SEitan Adleralias ls	ls -G
13412330831SEitan Adler
13566c1ef4aSEitan Adler# Color on many system utilities
13666c1ef4aSEitan Adlersetenv CLICOLOR 1
13766c1ef4aSEitan Adler
13812330831SEitan Adler# other autolist options
13912330831SEitan Adlerset		autolist = TAB
140