/usr/share/zsh/4.3.11/functions
NameSizeModeActions
add-zsh-hook16320644editdlrm
age20330644editdlrm
allopt7700644editdlrm
backward-kill-word-match5930644editdlrm
backward-word-match4500644editdlrm
bashcompinit47020644editdlrm
calendar117460644editdlrm
calendar_add82730755editdlrm
calendar_edit7940644editdlrm
calendar_lockfiles16290644editdlrm
calendar_parse61150644editdlrm
calendar_read12710644editdlrm
calendar_scandate291500644editdlrm
calendar_show10290644editdlrm
calendar_showdate14610644editdlrm
calendar_sort19300644editdlrm
capitalize-word-match3730644editdlrm
catch12500644editdlrm
cdr115100644editdlrm
checkmail8170755editdlrm
chpwd_recent_add5060644editdlrm
chpwd_recent_dirs15930644editdlrm
chpwd_recent_filehandler11760644editdlrm
colors34010644editdlrm
compaudit49110644editdlrm
compdump40150644editdlrm
compinit160880644editdlrm
compinstall615000644editdlrm
copy-earlier-word7950644editdlrm
cycle-completion-positions4970644editdlrm
define-composed-chars79470644editdlrm
delete-whole-word-match17050644editdlrm
down-case-word-match3760644editdlrm
down-line-or-beginning-search5860644editdlrm
edit-command-line5500644editdlrm
forward-word-match7640644editdlrm
getjobs8270644editdlrm
harden960755editdlrm
history-beginning-search-menu34830644editdlrm
history-pattern-search21700644editdlrm
history-search-end8120644editdlrm
incarg10020644editdlrm
incremental-complete-word38680644editdlrm
insert-composed-char52370644editdlrm
insert-files9970644editdlrm
insert-unicode-char6930644editdlrm
is-at-least13710644editdlrm
keeper32260644editdlrm
keymap+widget26630644editdlrm
kill-word-match5910644editdlrm
match-word-context9920644editdlrm
match-words-by-style90780644editdlrm
mere20620644editdlrm
modify-current-argument19480644editdlrm
narrow-to-region35390644editdlrm
narrow-to-region-invisible2110644editdlrm
nslookup11260644editdlrm
pick-web-browser48750644editdlrm
predict-on47150644editdlrm
promptinit58100644editdlrm
promptnl33010644editdlrm
prompt_adam1_setup18100644editdlrm
prompt_adam2_setup40900644editdlrm
prompt_bart_setup67390644editdlrm
prompt_bigfade_setup18540644editdlrm
prompt_clint_setup16950644editdlrm
prompt_elite2_setup16380644editdlrm
prompt_elite_setup15230644editdlrm
prompt_fade_setup18100644editdlrm
prompt_fire_setup19890644editdlrm
prompt_off_setup1210644editdlrm
prompt_oliver_setup14670644editdlrm
prompt_pws_setup6630644editdlrm
prompt_redhat_setup2730644editdlrm
prompt_special_chars7750644editdlrm
prompt_suse_setup2600644editdlrm
prompt_walters_setup5580644editdlrm
prompt_zefram_setup5090644editdlrm
quote-and-complete-word14420644editdlrm
read-from-minibuffer14290644editdlrm
regexp-replace10390644editdlrm
relative8880644editdlrm
replace-string6510644editdlrm
replace-string-again18240644editdlrm
run-help29150755editdlrm
run-help-git1440644editdlrm
run-help-openssl590644editdlrm
run-help-p4780644editdlrm
run-help-sudo560644editdlrm
run-help-svk420644editdlrm
run-help-svn420644editdlrm
select-word-style19010644editdlrm
smart-insert-last-word41510644editdlrm
split-shell-arguments15300644editdlrm
sticky-note47020755editdlrm
tcp_alias40930644editdlrm
tcp_close29810644editdlrm
tcp_command680644editdlrm
tcp_expect41560644editdlrm
tcp_fd_handler9700644editdlrm
tcp_log22850644editdlrm
tcp_open67890644editdlrm
tcp_output17920644editdlrm
tcp_point4430644editdlrm
tcp_proxy8490644editdlrm
tcp_read70550644editdlrm
tcp_rename8500644editdlrm
tcp_send19880644editdlrm
tcp_sess10390644editdlrm
tcp_shoot3290644editdlrm
tcp_spam29090644editdlrm
tcp_talk14720644editdlrm
tcp_wait4590644editdlrm
tetris54330644editdlrm
throw10220644editdlrm
transpose-lines10880644editdlrm
transpose-words-match13360644editdlrm
up-case-word-match3770644editdlrm
up-line-or-beginning-search5640644editdlrm
url-quote-magic57370644editdlrm
vcs_info32720644editdlrm
VCS_INFO_adjust2460644editdlrm
VCS_INFO_bydir_detect7540644editdlrm
VCS_INFO_check_com3220644editdlrm
VCS_INFO_detect_bzr3260644editdlrm
VCS_INFO_detect_cdv3350644editdlrm
VCS_INFO_detect_cvs3250644editdlrm
VCS_INFO_detect_darcs3330644editdlrm
VCS_INFO_detect_git6570644editdlrm
VCS_INFO_detect_hg6740644editdlrm
VCS_INFO_detect_mtn3360644editdlrm
VCS_INFO_detect_p423600644editdlrm
VCS_INFO_detect_svk14680644editdlrm
VCS_INFO_detect_svn3000644editdlrm
VCS_INFO_detect_tla3450644editdlrm
VCS_INFO_formats37070644editdlrm
VCS_INFO_get_cmd2330644editdlrm
VCS_INFO_get_data_bzr12380644editdlrm
VCS_INFO_get_data_cdv3050644editdlrm
VCS_INFO_get_data_cvs5120644editdlrm
VCS_INFO_get_data_darcs3110644editdlrm
VCS_INFO_get_data_git56190644editdlrm
VCS_INFO_get_data_hg81980644editdlrm
VCS_INFO_get_data_mtn4100644editdlrm
VCS_INFO_get_data_p411090644editdlrm
VCS_INFO_get_data_svk7290644editdlrm
VCS_INFO_get_data_svn12920644editdlrm
VCS_INFO_get_data_tla4790644editdlrm
VCS_INFO_hook13350644editdlrm
vcs_info_lastmsg4930644editdlrm
VCS_INFO_maxexports4720644editdlrm
VCS_INFO_nvcsformats4230644editdlrm
vcs_info_printsys12980644editdlrm
VCS_INFO_quilt55900644editdlrm
VCS_INFO_realpath2500644editdlrm
VCS_INFO_reposub2950644editdlrm
VCS_INFO_set8530644editdlrm
vcs_info_setsys5710644editdlrm
which-command10310644editdlrm
xtermctl41850644editdlrm
zargs88740644editdlrm
zcalc71290755editdlrm
zed21620755editdlrm
zed-set-file-name1450644editdlrm
zfanon19040644editdlrm
zfautocheck13180644editdlrm
zfcd19330644editdlrm
zfcd_match11610644editdlrm
zfcget20770644editdlrm
zfclose900644editdlrm
zfcput24910644editdlrm
zfdir32290644editdlrm
zffcache7290644editdlrm
zfgcp19540644editdlrm
zfget17750644editdlrm
zfget_match8240644editdlrm
zfgoto22500644editdlrm
zfhere1810644editdlrm
zfinit25500644editdlrm
zfls2080644editdlrm
zfmark14420644editdlrm
zfopen11860644editdlrm
zfparams6870644editdlrm
zfpcp13000644editdlrm
zfput14440644editdlrm
zfrglob21370644editdlrm
zfrtime13620644editdlrm
zfsession16440644editdlrm
zfstat20240644editdlrm
zftp_chpwd13860644editdlrm
zftp_progress20810644editdlrm
zftransfer15780644editdlrm
zftype6130644editdlrm
zfuget39230644editdlrm
zfuput26800644editdlrm
zkbd71720755editdlrm
zmathfuncdef22790644editdlrm
zmv111420644editdlrm
zrecompile61850644editdlrm
zsh-mime-handler80550644editdlrm
zsh-mime-setup113590644editdlrm
zsh-newuser-install300380644editdlrm
zstyle+12670644editdlrm
ztodo14050644editdlrm
_a2ps28090644editdlrm
_a2utils4870644editdlrm
_aap26380644editdlrm
_acpi12720644editdlrm
_acpitool24350644editdlrm
_acroread35010644editdlrm
_alias7110644editdlrm
_aliases7080644editdlrm
_all_labels9200644editdlrm
_all_matches9700644editdlrm
_alternative19500644editdlrm
_analyseplugin6470644editdlrm
_ant61060644editdlrm
_antiword11090644editdlrm
_apachectl1160644editdlrm
_apm16800644editdlrm
_approximate34720644editdlrm
_apt207000644editdlrm
_apt-file17960644editdlrm
_apt-move18120644editdlrm
_apt-show-versions7500644editdlrm
_aptitude32570644editdlrm
_arch_archives4130644editdlrm
_arch_namespace33080644editdlrm
_arguments169360644editdlrm
_arg_compile75690644editdlrm
_arp11690644editdlrm
_arping13510644editdlrm
_arrays860644editdlrm
_assign640644editdlrm
_attr22940644editdlrm
_auto-apt10810644editdlrm
_autocd850644editdlrm
_awk9720644editdlrm
_axi-cache7250644editdlrm
_bash_completions13580644editdlrm
_baz160170644editdlrm
_bindkey20480644editdlrm
_bind_addresses4080644editdlrm
_bison9230644editdlrm
_bittorrent49020644editdlrm
_bogofilter52880644editdlrm
_brace_parameter430644editdlrm
_brctl17620644editdlrm
_bsd_pkg55530644editdlrm
_bts70510644editdlrm
_bug46870644editdlrm
_builtin1780644editdlrm
_bzip223640644editdlrm
_bzr107320644editdlrm
_cache_invalid7070644editdlrm
_cal5470644editdlrm
_calendar14060644editdlrm
_call_function7370644editdlrm
_call_program2110644editdlrm
_canonical_paths42030644editdlrm
_ccal7780644editdlrm
_cd36710644editdlrm
_cdbs-edit-patch560644editdlrm
_cdcd21420644editdlrm
_cdr11960644editdlrm
_cdrdao82490644editdlrm
_cdrecord48620644editdlrm
_chflags15390644editdlrm
_chkconfig7770644editdlrm
_chmod22780644editdlrm
_chown25380644editdlrm
_chrt16670644editdlrm
_combination25000644editdlrm
_comm4090644editdlrm
_command2380644editdlrm
_command_names11530644editdlrm
_compdef19630644editdlrm
_complete31670644editdlrm
_complete_debug7550644editdlrm
_complete_help24550644editdlrm
_complete_help_generic4120644editdlrm
_complete_tag18660644editdlrm
_compress14140644editdlrm
_condition16960644editdlrm
_configure4440644editdlrm
_coreadm15000644editdlrm
_correct5180644editdlrm
_correct_filename19610644editdlrm
_correct_word3880644editdlrm
_cowsay5350644editdlrm
_cp23960644editdlrm
_cpio46580644editdlrm
_cplay3390644editdlrm
_cssh7950644editdlrm
_csup11280644editdlrm
_ctags_tags1700644editdlrm
_cut26360644editdlrm
_cvs289480644editdlrm
_cvsup9370644editdlrm
_cygcheck20520644editdlrm
_cygpath26130644editdlrm
_cygrunsrv27720644editdlrm
_cygserver15390644editdlrm
_cygstart21780644editdlrm
_dak91840644editdlrm
_darcs11990644editdlrm
_date11320644editdlrm
_dchroot10580644editdlrm
_dchroot-dsa9870644editdlrm
_dcop29450644editdlrm
_dd8120644editdlrm
_debchange5110644editdlrm
_debdiff8940644editdlrm
_debfoster32160644editdlrm
_debsign6230644editdlrm
_deb_packages36120644editdlrm
_default6820644editdlrm
_defaults17240644editdlrm
_delimiters3290644editdlrm
_describe31950644editdlrm
_description31070644editdlrm
_devtodo45540644editdlrm
_dhclient9250644editdlrm
_dhcpinfo12030644editdlrm
_dict21410644editdlrm
_dict_words12920644editdlrm
_diff900644editdlrm
_diffstat7270644editdlrm
_diff_options71440644editdlrm
_directories1170644editdlrm
_directory_stack14180644editdlrm
_dirs2620644editdlrm
_dir_list6800644editdlrm
_disable4590644editdlrm
_dispatch20570644editdlrm
_django59960644editdlrm
_dladm140580644editdlrm
_dlocate8930644editdlrm
_dmidecode9350644editdlrm
_domains5850644editdlrm
_dpatch-edit-patch12750644editdlrm
_dpkg74580644editdlrm
_dpkg-buildpackage12010644editdlrm
_dpkg-cross11470644editdlrm
_dpkg-repack3780644editdlrm
_dpkg_source13180644editdlrm
_dput12880644editdlrm
_du31840644editdlrm
_dumpadm5960644editdlrm
_dumper3770644editdlrm
_dupload7800644editdlrm
_dvi40340644editdlrm
_dynamic_directory_name1640644editdlrm
_ecasound85770644editdlrm
_echotc930644editdlrm
_echoti940644editdlrm
_elinks29580644editdlrm
_elm6530644editdlrm
_email_addresses54520644editdlrm
_emulate2170644editdlrm
_enable3380644editdlrm
_enscript53620644editdlrm
_env4290644editdlrm
_equal330644editdlrm
_espeak20830644editdlrm
_ethtool67710644editdlrm
_expand69020644editdlrm
_expand_alias19900644editdlrm
_expand_word3070644editdlrm
_fakeroot4860644editdlrm
_fc13640644editdlrm
_feh70110644editdlrm
_fetch13940644editdlrm
_fetchmail5540644editdlrm
_ffmpeg52780644editdlrm
_figlet15030644editdlrm
_files36020644editdlrm
_file_descriptors8260644editdlrm
_file_systems11640644editdlrm
_find26180644editdlrm
_finger21570644editdlrm
_fink53660644editdlrm
_first16310644editdlrm
_flasher16600644editdlrm
_flex14510644editdlrm
_floppy1100644editdlrm
_fortune6010644editdlrm
_freebsd-update9350644editdlrm
_fsh5190644editdlrm
_fstat6750644editdlrm
_functions1010644editdlrm
_fuser21070644editdlrm
_fusermount6500644editdlrm
_fuse_arguments10780644editdlrm
_fuse_values16480644editdlrm
_gcc114980644editdlrm
_gcore8050644editdlrm
_gdb17250644editdlrm
_generic3280644editdlrm
_genisoimage20060644editdlrm
_getclip5320644editdlrm
_getconf22250644editdlrm
_getent15140644editdlrm
_getfacl13700644editdlrm
_getmail10800644editdlrm
_git1698900644editdlrm
_git-buildpackage25740644editdlrm
_global18490644editdlrm
_global_tags1860644editdlrm
_globflags6930644editdlrm
_globquals57040644editdlrm
_globqual_delims4660644editdlrm
_gnome-gv1390644editdlrm
_gnupod56990644editdlrm
_gnutls62500644editdlrm
_gnu_generic1780644editdlrm
_gpg132750644editdlrm
_gphoto225040644editdlrm
_gprof13370644editdlrm
_gqview6190644editdlrm
_graphicsmagick288720644editdlrm
_grep40740644editdlrm
_grep-excuses3150644editdlrm
_groff22510644editdlrm
_groups10090644editdlrm
_growisofs196310644editdlrm
_gs16160644editdlrm
_guard1690644editdlrm
_guilt15520644editdlrm
_gv13090644editdlrm
_gzip35290644editdlrm
_hash11280644editdlrm
_have_glob_qual8580644editdlrm
_hdiutil224430644editdlrm
_hg297940644editdlrm
_history13430644editdlrm
_history_complete_word34510644editdlrm
_history_modifiers19530644editdlrm
_hosts23780644editdlrm
_iconv19890644editdlrm
_id4530644editdlrm
_ifconfig28660644editdlrm
_iftop6650644editdlrm
_ignored16470644editdlrm
_imagemagick281090644editdlrm
_inetadm4060644editdlrm
_init_d25760644editdlrm
_invoke-rc.d5550644editdlrm
_in_vared8130644editdlrm
_ionice3370644editdlrm
_ip189620644editdlrm
_ipset64490644editdlrm
_iptables106020644editdlrm
_irssi13510644editdlrm
_ispell42100644editdlrm
_iwconfig23970644editdlrm
_java234680644editdlrm
_java_class6810644editdlrm
_jobs19870644editdlrm
_jobs_bg270644editdlrm
_jobs_builtin3600644editdlrm
_jobs_fg310644editdlrm
_joe22740644editdlrm
_join9330644editdlrm
_kfmclient32670644editdlrm
_kill4750644editdlrm
_killall3650644editdlrm
_kld8670644editdlrm
_knock3040644editdlrm
_kvno5660644editdlrm
_last4720644editdlrm
_ldd13110644editdlrm
_ld_debug11690644editdlrm
_less56730644editdlrm
_lighttpd4130644editdlrm
_limit1660644editdlrm
_limits1050644editdlrm
_linda14430644editdlrm
_links20910644editdlrm
_lintian47450644editdlrm
_list8220644editdlrm
_list_files14200644editdlrm
_loadkeys5950644editdlrm
_locales3490644editdlrm
_locate46060644editdlrm
_logical_volumes4550644editdlrm
_look4440644editdlrm
_losetup7370644editdlrm
_lp13820644editdlrm
_ls60780644editdlrm
_lscfg6580644editdlrm
_lsdev14270644editdlrm
_lslv3480644editdlrm
_lsof23800644editdlrm
_lspv4320644editdlrm
_lsusb8610644editdlrm
_lsvg5050644editdlrm
_lynx111660644editdlrm
_lzop38390644editdlrm
_mac_applications1390644editdlrm
_mac_files_for_application20000644editdlrm
_madison6880644editdlrm
_mail4320644editdlrm
_mailboxes60240644editdlrm
_main_complete95980644editdlrm
_make47060644editdlrm
_make-kpkg26420644editdlrm
_man33240644editdlrm
_match24290644editdlrm
_math3270644editdlrm
_md5sum4570644editdlrm
_mdadm80040644editdlrm
_members3900644editdlrm
_mencal10820644editdlrm
_menu5580644editdlrm
_mere570644editdlrm
_mergechanges1060644editdlrm
_message7880644editdlrm
_metaflac14470644editdlrm
_mh35960644editdlrm
_mii-tool7480644editdlrm
_mime_types11560644editdlrm
_mkdir18940644editdlrm
_mkshortcut12740644editdlrm
_mkzsh3710644editdlrm
_module55000644editdlrm
_module-assistant20950644editdlrm
_modutils42950644editdlrm
_mondo20010644editdlrm
_monotone25110644editdlrm
_most_recent_file8710644editdlrm
_mount382760644editdlrm
_mozilla47770644editdlrm
_mpc66160644editdlrm
_mplayer82840644editdlrm
_mt32120644editdlrm
_mtools40900644editdlrm
_mtr7250644editdlrm
_multi_parts83510644editdlrm
_mutt10050644editdlrm
_mysqldiff11250644editdlrm
_mysql_utils99790644editdlrm
_my_accounts450644editdlrm
_nautilus5380644editdlrm
_ncftp2800644editdlrm
_nedit28650644editdlrm
_netcat13230644editdlrm
_netscape29350644editdlrm
_net_interfaces10560644editdlrm
_newsgroups2100644editdlrm
_next_label6000644editdlrm
_next_tags34640644editdlrm
_nice2460644editdlrm
_nmap34660644editdlrm
_normal10110644editdlrm
_nothing900644editdlrm
_nslookup56770644editdlrm
_object_classes1460644editdlrm
_oldlist19150644editdlrm
_open11030644editdlrm
_options1820644editdlrm
_options_set2990644editdlrm
_options_unset3090644editdlrm
_osc41460644editdlrm
_other_accounts640644editdlrm
_pack3610644editdlrm
_parameter370644editdlrm
_parameters7760644editdlrm
_patch81410644editdlrm
_path_commands24710644editdlrm
_path_files259690644editdlrm
_pax27860644editdlrm
_pbm258610644editdlrm
_pbuilder12580644editdlrm
_pdf4080644editdlrm
_perforce845120644editdlrm
_perl25640644editdlrm
_perldoc19450644editdlrm
_perl_basepods7160644editdlrm
_perl_modules46710644editdlrm
_pfctl42050644editdlrm
_pfexec6700644editdlrm
_php30630644editdlrm
_physical_volumes1240644editdlrm
_pick_variant7370644editdlrm
_pids16270644editdlrm
_pine29450644editdlrm
_ping17320644editdlrm
_piuparts9720644editdlrm
_pkg-config21560644editdlrm
_pkgadd10120644editdlrm
_pkginfo6130644editdlrm
_pkgrm5510644editdlrm
_pkgtool24360644editdlrm
_pkg_instance3530644editdlrm
_pon4430644editdlrm
_portaudit5630644editdlrm
_portlint7480644editdlrm
_portmaster39750644editdlrm
_ports2850644editdlrm
_portsnap10300644editdlrm
_postfix5300644editdlrm
_powerd6280644editdlrm
_prcs68480644editdlrm
_precommand1880644editdlrm
_prefix16180644editdlrm
_print15490644editdlrm
_printenv1040644editdlrm
_printers32090644editdlrm
_procstat7060644editdlrm
_prompt2960644editdlrm
_ps3330644editdlrm
_pscp7160644editdlrm
_pspdf3260644editdlrm
_psutils36460644editdlrm
_ptree4490644editdlrm
_pump14410644editdlrm
_putclip5380644editdlrm
_pydoc4360644editdlrm
_python20740644editdlrm
_qemu25270644editdlrm
_qiv26470644editdlrm
_qtplay5250644editdlrm
_quilt8020644editdlrm
_raggle27400644editdlrm
_rake28490644editdlrm
_ranlib4030644editdlrm
_rar46140644editdlrm
_rcs7660644editdlrm
_read9190644editdlrm
_readshortcut10570644editdlrm
_read_comp38520644editdlrm
_rebootin5740644editdlrm
_redirect4210644editdlrm
_regex_arguments24960644editdlrm
_regex_words7460644editdlrm
_renice4240644editdlrm
_reprepro25610644editdlrm
_requested2680644editdlrm
_retrieve_cache7320644editdlrm
_retrieve_mac_apps33030644editdlrm
_ri34700644editdlrm
_rlogin26830644editdlrm
_rm15640644editdlrm
_rpm110280644editdlrm
_rpmbuild33880644editdlrm
_rrdtool4910644editdlrm
_rsync123110644editdlrm
_rubber27080644editdlrm
_ruby29070644editdlrm
_sablotron18080644editdlrm
_samba34360644editdlrm
_savecore2280644editdlrm
_sccs61720644editdlrm
_sched4670644editdlrm
_schroot14970644editdlrm
_screen63990644editdlrm
_sed9860644editdlrm
_sep_parts38010644editdlrm
_service10480644editdlrm
_services9380644editdlrm
_set14730644editdlrm
_setfacl20100644editdlrm
_setopt1930644editdlrm
_setup19580644editdlrm
_setxkbmap24310644editdlrm
_set_command8150644editdlrm
_sh4610644editdlrm
_showmount4280644editdlrm
_signals10130644editdlrm
_sisu39360644editdlrm
_slrn11310644editdlrm
_smit8560644editdlrm
_socket10890644editdlrm
_softwareupdate23320644editdlrm
_sort20160644editdlrm
_source2260644editdlrm
_spamassassin4750644editdlrm
_sqsh21580644editdlrm
_ssh125490644editdlrm
_sshfs7520644editdlrm
_stat5680644editdlrm
_stgit9510644editdlrm
_store_cache17420644editdlrm
_strace60770644editdlrm
_strip23630644editdlrm
_stty7620644editdlrm
_su19440644editdlrm
_subscript42840644editdlrm
_subversion92500644editdlrm
_sub_commands1360644editdlrm
_sudo11370644editdlrm
_suffix_alias_files5250644editdlrm
_surfraw181430644editdlrm
_svcadm14710644editdlrm
_svccfg16670644editdlrm
_svcprop6340644editdlrm
_svcs10290644editdlrm
_svcs_fmri26840644editdlrm
_svn-buildpackage26440644editdlrm
_sysctl17120644editdlrm
_tags14660644editdlrm
_tar61040644editdlrm
_tardy6780644editdlrm
_tar_archive10140644editdlrm
_tcpdump42990644editdlrm
_tcpsys10020644editdlrm
_tcptraceroute5830644editdlrm
_telnet21400644editdlrm
_terminals2100644editdlrm
_tex2000644editdlrm
_texi1290644editdlrm
_texinfo87190644editdlrm
_tidy73050644editdlrm
_tiff72300644editdlrm
_tilde7320644editdlrm
_tilde_files6760644editdlrm
_time_zone2220644editdlrm
_tin21160644editdlrm
_tla179970644editdlrm
_tmux494230644editdlrm
_todo.sh41690644editdlrm
_toilet8630644editdlrm
_toolchain-source3280644editdlrm
_topgit1770644editdlrm
_totd2870644editdlrm
_tpb9750644editdlrm
_tpconfig11200644editdlrm
_tracepath870644editdlrm
_trap1010644editdlrm
_ttyctl1130644editdlrm
_tune2fs14050644editdlrm
_twisted28350644editdlrm
_typeset37520644editdlrm
_ulimit10200644editdlrm
_uml52610644editdlrm
_unace4720644editdlrm
_uname25580644editdlrm
_unexpand6200644editdlrm
_unhash5550644editdlrm
_uniq11730644editdlrm
_units28120644editdlrm
_unsetopt1900644editdlrm
_update-alternatives13840644editdlrm
_update-rc.d6370644editdlrm
_urls59180644editdlrm
_urpmi138180644editdlrm
_urxvt14810644editdlrm
_uscan10370644editdlrm
_users2510644editdlrm
_users_on2530644editdlrm
_user_admin19430644editdlrm
_user_at_host7290644editdlrm
_user_expand34690644editdlrm
_uzbl3040644editdlrm
_valgrind49090644editdlrm
_value16230644editdlrm
_values37500644editdlrm
_vared3260644editdlrm
_vars4690644editdlrm
_vim46620644editdlrm
_vim-addons16600644editdlrm
_vnc9040644editdlrm
_volume_groups870644editdlrm
_vorbis56990644editdlrm
_vorbiscomment6070644editdlrm
_vserver30580644editdlrm
_vux18120644editdlrm
_w3m45310644editdlrm
_wait660644editdlrm
_wajig25130644editdlrm
_wakeup_capable_devices4390644editdlrm
_wanna-build20700644editdlrm
_wanted1830644editdlrm
_webbrowser2030644editdlrm
_wget74650644editdlrm
_whereis360644editdlrm
_which11320644editdlrm
_whois48190644editdlrm
_wiggle11190644editdlrm
_xargs5020644editdlrm
_xauth25800644editdlrm
_xdvi17040644editdlrm
_xfig19720644editdlrm
_xloadimage39020644editdlrm
_xmlsoft64250644editdlrm
_xmms253830644editdlrm
_xmodmap22740644editdlrm
_xpdf17590644editdlrm
_xrandr10890644editdlrm
_xscreensaver8230644editdlrm
_xset51960644editdlrm
_xterm9050644editdlrm
_xt_arguments17440644editdlrm
_xt_session_id400644editdlrm
_xv24840644editdlrm
_xwit47430644editdlrm
_x_arguments6000644editdlrm
_x_borderwidth1250644editdlrm
_x_color10070644editdlrm
_x_colormapid3960644editdlrm
_x_cursor4090644editdlrm
_x_display750644editdlrm
_x_extension4840644editdlrm
_x_font3070644editdlrm
_x_geometry1250644editdlrm
_x_keysym6150644editdlrm
_x_locale1200644editdlrm
_x_modifier1530644editdlrm
_x_name1160644editdlrm
_x_resource1240644editdlrm
_x_selection_timeout1300644editdlrm
_x_title1180644editdlrm
_x_utils46500644editdlrm
_x_visual2720644editdlrm
_x_window4020644editdlrm
_yafc18440644editdlrm
_yast5250644editdlrm
_yodl6580644editdlrm
_yp32420644editdlrm
_yum78450644editdlrm
_zattr5520644editdlrm
_zcalc_line17210644editdlrm
_zcat990644editdlrm
_zcompile9270644editdlrm
_zdump1120644editdlrm
_zed1790644editdlrm
_zfs67160644editdlrm
_zfs_dataset6750644editdlrm
_zfs_pool510644editdlrm
_zftp25820644editdlrm
_zip53800644editdlrm
_zle22920644editdlrm
_zlogin3000644editdlrm
_zmodload22920644editdlrm
_zmv8050644editdlrm
_zpool39950644editdlrm
_zpty20050644editdlrm
_zsh-mime-handler7190644editdlrm
_zstyle145640644editdlrm
_ztodo5860644editdlrm
Edit: /usr/share/zsh/4.3.11/functions/zsh-newuser-install (30038B)
# Function to install startup files for a new user. # Currently it only creates or edits .zshrc. # # It can be run again by giving it the option "-f". # Sanitize environment. emulate -L zsh setopt extendedglob nonomatch warncreateglobal # How the function will be referred to. local myname=zsh-newuser-install # Quick test not requiring any setting up. # Don't run if we're root. (These variables are provided by the shell.) if (( EUID == 0 || UID == 0 )); then if [[ $1 = -f ]]; then print -r "$myname: won't run as root. Read the manual." >&2 fi return 1 fi # clear is missing in some Cygwin configurations (lacking ncurses) if ! ( clear >/dev/null 2>/dev/null ); then if zmodload zsh/termcap 2>/dev/null; then clear() { echotc cl; } else clear() { print -n "\e[H\e[J"; } fi fi # The directory in which to look for and save .zshrc. local zd=${ZDOTDIR:-$HOME} # The same directory in a user friendly form, i.e. with ~ replacement. # (We don't want to use glob_subst since that has other side effects.) local zdmsg # The message used if an other blank .zshrc is created. local msg="# Created by newuser for $ZSH_VERSION" # The lines marking the start and end of the section edited. local startline="# Lines configured by $myname" local endline="# End of lines configured by $myname" # Prompts used for reading a key. The initial "?" is required. local shortprompt="?--- Type a key --- " local longprompt="?--- Type one of the keys in parentheses --- " # Prefix for all temporary files. Any files starting with this # will be removed at the end of the script. local tmpfile=${TMPPREFIX:-/tmp/zsh}-zni-$$ # Report of the state of settings for the top-level menu. local -A install_state # Values of all parameters etc. to be saved (including # those read in from the existing file.) local -A parsed_parameters parsed_options parsed_bindings parsed_keymaps # Corresponding state in a user-readable form. local -A state_parameters state_options state_bindings state_keymaps # Indicate whether an option defaults on or off. local -A default_options # Lines read in from between $startline and $endline which were # not understood. These are retained but moved out of that section # with a message. local -a unparsed # Lines used in submenus: the setting to output in a form # that can be exeucuted (an assignment, setopt or unsetopt), a brief message # about the setting, and the state copied from and to state_parameters or # state_options. Elements of all three arrays must correspond. local -a output_lines display_lines state_lines # Variable indicating some of the lines in the above variables # have been read in, i.e. the user has already configured the # particular set of settings. integer lines_read # Lines to set up completion. This is special as it is only # edited by compinstall, not this function. local -a completion_lines # Utility variables local -a reply match mbegin mend # Key read from user, used all over the place. local key # For default replies from read local REPLY integer save lines_found install_state[history]=Recommended install_state[completion]=Recommended install_state[bindkey]=Recommended # Don't save anything if interrupted. trap 'save=0' HUP INT QUIT # Substitute an initial ~ for human consumption. if [[ $zd = $HOME(#b)(|/*) ]]; then zdmsg="~$match[1]" else zdmsg=$zd fi # Don't run if we can't write to $zd. # Assume this is a temporary condition and exit silently--- # if this really is a new user this probably isn't the right # time for screeds of explanation. if [[ ! -w $zd ]]; then if [[ $1 = -f ]]; then print -r "$myname: can't write to $zdmsg." >&2 fi return 1 fi # Don't run unless we can talk to the user. if [[ ! -t 0 || ! -t 1 ]]; then if [[ $1 = -f ]]; then print -r "$myname: can only be used interactively." >&2 fi return 1 fi # Don't run unless terminal is sane. if (( ${LINES:-0} < 15 || ${COLUMNS:-0} < 72 )); then return 1 fi if [[ $1 != -f ]]; then # The zsh/newuser module already tests for the following, so this test only # triggers if zsh-newuser-install is run by hand. if [[ -e $zd/.zshenv || -e $zd/.zprofile || \ -e $zd/.zshrc || -e $zd/.zlogin ]]; then print -r "$myname: startup files exist, aborting. Use the argument -f if you want to force the function to be run again." >&2 return 1 fi fi # start of try block for tidy-up in always block { ######################################################################## # Utility functions ######################################################################## # All internal functions start with __zni_. These will be removed # when the main function exits. # Read existing lines from .zshrc, if any. __zni_retrieve_lines() { local line reply=() lines_found=0 [[ -f $zd/.zshrc ]] || return 1 grep "$startline" $zd/.zshrc 1>/dev/null 2>&1 || return 1 lines_found=1 sed -n "/^[ ]*$startline/,/^[ ]*$endline/p" $zd/.zshrc | while read -r line; do reply+=($line) done return 0 } # First argument is a state; other arguments are lines # to parse. They should either contain single assignments or # setopt or unsetopt statements. The state for each parameter # or option so parsed is set to the value given by the first argument. __zni_parse_lines() { local line opt warned first local -a args local state=$1 shift for line in "$@"; do case $line in ((#b)[[:blank:]]#([[:IDENT:]]##)=(*)) parsed_parameters[$match[1]]=$match[2] state_parameters[$match[1]]=$state ;; ((#b)[[:blank:]]#(un|)setopt[[:blank:]]##(*)) # TBD: handle setopt noX / unsetopt X for opt in ${=match[2]}; do opt=${${opt//(#m)[[:upper:]]/${(L)MATCH}}//_} if [[ $match[1] = un ]]; then parsed_options[$opt]=off else parsed_options[$opt]=on fi state_options[$opt]=$state done ;; ((#b)[[:blank:]]#bindkey[[:blank:]]##(*)) args=(${(z)match[1]}) # store keys unquoted: will need quoting for output. first=${(Q)args[1]} shift args if [[ $first = -[ev] && ${#args} -eq 0 ]]; then case $first in (-e) parsed_keymaps[main]=emacs ;; (-v) parsed_keymaps[main]=vi ;; esac state_keymaps[main]=$state else # TODO: handling keymap options parsed_bindings[first]=${args[2,-1]} state_bindings[first]=$state fi ;; ([[:blank:]]#($startline|$endline|)) ;; (*) unparsed+=($line) print -r "WARNING: failed to understand line: $line which will be retained but not edited." warned=1 ;; esac done if [[ -n $warned ]]; then read -k key$shortprompt fi } # Apply defaults. Arguments in the form # -p parameter_name default_value description # ... # -o option_name default=on|off description # ... # Options on by default should begin !, e.g. !nomatch. They # will still appear under the base option but with an indication that # the default is on. The default applies to the base option. Hack, sorry. # -b bindkey_string default_value description # ... # -B default_keymap=emacs|vi|none description # # They're not really defaults (they're not the same as the # builtin defaults), so the description output is "not yet saved". # # All variables to be edited in this section must be mentioned, # though defaults can be blank in which case nothing will be # saved unless the variable is set by the user. The description # is then "no value set". # # -B is a bit strange: it's simply designed to allow the user to # select "bindkey -e" for Emacs or "bindkey -v" for vi. It only # takes a single argument. Real key bindings use -b. # # This operation transfers some subset of settings from the parsed_* # and state_* variables to the *_lines variables for editing. __zni_apply_defaults() { local un suf # Reset the lines to be edited. state_lines=() display_lines=() output_lines=() lines_read=0 case $1 in (-p) shift while [[ $# -gt 0 && $1 != -* ]]; do # skip default if it was read in if [[ -z $state_parameters[$1] ]]; then parsed_parameters[$1]=$2 if [[ -n $2 ]]; then state_parameters[$1]="not yet saved" else state_parameters[$1]="no value set" fi elif [[ $state_parameters[$1] = saved ]]; then (( lines_read++ )) fi state_lines+=($state_parameters[$1]) display_lines+=("$3") output_lines+=("$1=$parsed_parameters[$1]") shift 3 done ;; (-o) shift while [[ $# -gt 0 && $1 != -* ]]; do # skip default if there was a setting if [[ $1 != ${1##!} ]]; then argv[1]=${1##!} default_options[$1]=on else default_options[$1]=off fi if [[ -z $state_options[$1] ]]; then parsed_options[$1]=$2 if [[ -n $2 ]]; then state_options[$1]="not yet saved" else state_options[$1]="no value set" fi elif [[ $state_options[$1] = saved ]]; then (( lines_read++ )) fi if [[ $parsed_options[$1] = on ]]; then un= suf= elif [[ -z $parsed_options[$1] && $default_options[$1] = on ]] then un= suf=", default on" else # display as unsetopt even if no value to save yet un=un suf= fi state_lines+=("$state_options[$1]$suf") display_lines+=("$3") output_lines+=("${un}setopt $1") shift 3 done ;; (-b) shift # this will barf on bindings beginning -; there's no good # reason to rebind that, even in vi command mode, so perhaps # we just add it to the sanity checks when we get around to them. while [[ $# -gt 0 && $1 != -* ]]; do if [[ -z $state_bindings[$1] ]]; then parsed_bindings[$1]=$2 if [[ -n $2 ]]; then state_bindings[$1]="not yet saved" else state_bindings[$1]="no value set" fi elif [[ $state_bindings[$1] = saved ]]; then (( lines_read++ )) fi state_lines+=($state_bindings[$1]) display_lines+=("$3") output_lines+=("bindkey ${(qq)1}${2:+ $2}") shift 3 done ;; (-B) shift if [[ -z $state_keymaps[main] ]]; then parsed_keymaps[main]=$1 if [[ $1 = none ]]; then state_keymaps[main]="no value set" else state_keymaps[main]="not yet saved" fi elif [[ $state_keymaps[main] = saved ]]; then (( lines_read++ )) fi state_lines+=($state_keymaps[main]) display_lines+=("$2") # display as -e even if no value to save yet if [[ $parsed_keymaps[main] = vi ]]; then output_lines+=("bindkey -v") else output_lines+=("bindkey -e") fi shift 2 ;; esac } # Display and edit the settings given by the set of *_lines arrays. # If requested by the user, apply the settings, updating the # parsed_* and state_* variables. __zni_display_and_edit() { integer i changes local default edval ldisp rdisp local -a states displays outputs tstval states=("${state_lines[@]}") displays=("${display_lines[@]}") outputs=("${output_lines[@]}") if [[ -n ${states[(r)not yet saved]} ]]; then # default should be installed, unless user says otherwise (( changes++ )) fi while true; do clear print -r $1 # snicker... print -r ${(l.${#1}..=.):-} print if (( $# > 1 )); then print -rl $argv[2,-1] print fi # Output each setting with a description and state. for (( i = 1; i <= ${#output_lines}; i++ )); do default=${states[$i]%%,*} if [[ $default = ("no value set"|"not to be saved"*) ]]; then ldisp="# $outputs[$i]" else ldisp=$outputs[$i] fi rdisp=${default:+($default)} print -r "# ($i) $displays[$i] $ldisp${(l.$COLUMNS-${#ldisp}-${#rdisp}-1.):-}$rdisp" done if (( changes )); then print -r " # (0) Remember edits and return to main menu (does not save file yet) # (q) Abandon edits and return to main menu " else print -r " # (0) or (q) Return to main menu (no changes made yet) " fi read -k key$longprompt print if [[ $key = <-> && $key -ge 1 && $key -le ${#outputs} ]]; then (( i = key )) case $outputs[$i] in ((#b)(|un)setopt' '(*)) # Try to locate the appropriate section in the manual. # I personally have no wish whatsoever to make this # use sed or awk. Suggestions welcome. if [[ -s $tmpfile-man-options ]]; then perl -ne 's/^(\s*)([A-Z]+)_?([A-Z]*)_?([A-Z]*)(\s*\(.+\)|\s*\<.+\>)*\s*$/\L$1$2$3$4\n/ and "'$match[2]'" =~ /^(|no)\L$2$3$4$/ and $print = 1 and next; next unless $print; exit if /^\s*$/; print; ' <$tmpfile-man-options >$tmpfile-man 2>/dev/null else rm -f $tmpfile-man fi while true; do clear if [[ -s $tmpfile-man ]]; then read <$tmpfile-man print "Option $match[2]:" cat $tmpfile-man print else print "Option $match[2]: $displays[$i]" fi print "The option $match[2] is currently ${match[1]:+un}set. Type: (s) to set it (turn it on) (u) to unset it (turn it off) (n) neither to set or unset it (use shell default: \ $default_options[$match[2]]) (k) or (q) to keep the current setting:" read -k key$shortprompt print case $key in (s) (( changes++ )) outputs[$i]="setopt $match[2]" states[$i]="set but not saved" ;; (u) (( changes++ )) outputs[$i]="unsetopt $match[2]" states[$i]="set but not saved" ;; (n) (( changes++ )) outputs[$i]="unsetopt $match[2]" states[$i]="no value set" ;; ([kq]) ;; (*) continue ;; esac break; done ;; ((#b)([^=]##)=(*)) if [[ -s $tmpfile-man-param ]]; then perl -ne 's/^(\s*)([A-Z]+)(\s*\<.+\>)*\s*$/$1$2\n/ and "$2" eq "'$match[1]'" and $print = 1; next unless $print; exit if /^\s*$/; print;' <$tmpfile-man-param >$tmpfile-man 2>/dev/null else rm -f $tmpfile-man fi if [[ -s $tmpfile-man ]]; then print -n Variable cat $tmpfile-man print else print -r "Variable ${match[1]}: $displays[$i]" fi print -r "Edit a value. If it is left blank, nothing will be saved:" edval=$match[2] if vared -p "$match[1]> " -h edval; then # check this assignment doesn't produce multiple words # e.g. "HISTFILE=never rm -f ~" does produce multiple words... # this isn't perfect, e.g. "(this would get split on assignment)", # but that's fairly benign. tstval=(${=edval}) if (( ${#tstval} > 1 )); then print "Error: value isn't a single word. Use quotes or backslashes if your value contains spaces. Note that you shouldn't quote an initial ~ in file names." >&2 read -k key$shortprompt # now check the assignment works... # don't suppress any errors, they may be useful. # this means we need to suppress warncreateglobal. elif ! ( typeset -g $match[1]; eval "$match[1]=$edval" ); then print "Error: bad shell syntax in value. The value will be assigned to the variable exactly as you enter it. Make sure all quotes are paired." >&2 read -k key$shortprompt else outputs[$i]="$match[1]=$edval" if [[ -n $edval ]]; then states[$i]="set but not saved" else states[$i]="no value set" fi (( changes++ )) fi else read -k key'?--- Edit abandoned, type a key --- ' fi ;; (bindkey' '-[ev]) while true; do print -nr "Pick a keymap (set of keys) to use when editing. Type: (e) for Emacs keymap (recommended unless you are vi user) (v) for Vi keymap (n) not to set a keymap (allow shell to choose) (k) to keep the current setting, " if [[ ${state_lines[$i]%%,*} = ("no value set"|"not to be saved") ]] then print -r "(n):" elif [[ $output_lines[$i] = *-v ]]; then print -r "(v):" else print -r "(e):" fi read -k key$longprompt case $key in (e) (( changes++ )) outputs[$i]="bindkey -e" states[$i]="set but not saved" ;; (v) (( changes++ )) outputs[$i]="bindkey -v" states[$i]="set but not saved" ;; (n) (( changes++ )) outputs[$i]="bindkey -e" states[$i]="not to be saved" ;; (k) ;; (*) continue ;; esac break done ;; (bindkey' '*) # TODO: this needs writing. We need to be able to read # keys and translate them, sanity check them, and ideally # handle keymaps, at least vi command and insert. ;; (*) print "*** Internal error: bad setting '$outputs[$i]' ***" >&2 read -k key'?--- Type a key in forlorn hope --- ' ;; esac elif [[ $key = 0 ]]; then # Update the *_lines variables state_lines=("${states[@]}") display_lines=("${displays[@]}") output_lines=("${outputs[@]}") # Also save any lines suitably marked to parsed_* and state_* # by rerunning __zni_parse_lines on each such line. for (( i = 1; i <= ${#output_lines}; i++ )); do if [[ ${state_lines[$i]%%,*} = \ ("set but not saved"|"not to be saved"|"not yet saved") ]] then __zni_parse_lines ${state_lines[$i]%%,*} $output_lines[$i] fi done return $(( changes == 0 )) elif [[ $key = [qQ] ]]; then return 1 fi done } # Print and despatch a submenu. # The first argument is the title. The remaining arguments # are pairs of descriptions and functions to execute. # There shouldn't be more than 9 entries. # The usual entries 0 and q are added automatically. __zni_submenu() { local title=$1 local desc func local -a descs funcs integer i shift clear print -r $title print -r ${(l.${#title}..=.):-} for desc func; do if [[ -z $func ]]; then print "*** Internal error: bad argument set for __zni_submenu ***" >&2 read -k key'?--- Type a key in forlorn hope --- ' return 1 fi descs+=($desc) funcs+=($func) done while true; do for (( i = 1; i <= ${#descs}; i++ )); do print -r " ($i) $descs[$i]" done print -r " (0) or (q) Return to previous menu" read -k key$longprompt if [[ $key = [0qQ] ]]; then return 1 elif (( key >= 1 && key <= ${#funcs} )); then $funcs[$key] fi done } # Save all values that have been edited to .zshrc. __zni_save() { local key optline newline local -a on_opts off_opts lines lines2 integer i # Record lines containing parameter settings, sorted. for key in ${(ok)parsed_parameters}; do if [[ $state_parameters[$key] != ("no value set"|"not to be saved") ]] then lines+=("$key=$parsed_parameters[$key]") fi done # Search through sorted options, make list of those to # be turned on and off. Those marked "no value set" aren't # to be output. for key in ${(ok)parsed_options}; do if [[ $state_options[$key] != ("no value set"|"not to be saved") ]]; then if [[ $parsed_options[$key] = on ]]; then on_opts+=($key) else off_opts+=($key) fi fi done # Construct lines of options to turn on, keeping them short. optline="setopt" for (( i = 1; i <= ${#on_opts}; i++ )); do newline="$optline $on_opts[$i]" if [[ ${#newline} -ge 72 ]]; then lines+=($optline) optline="setopt $on_opts[$i]" else optline=$newline fi if (( i == ${#on_opts} )); then lines+=($optline) fi done # Construct lines of options to turn off, keeping them short. optline="unsetopt" for (( i = 1; i <= ${#off_opts}; i++ )); do newline="$optline $off_opts[$i]" if [[ ${#newline} -ge 72 ]]; then lines+=($optline) optline="unsetopt $off_opts[$i]" else optline=$newline fi if (( i == ${#off_opts} )); then lines+=($optline) fi done # Construct lines of bindkey commands. First the keymap. if [[ $state_keymaps[main] != (|"no value set"|"not to be saved") ]]; then case $parsed_keymaps[main] in (emacs) lines+=("bindkey -e") ;; (vi) lines+=("bindkey -v") ;; (none) ;; (*) print -r "\ *** Internal error: bad type $parsed_keymaps[main] for keymap ***" >&2 read -k key'?--- Type a key in forlorn hope --- ' ;; esac fi # Now bindings. for key in ${(ok)parsed_bindings}; do if [[ $state_bindings[$key] != ("no value set"|"not to be saved") ]]; then lines+=("bindkey ${(qq)key} ${parsed_bindings[$key]}") fi done # Save the lines with a start and end marker to a temporary file. print -rl $startline $lines $endline >$tmpfile if (( ${#unparsed} )); then print "# The following lines were read by $myname. # They were moved here as they could not be understood. # $(date) ${(F)unparsed} # End of lines moved by $myname." >>$tmpfile fi if grep "$startline" $zd/.zshrc 1>/dev/null 2>&1; then # Found the start line; replace the section. # We could this by reading the lines in zsh, but in case # the .zshrc is huge it's perhaps better to use sed. sed -e "/^[ ]*$endline/r $tmpfile /^[ ]*$startline/,/^[ ]*$endline/d" $zd/.zshrc >${tmpfile}.repl && cp ${tmpfile}.repl $zd/.zshrc else # No current start marker; just append. cat $tmpfile >>$zd/.zshrc fi } ######################################################################## # Specific configurations ######################################################################## __zni_history_config() { __zni_apply_defaults -p \ HISTSIZE 1000 "Number of lines of history kept within the shell." \ HISTFILE $zdmsg/.histfile "File where history is saved." \ SAVEHIST 1000 "Number of lines of history to save to \$HISTFILE." if __zni_display_and_edit "History configuration"; then install_state[history]="Unsaved changes" save=1 fi } __zni_completion_config() { autoload -Uz compinstall if compinstall -d; then print "The completion system has already been activated. You can run the configuration tool (compinstall) at any time by typing autoload -Uz compinstall compinstall Do you wish to run it now [y/n]?" read -k key$shortprompt if [[ $key = [yY] ]]; then compinstall fi print else while true; do clear print "The new completion system (compsys) allows you to complete commands, arguments and special shell syntax such as variables. It provides completions for a wide range of commonly used commands in most cases simply by typing the TAB key. Documentation is in the zshcompsys manual page. If it is not turned on, only a few simple completions such as filenames are available but the time to start the shell is slightly shorter. You can: (1) Turn on completion with the default options. (2) Run the configuration tool (compinstall). You can also run this from the command line with the following commands: autoload -Uz compinstall compinstall if you don't want to configure completion now. (0) Don't turn on completion. " read -k key$longprompt case $key in (1) completion_lines=${(f)"$(compinstall -o)"} install_state[completion]="Unsaved changes" save=1 ;; (2) if compinstall; then install_state[completion]="Configured" # compinstall has done it's thing, so we don't need # to write anything. completion_lines=() fi ;; (0) completion_lines=() install_state[completion]="Recommended" ;; (*) continue ;; esac break done fi } __zni_bindkey_config() { __zni_apply_defaults -B emacs "Change default editing configuration" if __zni_display_and_edit "Default editing configuration" \ "The keys in the shell's line editor can be made to behave either" \ "like Emacs or like Vi, two common Unix editors. If you have no" \ "experience of either, Emacs is recommended. If you don't pick one," \ "the shell will try to guess based on the EDITOR environment variable." \ "Usually it's better to pick one explicitly."; then install_state[bindkey]="Unsaved changes" save=1 fi } __zni_completion_save() { if (( ${#completion_lines} )); then # We don't try to replace existing lines of completion configuration --- # that's up to compinstall. We should already have tested that # there was no existing completion set up. print -rl $completion_lines >>$zd/.zshrc fi } __zni_options_config() { # when we have enough, should use: # __zni_submenu "Common shell options" # This is deliberately just a tiny selection. # Feel free to extend it, but if you do, consider using __zni_submenu. # The "no" prefix is used to indicate options on by default. __zni_apply_defaults -o autocd '' "Change directory given just path." \ extendedglob '' "Use additional pattern matching features." \ appendhistory '' "Append new history lines instead of overwriting." \ '!nomatch' '' "Unmatched patterns cause an error." \ '!beep' '' "Beep on errors." \ notify '' "Immediately report changes in background job status." if __zni_display_and_edit "Common shell options" \ "The following are some of the shell options that are most often used." \ "The descriptions are very brief; if you would like more information," \ "read the zshoptions manual page (type \"man zshoptions\")."; then install_state[options]="Unsaved changes" save=1 fi } ######################################################################## # Main function ######################################################################## # Read and parse any existing lines, in case the function # was called again. __zni_retrieve_lines && __zni_parse_lines saved "$reply[@]" if [[ $state_parameters[HISTORY] = saved ]]; then install_state[history]="Saved" fi autoload -Uz compinstall zstyle :compinstall filename $zd/.zshrc if compinstall -d; then install_state[completion]="Saved" fi # skip initial screen if the function was deliberately run by the user. if [[ $1 != -f ]]; then clear print -r "This is the Z Shell configuration function for new users, $myname. You are seeing this message because you have no zsh startup files (the files .zshenv, .zprofile, .zshrc, .zlogin in the directory $zdmsg). This function can help you with a few settings that should make your use of the shell easier. You can: (q) Quit and do nothing. The function will be run again next time." if [[ ! -f $zd/.zshrc ]]; then print -r " (0) Exit, creating the file $zdmsg/.zshrc containing just a comment. That will prevent this function being run again." fi print -r " (1) Continue to the main menu. " if [[ -f /etc/zsh/newuser.zshrc.recommended ]]; then print -r "(2) Populate your $zdmsg/.zshrc with the configuration recommended by the system administrator and exit (you will need to edit the file by hand, if so desired). " fi read -k key$longprompt print case $key in ([qQ]) return 0 ;; (0) print -r $msg >$zd/.zshrc return 0 ;; (1) ;; (2) cp /etc/zsh/newuser.zshrc.recommended $zd/.zshrc source $zd/.zshrc return 0 ;; (*) print -r "Aborting." if [[ $1 != -f ]]; then print "\ The function will be run again next time. To prevent this, execute: touch $zdmsg/.zshrc" fi return 1 ;; esac fi print -r "Attempting to extract information from manual pages..." (man zshoptions | col -b > $tmpfile-man-options; man zshparam | col -b > $tmpfile-man-param) 2>/dev/null while true; do clear print -nr "Please pick one of the following options: (1) Configure settings for history, i.e. command lines remembered and saved by the shell.\ ${install_state[history]:+ ($install_state[history].)} (2) " if [[ $install_state[completion] = Recommended ]]; then print -nr "Configure" else print -nr "Use" fi print -r " the new completion system.\ ${install_state[completion]:+ ($install_state[completion].)} (3) Configure how keys behave when editing command lines.\ ${install_state[bindkey]:+ ($install_state[bindkey].)} (4) Pick some of the more common shell options. These are simple \"on\" or \"off\" switches controlling the shell's features. \ ${install_state[options]:+ ($install_state[options].)} " print -nr "(0) Exit, " if (( save )); then print -r "saving the new settings. They will take effect immediately." elif [[ -f $zd/.zshrc ]]; then print -r "leaving the existing $zdmsg/.zshrc alone." else print -r "creating a blank $zdmsg/.zshrc file." fi print -r " (a) Abort all settings and start from scratch. Note this will overwrite any settings from $myname already in the startup file. It will not alter any of your other settings, however." if [[ $1 = -f ]]; then print -r " (q) Quit and do nothing else." else print -r " (q) Quit and do nothing else. The function will be run again next time." fi read -k key$longprompt print case $key in ([qQ]) break ;; ([aA]) parsed_parameters=() state_parameters=() parsed_options=() state_options=() parsed_keymaps=() state_keymaps=() parsed_bindings=() state_bindings=() unparsed=() ;; (0) clear if (( save )); then if [[ -f $zd/.zshrc ]]; then cp $zd/.zshrc $zd/.zshrc.zni && print -r "Copied old '$zdmsg/.zshrc' to '$zdmsg/.zshrc.zni'. " fi __zni_save __zni_completion_save elif [[ ! -f $zd/.zshrc ]]; then print -r $msg >$zd/.zshrc fi if [[ $1 != -f ]]; then print -r "The function will not be run in future, but you can run it yourself as follows: autoload -Uz $myname $myname -f The code added to $zdmsg/.zshrc is marked by the lines $startline $endline You should not edit anything between these lines if you intend to run $myname again. You may, however, edit any other part of the file." fi break ;; (1) __zni_history_config ;; (2) __zni_completion_config ;; (3) __zni_bindkey_config ;; (4) __zni_options_config ;; esac done } always { # Tidy up: always executed unless the shell is stopped dead # in its tracks. unfunction -m $myname __zni_\* rm -f $tmpfile* }