1diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh
2index f80de36d5b6f5cd579edcd9be31d9e6f9f6aa2b1..b3058ceff37f2d5505fcb3e27bae7b5ef2e25de3 100644
3--- a/plugins/xcode/xcode.plugin.zsh
4+++ b/plugins/xcode/xcode.plugin.zsh
5@@ -17,6 +17,35 @@ alias xcb='xcodebuild'
6 alias xcp='xcode-select --print-path'
7 alias xcdd='rm -rf ~/Library/Developer/Xcode/DerivedData/*'
8 9+
10+# "XCode-SELect by Version" - select Xcode by just version number
11+# Uses naming convention:
12+# - different versions of Xcode are named Xcode-<version>.app or stored
13+# in a folder named Xcode-<version>
14+# - the special version name "-" refers to the "default" Xcode.app with no suffix
15+function xcselv {
16+ emulate -L zsh
17+ local version=$1
18+ local apps_dirs apps_dir apps app
19+ apps_dirs=( $HOME/Applications /Applications )
20+ for apps_dir ($apps_dirs); do
21+ if [[ $version == "-" ]]; then
22+ apps=( $apps_dir/Xcode.app $apps_dir/Xcode/Xcode.app )
23+ else
24+ apps=( $apps_dir/Xcode-$version.app $apps_dir/Xcode-$version/Xcode.app )
25+ fi
26+ for app ($apps); do
27+ if [[ -e "$app" ]]; then
28+ echo "selecting Xcode $version: $app"
29+ xcsel "$app"
30+ return
31+ fi
32+ done
33+ done
34+ echo "xcselv: Xcode version $version not found"
35+ return 1
36+}
37+
38 function simulator {
39 local devfolder
40 devfolder="$(xcode-select -p)"