/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/_tmux (49423B)
#compdef tmux # tmux completion for zsh . # # Configuration: # # - On some OSs, the directory for tmux's server sockets may not be # the default (which is /tmp/tmux-/), but say # /var/run/tmux/tmux-, in which case the completion for # 'tmux -L ' will not be able to find the sockets in the default # location (debian does this, for instance); tell _tmux the right place # to look: # % zstyle ':completion:*:*:tmux:*:sockets' socketdir "/var/run/tmux/tmux-${UID}" # # - tmux knows a *lot* of sub-commands, hence 'tmux ' returns a lot # of possible completions. _tmux knows about all commands and their aliases. # By default, both are offered. If you do not care about the aliases, do this: # % zstyle ':completion:*:*:tmux:*:subcommands' mode 'commands' # # The same can be done to only return aliases by setting the above style # to 'aliases'. The default value is 'both' (but actually every value # different from 'commands' and 'aliases' will have the same effect). # # 'lsw' is an alias for 'list-windows' for example; note that not all # commands have aliases. So probably, either the default 'both' or # 'commands' makes most sense for this style. # # - For finer grained control over what is suggested as possible completions, # the 'ignored-patterns' style may be used; suppose you think that only # '*-window' or '*-windows' are worth being completed. You would get that # behaviour like this: # % zstyle ':completion:*:*:tmux:*:subcommands' ignored-patterns '^*-window(|s)' # # Some tmux commands currently do not work if called from a shell prompt, # so it would make sense to ignore them per default (at the time of writing, # those commands are choose-{session,client,window}, confirm-before and # find-window. This would ignore them: # % zstyle ':completion:*:*:tmux:*:subcommands' ignored-patterns \ # 'choose-*' 'confirm-before' 'find-window' # # The configuration for subcommand completions may be done in # this context: ':completion:*:*:tmux-:*:*' # Global variables; setup the first time _tmux is called. # For $_tmux_commands[] generation, see the very end of this file. typeset -ga _tmux_commands _tmux_aliases typeset -gA _tmux_aliasmap _tmux_aliasmap=( # clients and sessions attach attach-session detach detach-client has has-session lsc list-clients lscm list-commands ls list-sessions new new-session refresh refresh-client rename rename-session showmsgs show-messages source source-file start start-server suspendc suspend-client switchc switch-client # windows and panes breakp break-pane capturep capture-pane displayp display-panes downp down-pane findw find-window joinp join-pane killp kill-pane killw kill-window last last-window linkw link-window lsp list-panes lsw list-windows movew move-window neww new-window nextl next-layout next next-window pipep pipe-pane prev previous-window renamew rename-window resizep resize-pane respawnw respawn-window rotatew rotate-window selectl select-layout selectp select-pane selectw select-window splitw split-window swapp swap-pane swapw swap-window unlinkw unlink-window upp up-pane # key bindings bind bind-key lsk list-keys send send-keys unbind unbind-key # options set set-option setw set-window-option show show-options showw show-window-options # environment setenv set-environment showenv show-environment # status line confirm confirm-before display display-message # buffers clearhist clear-history copyb copy-buffer deleteb delete-buffer lsb list-buffers loadb load-buffer pasteb paste-buffer saveb save-buffer setb set-buffer showb show-buffer # miscellaneous if if-shell lock lock-server run run-shell info server-info ) # --- Sub-command functions --- # These *must* be called _tmux-*(); The description generation relies on # them being names that way. *No* other functions may match that pattern. # Other utility functions should be named __tmux-*() (see below). # # Another thing, the description generation needs, is handling of # $tmux_describe: If that parameter is non-empty, the sub-command function # should only print a description of the sub-command it handles and return # immidiately after doing so. # # To add support for a new sub-command, you only have to add a new # _tmux-() function below (preferably alphabetically sorted), that # behaves like described above; and add a alias->command pair in the # _tmux_aliasmap associative array above (if the comand in fact has an # alias). The rest should just work[tm]. function _tmux-attach-session() { [[ -n ${tmux_describe} ]] && print "Attach or switch to a session" && return local -a args args=( '-d[detach other clients attached to target session]' '-r[put the client into read-only mode]' '-t[choose a target session]:target session:__tmux-sessions' ) _arguments ${args} } function _tmux-bind-key() { [[ -n ${tmux_describe} ]] && print "Bind a key to a command" && return local curcontext="${curcontext}" state local -a args args=( '-c[bind to command mode instead of normal mode]' '-n[make the binding work without the need for the prefix key]' '-r[the key may repeat]' '-t[choose a key table for the binding]:key tables:__tmux-key-tables' '1: :->key' '*:: :->command_and_args' ) _arguments -C ${args} && return if [[ ${state} == 'key' ]]; then _message "key" else # quite cool, that this works. :-) _tmux fi } function _tmux-break-pane() { [[ -n ${tmux_describe} ]] && print "Break a pane from an existing into a new window" && return local -a args args=( '-d[do not make the new window become the active one]' '-t[choose a target pane]:panes:__tmux-panes' ) _arguments ${args} } function _tmux-capture-pane() { [[ -n ${tmux_describe} ]] && print "Capture the contents of a pane to a buffer" && return local -a args args=( '-b[choose target buffer]:target buffer:__tmux-buffers' '-t[choose source pane]:source pane:__tmux-panes' ) _arguments ${args} } function _tmux-choose-client() { [[ -n ${tmux_describe} ]] && print "Put a window into client choice mode" && return __tmux-choose-stuff } function _tmux-choose-session() { [[ -n ${tmux_describe} ]] && print "Put a window into session choice mode" && return __tmux-choose-stuff } function _tmux-choose-window() { [[ -n ${tmux_describe} ]] && print "Put a window into window choice mode" && return __tmux-choose-stuff } function _tmux-clear-history() { [[ -n ${tmux_describe} ]] && print "Remove and clear history for a pane" && return local -a args args=('-t[choose a target pane]:panes:__tmux-panes') _arguments ${args} } function _tmux-clock-mode() { [[ -n ${tmux_describe} ]] && print "Enter clock mode" && return local -a args args=('-t[choose a target pane]:panes:__tmux-panes') _arguments ${args} } function _tmux-command-prompt() { [[ -n ${tmux_describe} ]] && print "Open the tmux command prompt in a client" && return local state local -a args args=( '-p[list of prompts]:prompts:->plist' '-t[choose a target client]:clients:__tmux-clients' '*:: :->tmpl' ) _arguments -C ${args} && return if [[ ${state} == 'plist' ]]; then _message "comma seperated list of prompts" return fi __tmux-lastarg ${state} 'tmpl' 1 "command template" } function _tmux-confirm-before() { [[ -n ${tmux_describe} ]] && print "Run a command but ask for confirmation before" && return local state local -a args args=( '-t[choose a target client]:clients:__tmux-clients' '*:: :->command_and_args' ) _arguments -C ${args} && return __tmux-lastarg ${state} 'command_and_args' 1 "command string" } function _tmux-copy-buffer() { [[ -n ${tmux_describe} ]] && print "Copy session paste buffers" && return local state session local -a args local -ax bopts args=( '-a[choose a source buffer index]:buffer:->srcbuf' '-b[choose a destination buffer index]:buffer:->dstbuf' '-s[choose a source session]:session:->srcsession' '-t[choose a destination session]:session:->dstsession' ) _arguments ${args} case ${state} in ((src|dst)session) __tmux-sessions return ;; (srcbuf) session="$(__tmux-get-optarg -s "${words[@]}")" ;; (srcbuf) session="$(__tmux-get-optarg -t "${words[@]}")" ;; esac if [[ -n ${session} ]]; then bopts=( -t ${session} ) __tmux-buffers return fi bopts=() __tmux-buffers } function _tmux-copy-mode() { [[ -n ${tmux_describe} ]] && print "Enter copy mode" && return local -a args args=( '-t[choose a target pane]:panes:__tmux-panes' '-u[scroll up one page]' ) _arguments ${args} } function _tmux-delete-buffer() { [[ -n ${tmux_describe} ]] && print "Delete a paste buffer" && return local state session local -a args local -ax bopts args=( '-b[choose a target buffer index]:panes:->buffer' '-t[choose a target session]:panes:->session' ) _arguments ${args} case ${state} in (session) __tmux-sessions return ;; (buffer) session="$(__tmux-get-optarg -t "${words[@]}")" ;; (*) return ;; esac if [[ -n ${session} ]]; then bopts=( -t ${session} ) __tmux-buffers return fi bopts=() __tmux-buffers } function _tmux-detach-client() { [[ -n ${tmux_describe} ]] && print "Detach a client from the server" && return local -a args args=('-t[choose a target client]:clients:__tmux-clients') _arguments ${args} } function _tmux-display-message() { [[ -n ${tmux_describe} ]] && print "Display a message in the status line" && return local -a args args=( '-p[print message to stdout]' '-t[choose a target client]:clients:__tmux-clients' '*:: :->msg' ) _arguments ${args} && return __tmux-lastarg ${state} 'msg' 1 "message" } function _tmux-display-panes() { [[ -n ${tmux_describe} ]] && print "Display an indicator for each visible pane" && return local -a args args=('-t[choose a target client]:clients:__tmux-clients') _arguments ${args} } function _tmux-down-pane() { [[ -n ${tmux_describe} ]] && print "Move down a pane" && return local -a args args=('-t[choose a target pane]:panes:__tmux-panes') _arguments ${args} } function _tmux-find-window() { [[ -n ${tmux_describe} ]] && print "Search for a pattern in windows" && return local curcontext="${curcontext}" state local -a args args=( '-t[choose a target window]:windows:__tmux-windows' '*:: :->pattern' ) _arguments ${args} && return __tmux-lastarg ${state} 'pattern' 1 "window search pattern" } function _tmux-has-session() { [[ -n ${tmux_describe} ]] && print "Check and report if a session exists on the server" && return local -a args args=('-t[choose a target session]:sessions:__tmux-sessions') _arguments ${args} } function _tmux-if-shell() { [[ -n ${tmux_describe} ]] && print "Execute a tmux command if a shell-command succeeded" && return local -a args args=( '1:shell command:' '2:tmux command:' ) _arguments ${args} } function _tmux-join-pane() { [[ -n ${tmux_describe} ]] && print "Split a pane and move an existing one into the new space" && return local -a args args=( '-d[do not make the new window become the active one]' '-h[split horizontally]' '-v[split vertically]' '-l[define new pane'\''s size]: :_guard "[0-9]#" "numeric value"' '-p[define new pane'\''s size in percent]: :_guard "[0-9]#" "numeric value"' '-s[choose source pane]:window:__tmux-panes' '-t[choose target pane]:window:__tmux-panes' ) _arguments ${args} && return } function _tmux-kill-pane() { [[ -n ${tmux_describe} ]] && print "Destroy a given pane" && return local -a args args=( '-a[kill all panes, except current]' '-t[choose a target pane]:panes:__tmux-panes' ) _arguments ${args} } function _tmux-kill-server() { [[ -n ${tmux_describe} ]] && print "Kill clients, sessions and server" && return __tmux-nothing-else } function _tmux-kill-session() { [[ -n ${tmux_describe} ]] && print "Destroy a given session" && return local -a args args=('-t[choose a target session]:sessions:__tmux-sessions') _arguments ${args} } function _tmux-kill-window() { [[ -n ${tmux_describe} ]] && print "Destroy a given window" && return local -a args args=('-t[choose a target window]:windows:__tmux-windows') _arguments ${args} } function _tmux-last-window() { [[ -n ${tmux_describe} ]] && print "Select the previously selected window" && return local -a args args=('-t[choose a session]:sessions:__tmux-sessions') _arguments ${args} && return } function _tmux-link-window() { [[ -n ${tmux_describe} ]] && print "Link a window to another" && return local -a args args=( '-d[do not make the new window become the active one]' '-k[kill the target window if it exists]' '-s[choose source window]:window:__tmux-windows' '-t[choose destination window]:window:__tmux-windows' ) _arguments ${args} } function _tmux-list-buffers() { [[ -n ${tmux_describe} ]] && print "List paste buffers of a session" && return local -a args args=('-t[choose a session]:sessions:__tmux-sessions') _arguments ${args} && return } function _tmux-list-clients() { [[ -n ${tmux_describe} ]] && print "List clients attached to server" && return __tmux-nothing-else } function _tmux-list-commands() { [[ -n ${tmux_describe} ]] && print "List supported sub-commands" && return __tmux-nothing-else } function _tmux-list-keys() { [[ -n ${tmux_describe} ]] && print "List all key-bindings" && return local -a args args=('-t[choose a key table]:key table:__tmux-key-tables') _arguments ${args} && return } function _tmux-list-panes() { [[ -n ${tmux_describe} ]] && print "List panes of a window" && return local -a args args=('-t[choose a window]:windows:__tmux-windows') _arguments ${args} && return } function _tmux-list-sessions() { [[ -n ${tmux_describe} ]] && print "List sessions managed by server" && return __tmux-nothing-else } function _tmux-list-windows() { [[ -n ${tmux_describe} ]] && print "List windows of a session" && return local -a args args=('-t[choose a session]:sessions:__tmux-sessions') _arguments ${args} && return } function _tmux-load-buffer() { [[ -n ${tmux_describe} ]] && print "Load a file into a paste buffer" && return local state session local -a args local -ax bopts args=( '-b[choose a target buffer index]:panes:->buffer' '-t[choose a target session]:panes:->session' '1:file name:_files -g "*(-.)"' ) _arguments ${args} case ${state} in (session) __tmux-sessions return ;; (buffer) session="$(__tmux-get-optarg -t "${words[@]}")" ;; (*) return ;; esac if [[ -n ${session} ]]; then bopts=( -t ${session} ) __tmux-buffers return fi bopts=() __tmux-buffers } function _tmux-lock-client() { [[ -n ${tmux_describe} ]] && print "Lock a client" && return local -a args args=('-t[choose a client]:clients:__tmux-clients') _arguments ${args} && return } function _tmux-lock-server() { [[ -n ${tmux_describe} ]] && print "Lock all clients attached to the server" && return __tmux-nothing-else } function _tmux-lock-session() { [[ -n ${tmux_describe} ]] && print "Lock all clients attached to a session" && return local -a args args=('-t[choose a session]:sessions:__tmux-sessions') _arguments ${args} && return } function _tmux-move-window() { [[ -n ${tmux_describe} ]] && print "Move a window to another" && return local -a args args=( '-d[do not make the new window become the active one]' '-s[choose source window]:window:__tmux-windows' '-t[choose destination window]:window:__tmux-windows' ) _arguments ${args} } function _tmux-new-session() { [[ -n ${tmux_describe} ]] && print "Create a new session" && return local -a args args=( '-d[attach the new session the current terminal]' '-n[name the initial window]:window name' '-s[name the session]:session name' '-t[specify target session]:sessions:__tmux-sessions' '*:: :_command' ) _arguments ${args} } function _tmux-new-window() { [[ -n ${tmux_describe} ]] && print "Create a new window" && return local -a args args=( '-d[do not make the new window become the active one]' '-k[destroy it if the specified window exists]' '-n[specify a window name]:window name:' '-t[specify target window]:windows:__tmux-windows' '*:: :_command' ) _arguments ${args} } function _tmux-next-layout() { [[ -n ${tmux_describe} ]] && print "Move a window to the next layout" && return local -a args args=('-t[choose target window]:window:__tmux-windows') _arguments ${args} } function _tmux-next-window() { [[ -n ${tmux_describe} ]] && print "Move to the next window in a session" && return local -a args args=( '-a[move to the next window with activity]' '-t[choose target session]:session:__tmux-sessions' ) _arguments ${args} } function _tmux-paste-buffer() { [[ -n ${tmux_describe} ]] && print "Insert a paste buffer into the window" && return local -a args args=( '-d[remove buffer from stack after pasting]' '-r[do not replace LF with CR when pasting]' '-b[choose buffer]:source buffer:__tmux-buffers' '-t[choose target window]:window:__tmux-windows' ) _arguments ${args} } function _tmux-pipe-pane() { [[ -n ${tmux_describe} ]] && print "Pipe output from a pane to a shell command" && return local state args=( '-o[only open a pipe if none is currently opened]' '-t[choose target pane]:pane:__tmux-panes' '*:: :->cmd' ) _arguments ${args} && return __tmux-lastarg ${state} 'cmd' 1 "command string" } function _tmux-previous-layout() { [[ -n ${tmux_describe} ]] && print "Move a window to the previous layout" && return local -a args args=('-t[choose target window]:window:__tmux-windows') _arguments ${args} } function _tmux-previous-window() { [[ -n ${tmux_describe} ]] && print "Move to the previous window in a session" && return local -a args args=( '-a[move to the previous window with activity]' '-t[choose target session]:session:__tmux-sessions' ) _arguments ${args} } function _tmux-refresh-client() { [[ -n ${tmux_describe} ]] && print "Refresh a client" && return local -a args args=('-t[choose target client]:client:__tmux-clients') _arguments ${args} } function _tmux-rename-session() { [[ -n ${tmux_describe} ]] && print "Rename a session" && return local state args=( '-t[choose target session]:session:__tmux-sessions' '*:: :->name' ) _arguments ${args} && return __tmux-lastarg ${state} 'name' 1 "new session name" } function _tmux-rename-window() { [[ -n ${tmux_describe} ]] && print "Rename a window" && return local state args=( '-t[choose target window]:window:__tmux-windows' '*:: :->name' ) _arguments ${args} && return __tmux-lastarg ${state} 'name' 1 "new window name" } function _tmux-resize-pane() { [[ -n ${tmux_describe} ]] && print "Resize a pane" && return args=( '-D[resize downward]' '-L[resize to the left]' '-R[resize to the right]' '-U[resize upward]' '-t[choose target pane]:pane:__tmux-panes' '1::adjustment (defaults to one):_guard "[0-9]#" "numeric value"' ) _arguments ${args} } function _tmux-respawn-window() { [[ -n ${tmux_describe} ]] && print "Reuse a window in which a command has exited" && return local -a args args=( '-k[kill window if it is in use]' '-t[choose target window]:window:__tmux-windows' '*::command:_command' ) _arguments ${args} } function _tmux-rotate-window() { [[ -n ${tmux_describe} ]] && print "Rotate positions of panes in a window" && return local -a args args=( '-D[rotate downward]' '-U[rotate upward]' '-t[choose target window]:window:__tmux-windows' ) _arguments ${args} } function _tmux-run-shell() { [[ -n ${tmux_describe} ]] && print "Execute a command without creating a new window" && return _command } function _tmux-save-buffer() { [[ -n ${tmux_describe} ]] && print "Save a paste buffer to a file" && return local state session local -a args local -ax bopts args=( '-b[choose a target buffer index]:buffer:->buffer' '-t[choose a target session]:buffer:->session' ) _arguments ${args} case ${state} in (session) __tmux-sessions return ;; (buffer) session="$(__tmux-get-optarg -t "${words[@]}")" ;; (*) return ;; esac if [[ -n ${session} ]]; then bopts=( -t ${session} ) __tmux-buffers return fi bopts=() __tmux-buffers } function _tmux-select-layout() { [[ -n ${tmux_describe} ]] && print "Choose a layout for a window" && return args=( '-t[choose a target window]:target window:__tmux-windows' '*::layout name:__tmux-layouts' ) _arguments ${args} } function _tmux-select-pane() { [[ -n ${tmux_describe} ]] && print "Make a pane the active one in the window" && return local -a args args=('-t[choose a target pane]:panes:__tmux-panes') _arguments ${args} && return } function _tmux-select-prompt() { [[ -n ${tmux_describe} ]] && print "Open a prompt to enter a window index" && return local -a args args=('-t[choose a target client]:clients:__tmux-clients') _arguments ${args} && return } function _tmux-select-window() { [[ -n ${tmux_describe} ]] && print "Select a window" && return local -a args args=('-t[choose a target window]:windows:__tmux-windows') _arguments ${args} && return } function _tmux-send-keys() { [[ -n ${tmux_describe} ]] && print "Send key(s) to a window" && return local curcontext="${curcontext}" state local -a args args=( '-t[choose a target pane]:panes:__tmux-panes' '*:: :->key' ) _arguments ${args} && return __tmux-lastarg ${state} 'key' 1 "key" } function _tmux-send-prefix() { [[ -n ${tmux_describe} ]] && print "Send the prefix key to a window" && return local -a args args=('-t[choose a target pane]:panes:__tmux-panes') _arguments ${args} } function _tmux-server-info() { [[ -n ${tmux_describe} ]] && print "Show server information" && return __tmux-nothing-else } function _tmux-set-buffer() { [[ -n ${tmux_describe} ]] && print "Set contents of a paster buffer" && return local state session local -a args local -ax bopts args=( '-b[choose a target buffer index]:panes:->buffer' '-t[choose a target session]:panes:->session' ) _arguments ${args} case ${state} in (session) __tmux-sessions return ;; (buffer) session="$(__tmux-get-optarg -t "${words[@]}")" ;; (*) return ;; esac if [[ -n ${session} ]]; then bopts=( -t ${session} ) __tmux-buffers return fi bopts=() __tmux-buffers } function _tmux-set-environment() { [[ -n ${tmux_describe} ]] && print "(Un)Set an environment variable" && return local state local -a args args=( '-g[modify global environment]' '-r[remove variable before starting new processes]' '-u[unset a variable]' '-t[choose a target session]:target session:__tmux-sessions' '*:: :->name_or_value' ) _arguments -C ${args} case ${state} in name_or_value) if (( CURRENT == 1 )); then _message 'name' elif (( CURRENT == 2 )); then _message 'value' else __tmux-nothing-else fi ;; esac } function _tmux-set-option() { [[ -n ${tmux_describe} ]] && print "Set a session option" && return local mode local -a args args=( '-a[append to string options]' '-g[set a global session option]' '-u[unset a non-global option]' '-w[change window (not session) options]' '-s[change server (not session) options]' '-t[choose a target session]:target session:__tmux-sessions' '*:: :->name_or_value' ) if __tmux-got-option-already -w; then mode=window elif __tmux-got-option-already -s; then mode=server else mode=session fi _arguments -C ${args} __tmux-options-complete ${mode} ${state} } function _tmux-set-window-option() { [[ -n ${tmux_describe} ]] && print "Set a window option" && return local -a args args=( '-a[append to string options]' '-g[set a global window option]' '-u[unset a non-global option]' '-t[choose a target window]:target window:__tmux-windows' '*:: :->name_or_value' ) _arguments -C ${args} __tmux-options-complete window ${state} } function _tmux-show-buffer() { [[ -n ${tmux_describe} ]] && print "Display the contents of a paste buffer" && return local state session local -a args local -ax bopts args=( '-b[choose a target buffer index]:panes:->buffer' '-t[choose a target session]:panes:->session' ) _arguments ${args} case ${state} in (session) __tmux-sessions return ;; (buffer) session="$(__tmux-get-optarg -t "${words[@]}")" ;; (*) return ;; esac if [[ -n ${session} ]]; then bopts=( -t ${session} ) __tmux-buffers return fi bopts=() __tmux-buffers } function _tmux-show-environment() { [[ -n ${tmux_describe} ]] && print "Display the environment" && return local -a args args=( '-g[show global environment]' '-t[choose a target session]:target session:__tmux-sessions' ) _arguments ${args} } function _tmux-show-messages() { [[ -n ${tmux_describe} ]] && print "Show client"\'"s message log" && return args=('-t[choose target client]:client:__tmux-clients') _arguments ${args} } function _tmux-show-options() { [[ -n ${tmux_describe} ]] && print "Show session options" && return local -a args args=( '-g[show global options]' '-t[choose a target session]:target session:__tmux-sessions' ) _arguments ${args} } function _tmux-show-window-options() { [[ -n ${tmux_describe} ]] && print "Show window options" && return local -a args args=( '-g[show global options]' '-t[choose a target window]:target window:__tmux-windows' ) _arguments ${args} } function _tmux-source-file() { [[ -n ${tmux_describe} ]] && print "Execute tmux commands from a file" && return _files -g "*(-.)" } function _tmux-split-window() { [[ -n ${tmux_describe} ]] && print "Splits a pane into two" && return local -a args args=( '-d[do not make the new window become the active one]' '-h[split horizontally]' '-v[split vertically]' '-l[define new pane'\''s size]: :_guard "[0-9]#" "numeric value"' '-p[define new pane'\''s size in percent]: :_guard "[0-9]#" "numeric value"' # Yes, __tmux_pane is correct here. The behaviour was changed # in recent tmux versions and makes more sense. Except that # changing the command's name might annoy users. So it stays like # this. '-t[choose target pane]:window:__tmux-panes' '*:: :_command' ) _arguments ${args} && return } function _tmux-start-server() { [[ -n ${tmux_describe} ]] && print "Start a tmux server" && return __tmux-nothing-else } function _tmux-suspend-client() { [[ -n ${tmux_describe} ]] && print "Suspend a client" && return local -a args args=('-t[choose destination client]:client:__tmux-clients') _arguments ${args} } function _tmux-swap-pane() { [[ -n ${tmux_describe} ]] && print "Swap two panes" && return local -a args args=( '-D[move pane down]' '-U[move pane up]' '-d[do not change the active pane]' '-s[choose source pane]:pane:__tmux-panes' '-t[choose destination pane]:pane:__tmux-panes' ) _arguments ${args} } function _tmux-swap-window() { [[ -n ${tmux_describe} ]] && print "Swap two windows" && return local -a args args=( '-d[do not make the new window become the active one]' '-s[choose source window]:window:__tmux-windows' '-t[choose destination window]:window:__tmux-windows' ) _arguments ${args} } function _tmux-switch-client() { [[ -n ${tmux_describe} ]] && print "Switch the client to another session" && return local -a args args=( '-c[choose a target client]:client:__tmux-clients' '-t[choose a target window]:window:__tmux-windows' ) _arguments ${args} } function _tmux-unbind-key() { [[ -n ${tmux_describe} ]] && print "Unbind a key" && return local state keytable local -a args ow ow=( "${words[@]}" ) args=( '-c[kill the window if it is only in one session]' '-n[remove a non-prefix binding]' '-t[choose a key table]:key table:__tmux-key-tables' '*:: :->boundkeys' ) _arguments ${args} && return [[ ${state} != 'boundkeys' ]] && return keytable="$(__tmux-get-optarg -t "${ow[@]}")" if [[ -n ${keytable} ]]; then __tmux-bound-keys -t ${keytable} return fi __tmux-bound-keys } function _tmux-unlink-window() { [[ -n ${tmux_describe} ]] && print "Unlink a window" && return local -a args args=( '-k[kill the window if it is only in one session]' '-t[choose a target window]:target window:__tmux-windows' ) _arguments ${args} } function _tmux-up-pane() { [[ -n ${tmux_describe} ]] && print "Move up a pane" && return local -a args args=('-t[choose a target pane]:panes:__tmux-panes') _arguments ${args} } # --- Utility functions --- # They should be called __tmux-*() and kept seperate from the # sub-command functions. function __tmux-attributes() { local -a attr already attr=( default bright bold dim underscore blink reverse hidden italics ) compset -P '*,' already=(${(s<,>)IPREFIX}) _describe -t tmux-attribute 'tmux attribute' attr -S, -F already -q } function __tmux-buffers() { local expl local -a buffers if [[ ${(t)bopts} != *array* ]]; then local -a bopts; bopts=() fi buffers=( ${${(f)"$(command tmux list-buffers "${bopts[@]}")"}/:[ $'\t']##/:} ) _describe -t buffers 'buffers' buffers } function __tmux-bound-keys() { local expl local -a keys keys=( ${${${${(f)"$(command tmux list-keys "$@")"}/:[ $'\t']##/:}/(#s)[ $'\t']##/}/(#s):/\\:} ) _describe -t keys 'keys' keys } function __tmux-choose-stuff() { # choose-{client,session,window} accept exactly the same arguments, so... local curcontext="${curcontext}" state local -a args args=( '-t[choose a target pane]:panes:__tmux-panes' '*:: :->tmpl' ) _arguments ${args} && return __tmux-lastarg ${state} 'tmpl' 1 "tmux command template" } function __tmux-clients() { local expl local -a clients clients=( ${${(f)"$(command tmux list-clients)"}/:[ $'\t']##/:} ) _describe -t clients 'clients' clients } function __tmux-colours() { local -a colnames colnames=( default black red green yellow blue magenta cyan white colourN:"replace N by a number between 0 and 255" ) compset -P 'colour*' if [[ -z ${IPREFIX} ]]; then _describe -t tmux-colours 'colour' colnames else _message 'colour number 0..255' fi } function __tmux-get-optarg() { local opt="$1" local -i i shift for (( i = 1; i <= $#; i++ )); do if [[ ${argv[$i]} == ${opt} ]]; then if [[ ${argv[$(( i + 1 ))]} != -* ]]; then print -- ${argv[$(( i + 1 ))]} fi return fi done } function __tmux-got-option-already() { [[ -n ${(M)words:#$1} ]] && return 0 return 1 } function __tmux-key-tables() { local expl local -a tables tables=( vi-edit emacs-edit vi-choice emacs-choice vi-copy emacs-copy ) _wanted keytable expl 'key tables' compadd ${expl} -- ${tables} } function __tmux-lastarg() { local got_state="$1" want_state="$2" pos="$3" msg="$4" if [[ ${want_state} == ${got_state} ]] && (( CURRENT == ${pos} )); then _message ${msg} else __tmux-nothing-else fi } function __tmux-layouts() { local expl local -a layouts layouts=( even-horizontal even-vertical main-horizontal main-vertical ) _wanted layout expl 'layouts' compadd ${expl} -- ${layouts} } function __tmux-nothing-else() { _message "no further arguments" } function __tmux-option-guard() { local mode opt guard int_guard mode="$1" opt="$2" shift; shift local -a options desc int_guard='_guard "[0-9]#" "'${opt}': numeric value"' if [[ ${mode} == 'session' ]]; then options=( 'base-index:'${int_guard} 'bell-action:DESC:any none current' 'buffer-limit:'${int_guard} 'default-command:MSG:command string' 'default-path:MSG:path name' 'default-shell:MSG:shell executable' 'default-terminal:MSG:terminal string' 'display-panes-colour:__tmux-colours' 'display-panes-active-colour:__tmux-colours' 'display-panes-time:'${int_guard} 'display-time:'${int_guard} 'history-limit:'${int_guard} 'lock-after-time:'${int_guard} 'lock-command:MSG:command string' 'lock-server:DESC:on off' 'message-attr:__tmux-attributes' 'message-bg:__tmux-colours' 'message-fg:__tmux-colours' 'message-limit:'${int_guard} 'mouse-select-pane:DESC:on off' 'pane-border-bg:__tmux-colours' 'pane-border-fg:__tmux-colours' 'pane-active-border-bg:__tmux-colours' 'pane-active-border-fg:__tmux-colours' 'prefix:MSG:comma-seperated key list' 'repeat-time:'${int_guard} 'set-remain-on-exit:DESC:on off' 'set-titles:DESC:on off' 'set-titles-string:MSG:title format string' 'status:DESC:on off' 'status-attr:__tmux-attributes' 'status-bg:__tmux-colours' 'status-fg:__tmux-colours' 'status-interval:'${int_guard} 'status-justify:DESC:left centre right' 'status-keys:DESC:vi emacs' 'status-left:MSG:format string' 'status-left-attr:__tmux-attributes' 'status-left-bg:__tmux-colours' 'status-left-fg:__tmux-colours' 'status-left-length:'${int_guard} 'status-right:MSG:format string' 'status-right-attr:__tmux-attributes' 'status-right-bg:__tmux-colours' 'status-right-fg:__tmux-colours' 'status-right-length:'${int_guard} 'status-utf8:DESC:on off' 'terminal-overrides:MSG:overrides string' 'update-environment:MSG:string listing env. variables' 'visual-activity:DESC:on off' 'visual-bell:DESC:on off' 'visual-content:DESC:on off' ) elif [[ ${mode} == 'server' ]]; then options=( 'escape-time:'${int_guard} 'quiet:DESC:on off' ) else options=( 'aggressive-resize:DESC:on off' 'alternate-screen:DESC:on off' 'automatic-rename:DESC:on off' 'clock-mode-colour:__tmux-colours' 'clock-mode-style:DESC:12 24' 'force-height:'${int_guard} 'force-width:'${int_guard} 'main-pane-height:'${int_guard} 'main-pane-width:'${int_guard} 'mode-attr:__tmux-attributes' 'mode-bg:__tmux-colours' 'mode-fg:__tmux-colours' 'mode-keys:DESC:vi emacs' 'mode-mouse:DESC:on off' 'monitor-activity:DESC:on off' 'monitor-content:MSG:fnmatch(3) pattern' 'remain-on-exit:DESC:on off' 'synchronize-panes:DESC:on off' 'utf8:DESC:on off' 'window-status-attr:__tmux-attributes' 'window-status-bg:__tmux-colours' 'window-status-current-attr:__tmux-attributes' 'window-status-current-bg:__tmux-colours' 'window-status-current-fg:__tmux-colours' 'window-status-current-format:MSG:status format string' 'window-status-fg:__tmux-colours' 'window-status-format:MSG:status format string' 'xterm-keys:DESC:on off' ) fi guard=${(M)options:#$opt:*} if [[ -z ${guard} ]]; then _message "unknown ${mode} option: ${opt}" return fi _message "${mode} option value" guard=${guard#*:} case ${guard} in ('') ;; (MSG:*) _message ${guard#*:} ;; (DESC:*) eval "desc=( ${guard#*:} )" _describe -t "tmux-${mode}-option-value" "${opt}" desc ;; (*) eval ${guard} ;; esac } function __tmux-options() { local -a tmux_options tmux_options=( 'base-index:define where to start numbering' 'bell-action:set action on window bell' 'buffer-limit:number of buffers kept per session' 'default-command:default command for new windows' 'default-path:default working directory' 'default-shell:default shell executable' 'default-terminal:default terminal definition string' 'display-panes-colour:colour used for display-panes' 'display-panes-active-colour:colour for active pane in display-panes' 'display-panes-time:time (in msecs) of display-panes output' 'display-time:time (in msecs) messages are displayed' 'history-limit:number of copy-mode lines per window' 'lock-after-time:lock sessions after N seconds' 'lock-command:command to run for locking a client' 'lock-server:make lock-after-time lock the server instead of sessions' 'message-attr:set status line message attributes' 'message-bg:set status line message background colour' 'message-fg:set status line message foreground colour' 'message-limit:set size of message log per client' 'mouse-select-pane:make mouse clicks select window panes' 'pane-border-bg:set pane border foreground colour' 'pane-border-fg:set pane border background colour' 'pane-active-border-bg:set active pane border foreground colour' 'pane-active-border-fg:set active pane border background colour' 'prefix:comma seperated line of keys accepted as prefix key' 'repeat-time:time for multiple commands without prefix-key presses' 'set-remain-on-exit:set remain-on-exit window option' 'set-titles:try to set xterm window titles' 'set-titles-string:format used by set-titles' 'status:show or hide the status bar' 'status-attr:status bar attributes' 'status-bg:status bar background colour' 'status-fg:status bar foreground colour' 'status-interval:interval (in seconds) for status bar updates' 'status-justify:position of the window list in status bar' 'status-keys:mode to use in status bar modes (vi/emacs)' 'status-left:format to use left in status bar' 'status-left-attr:attribute for the left part of the status bar' 'status-left-bg:background colour of the left part of the status bar' 'status-left-fg:foreground colour of the left part of the status bar' 'status-left-length:maximum length of the left part of the status bar' 'status-right:format to use right in status bar' 'status-right-attr:attribute for the right part of the status bar' 'status-right-bg:background colour of the right part of the status bar' 'status-right-fg:foreground colour of the right part of the status bar' 'status-right-length:maximum length of the right part of the status bar' 'status-utf8:assume UTF-8 sequences to appear in status bar' 'terminal-overrides:override terminal descriptions' 'update-environment:list of variables to be copied to a session'\''s environment' 'visual-activity:display status line messages upon activity' 'visual-bell:use visual bell instead of audible' 'visual-content:display status line messages upon content changes' ) _describe -t tmux-options 'tmux option' tmux_options } function __tmux-options-complete() { local mode="$1" state="$2" case ${state} in name_or_value) if (( CURRENT == 1 )) && [[ ${mode} == 'session' ]]; then __tmux-options elif (( CURRENT == 1 )) && [[ ${mode} == 'server' ]]; then __tmux-server-options elif (( CURRENT == 1 )) && [[ ${mode} == 'window' ]]; then __tmux-window-options elif (( CURRENT == 2 )); then __tmux-option-guard ${mode} ${words[1]} else __tmux-nothing-else fi ;; esac } function __tmux-panes() { local expl line local -i num local -a panes opts compset -P '*.' if [[ -n ${IPREFIX} ]]; then opts=( -t "${IPREFIX%.}" ) else opts=( ) fi num=0 command tmux list-panes "${opts[@]}" | while IFS= read -r line; do panes+=( $(( num++ )):${line//:/} ) done _describe -t panes 'panes' panes "$@" if [[ ${IPREFIX} != *. ]]; then _wanted windows expl 'windows' __tmux-windows -S. fi } function __tmux-server-options() { local -a tmux_server_options tmux_server_options=( 'escape-time:set timeout to detect single escape characters (in msecs)' 'quiet:enable/disable the display of various informational messages' ) _describe -t tmux-server-options 'tmux server option' tmux_server_options } function __tmux-sessions() { local expl local -a sessions sessions=( ${${(f)"$(command tmux list-sessions)"}/:[ $'\t']##/:} ) _describe -t sessions 'sessions' sessions "$@" } function __tmux-socket-name() { local expl sdir local curcontext="${curcontext}" local -a socks zstyle -s ":completion:${curcontext}:sockets" socketdir sdir || sdir="/tmp/tmux-${UID}" socks=(${sdir}/*(=:t)) _wanted socket expl 'socket name' compadd ${expl} -- ${socks} } function __tmux-window-options() { local -a tmux_window_options tmux_window_options=( 'aggressive-resize:aggressively resize windows' 'alternate-screen:allow alternate screen feature to be used' 'automatic-rename:attempt to automatically rename windows' 'clock-mode-colour:set clock colour' 'clock-mode-style:set clock hour format (12/24)' 'force-height:force a windows to a certain height' 'force-width:force a windows to a certain width' 'main-pane-height:set height for main-* layouts' 'main-pane-width:set width for main-* layouts' 'mode-attr:set window modes attributes' 'mode-bg:set window modes background colour' 'mode-fg:set window modes foreground colour' 'mode-keys:mode to use in copy and choice modes (vi/emacs)' 'mode-mouse:use mouse in modes' 'monitor-activity:monitor window activity' 'monitor-content:monitor window contents for a fnmatch(3) pattern' 'remain-on-exit:do not destroy windows after the program exits' 'synchronize-panes:send input to all panes of a window' 'utf8:assume UTF-8 sequences to appear in a window' 'window-status-attr:set status line attributes for a window' 'window-status-bg:set status line background for a window' 'window-status-current-attr:set status line attributes for active window' 'window-status-current-bg:set status line background for active window' 'window-status-current-fg:set status line foreground for active window' 'window-status-current-format:set status line format for active window' 'window-status-fg:set status line foreground for a window' 'window-status-format:set status line format for all but the active window' 'xterm-keys:generate xterm-style function key sequences' ) _describe -t tmux-window-options 'tmux window option' tmux_window_options } function __tmux-windows() { local expl local -a wins opts compset -P '*:' if [[ -n ${IPREFIX} ]]; then opts=( -t "${IPREFIX%:}" ) else opts=( ) fi wins=( ${${(M)${(f)"$(command tmux list-windows "${opts[@]}")"}:#<->*}/:[ $'\t']##/:} ) _describe -t windows 'windows' wins "$@" if [[ ${IPREFIX} != *: ]]; then _wanted sessions expl 'sessions' __tmux-sessions -S: fi } # And here is the actual _tmux(), that puts it all together: function _tmux() { local curcontext="${curcontext}" local mode state ret local -a args local -x tmuxcommand unset tmux_describe args=( '-2[force using 256 colours]' '-8[force using 88 colours]' '-c[execute a shell command]:command name:_command_names' '-f[specify configuration file]:tmux config file:_files -g "*(-.)"' '-l[behave like a login shell]' '-L[specify socket name]:socket name:__tmux-socket-name' '-q[do not send informational messages]' '-S[specify socket path]:server socket:_path_files -g "*(=,/)"' '-u[force using UTF-8]' '-v[request verbose logging]' '*:: :->subcommand_or_options' ) _arguments -C -s -w ${args} && return if [[ ${state} == "subcommand_or_options" ]]; then if (( CURRENT == 1 )) ; then zstyle -s ":completion:${curcontext}:subcommands" mode mode || mode='both' if [[ ${mode} == 'commands' ]]; then _describe -t subcommands 'tmux commands' _tmux_commands elif [[ ${mode} == 'aliases' ]]; then _describe -t subcommands 'tmux aliases' _tmux_aliases else _describe -t subcommands 'tmux commands and aliases' _tmux_commands -- _tmux_aliases fi else tmuxcommand="${words[1]}" if [[ -n ${_tmux_aliasmap[$tmuxcommand]} ]] ; then tmuxcommand="${_tmux_aliasmap[$tmuxcommand]}" fi curcontext="${curcontext%:*:*}:tmux-${tmuxcommand}:" _call_function ret _tmux-${tmuxcommand} fi fi } # description generation follows; only done on 1st _tmux call. local f desc local -A rev local -x tmux_describe tmux_describe='yes, please' for f in ${(k)_tmux_aliasmap} ; do rev+=( ${_tmux_aliasmap[$f]} $f ) done for f in ${(M)${(k)functions}:#_tmux-*} ; do desc="$($f)" _tmux_commands+=( "${f#_tmux-}${desc:+:$desc}" ) [[ -n ${rev[${f#_tmux-}]} ]] && _tmux_aliases+=( "${rev[${f#_tmux-}]}${desc:+:$desc}" ) done unset desc f rev tmux_describe _tmux