Improve command prompt completion:

- Show a menu with completions if there are multiple.

- Don't complete argument stuff (options, layouts) at start of text.

- For -t and -s, if there is no : then complete sessions but if there is a :,
  show a menu of all windows in the session rather than trying to complete the
  window name which is a bit useless if there are duplicates.

Lots of scope for being more sophisticated left here.
5 files changed
tree: 496515ffeaeebeaba5f1e660a7e2b111ea86abdf
  1. .github/
  2. .gitignore
  3. .mailmap
  4. .travis.yml
  5. CHANGES
  6. COPYING
  7. Makefile.am
  8. README
  9. README.ja
  10. SYNCING
  11. alerts.c
  12. arguments.c
  13. attributes.c
  14. autogen.sh
  15. cfg.c
  16. client.c
  17. cmd-attach-session.c
  18. cmd-bind-key.c
  19. cmd-break-pane.c
  20. cmd-capture-pane.c
  21. cmd-choose-tree.c
  22. cmd-command-prompt.c
  23. cmd-confirm-before.c
  24. cmd-copy-mode.c
  25. cmd-detach-client.c
  26. cmd-display-menu.c
  27. cmd-display-message.c
  28. cmd-display-panes.c
  29. cmd-find-window.c
  30. cmd-find.c
  31. cmd-if-shell.c
  32. cmd-join-pane.c
  33. cmd-kill-pane.c
  34. cmd-kill-server.c
  35. cmd-kill-session.c
  36. cmd-kill-window.c
  37. cmd-list-buffers.c
  38. cmd-list-clients.c
  39. cmd-list-keys.c
  40. cmd-list-panes.c
  41. cmd-list-sessions.c
  42. cmd-list-windows.c
  43. cmd-load-buffer.c
  44. cmd-lock-server.c
  45. cmd-move-window.c
  46. cmd-new-session.c
  47. cmd-new-window.c
  48. cmd-parse.y
  49. cmd-paste-buffer.c
  50. cmd-pipe-pane.c
  51. cmd-queue.c
  52. cmd-refresh-client.c
  53. cmd-rename-session.c
  54. cmd-rename-window.c
  55. cmd-resize-pane.c
  56. cmd-resize-window.c
  57. cmd-respawn-pane.c
  58. cmd-respawn-window.c
  59. cmd-rotate-window.c
  60. cmd-run-shell.c
  61. cmd-save-buffer.c
  62. cmd-select-layout.c
  63. cmd-select-pane.c
  64. cmd-select-window.c
  65. cmd-send-keys.c
  66. cmd-set-buffer.c
  67. cmd-set-environment.c
  68. cmd-set-option.c
  69. cmd-show-environment.c
  70. cmd-show-messages.c
  71. cmd-show-options.c
  72. cmd-source-file.c
  73. cmd-split-window.c
  74. cmd-swap-pane.c
  75. cmd-swap-window.c
  76. cmd-switch-client.c
  77. cmd-unbind-key.c
  78. cmd-wait-for.c
  79. cmd.c
  80. colour.c
  81. compat.h
  82. compat/
  83. configure.ac
  84. control-notify.c
  85. control.c
  86. environ.c
  87. example_tmux.conf
  88. file.c
  89. format-draw.c
  90. format.c
  91. grid-view.c
  92. grid.c
  93. input-keys.c
  94. input.c
  95. job.c
  96. key-bindings.c
  97. key-string.c
  98. layout-custom.c
  99. layout-set.c
  100. layout.c
  101. log.c
  102. logo/
  103. mdoc2man.awk
  104. menu.c
  105. mode-tree.c
  106. names.c
  107. notify.c
  108. options-table.c
  109. options.c
  110. osdep-aix.c
  111. osdep-cygwin.c
  112. osdep-darwin.c
  113. osdep-dragonfly.c
  114. osdep-freebsd.c
  115. osdep-hpux.c
  116. osdep-linux.c
  117. osdep-netbsd.c
  118. osdep-openbsd.c
  119. osdep-sunos.c
  120. osdep-unknown.c
  121. paste.c
  122. popup.c
  123. presentations/
  124. proc.c
  125. regress/
  126. regsub.c
  127. resize.c
  128. screen-redraw.c
  129. screen-write.c
  130. screen.c
  131. server-client.c
  132. server-fn.c
  133. server.c
  134. session.c
  135. spawn.c
  136. status.c
  137. style.c
  138. tmux.1
  139. tmux.c
  140. tmux.h
  141. tools/
  142. tty-acs.c
  143. tty-features.c
  144. tty-keys.c
  145. tty-term.c
  146. tty.c
  147. utf8.c
  148. window-buffer.c
  149. window-client.c
  150. window-clock.c
  151. window-copy.c
  152. window-tree.c
  153. window.c
  154. xmalloc.c
  155. xmalloc.h
  156. xterm-keys.c