diff --git a/README.md b/README.md
index b874d210..78f593f9 100644
--- a/README.md
+++ b/README.md
@@ -42,8 +42,8 @@ tools that do one thing well.
* [1 How It Works](#section_1)
* [2 Installation](#section_2)
* [3 Usage](#section_3)
- * [3.1 set-default](#section_3.1)
- * [3.2 set-local](#section_3.2)
+ * [3.1 default](#section_3.1)
+ * [3.2 local](#section_3.2)
* [3.3 versions](#section_3.3)
* [3.4 version](#section_3.4)
* [3.5 rehash](#section_3.5)
@@ -122,26 +122,32 @@ when installing a gem that provides a binary).
Like `git`, the `rbenv` command delegates to subcommands based on its
first argument. The most common subcommands are:
-### 3.1 set-default
+### 3.1 default
Sets the default version of Ruby to be used in all shells by writing
the version name to the `~/.rbenv/default` file. This version can be
overridden by a per-project `.rbenv-version` file, or by setting the
`RBENV_VERSION` environment variable.
- $ rbenv set-default 1.9.2-p290
+ $ rbenv default 1.9.2-p290
The special version name `system` tells rbenv to use the system Ruby
(detected by searching your `$PATH`).
-### 3.2 set-local
+When run without a version number the currently configured default
+version is reported.
+
+### 3.2 local
Sets a local per-project Ruby version by writing the version name to
an `.rbenv-version` file in the current directory. This version
overrides the default, and can be overridden itself by setting the
`RBENV_VERSION` environment variable.
- $ rbenv set-local rbx-1.2.4
+ $ rbenv local rbx-1.2.4
+
+When run without a version number the currently configured local
+version is reported.
### 3.3 versions
diff --git a/completions/rbenv.bash b/completions/rbenv.bash
index 0e8a383d..3ad2aa21 100644
--- a/completions/rbenv.bash
+++ b/completions/rbenv.bash
@@ -17,7 +17,7 @@ _rbenv() {
local prev="${COMP_WORDS[COMP_CWORD-1]}"
case "$prev" in
- set-* | prefix )
+ default | local | prefix )
_rbenv_versions
;;
* )
diff --git a/libexec/rbenv-default b/libexec/rbenv-default
new file mode 100755
index 00000000..56f1276e
--- /dev/null
+++ b/libexec/rbenv-default
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash -e
+
+RBENV_VERSION="$1"
+VERSION_FILE="${HOME}/.rbenv/default"
+if [ -z "$RBENV_VERSION" ]; then
+ if [[ -e "$VERSION_FILE" ]]; then
+ cat "$VERSION_FILE"
+ else
+ echo "No default version configured - set with: rbenv default "
+ fi
+else
+ # Make sure the specified version is installed
+ rbenv-prefix "$RBENV_VERSION" >/dev/null
+
+ echo "$RBENV_VERSION" > "$VERSION_FILE"
+fi
diff --git a/libexec/rbenv-help b/libexec/rbenv-help
index 8820b200..4acb7dc6 100755
--- a/libexec/rbenv-help
+++ b/libexec/rbenv-help
@@ -22,23 +22,23 @@ case "$1" in
Some useful rbenv commands are:
commands List all commands
rehash Rehash rbenv shims (run this after installing binaries)
- set-default Set the default Ruby version
- set-local Set a local directory-specific Ruby version
+ default Set or show the default Ruby version
+ local Set or show the local directory-specific Ruby version
version Show the current Ruby version
versions List all Ruby versions known by rbenv
See 'rbenv help ' for more information on a specific command.
For more information, see: https://github.com/sstephenson/rbenv#readme"
;;
-set-default) echo "usage: rbenv set-default
+default) echo "usage: rbenv default
Sets the default Ruby version. You can override the default at any time
-by setting a directory-specific version with \`rbenv set-local' or by
+by setting a directory-specific version with \`rbenv local' or by
setting the RBENV_VERSION environment variable.
$(print_set_version)"
;;
-set-local) echo "usage: rbenv set-local
+local) echo "usage: rbenv local
Sets the local directory-specific Ruby version by writing the version
name to a file named '.rbenv-version'.
@@ -46,7 +46,7 @@ name to a file named '.rbenv-version'.
When you run a Ruby command, rbenv will look for an '.rbenv-version'
file in the current directory and each parent directory. If no such
file is found in the tree, rbenv will use the default Ruby version
-specified with \`rbenv set-default', or the version specified in the
+specified with \`rbenv default', or the version specified in the
RBENV_VERSION environment variable.
$(print_set_version)"
diff --git a/libexec/rbenv-local b/libexec/rbenv-local
new file mode 100755
index 00000000..cfc72067
--- /dev/null
+++ b/libexec/rbenv-local
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash -e
+
+RBENV_VERSION="$1"
+VERSION_FILE=".rbenv-version"
+if [ -z "$RBENV_VERSION" ]; then
+ if [[ -e "$VERSION_FILE" ]]; then
+ cat "$VERSION_FILE"
+ else
+ echo "No local version configured - set with: rbenv local "
+ fi
+else
+ # Make sure the specified version is installed
+ rbenv-prefix "$RBENV_VERSION" >/dev/null
+
+ echo "$RBENV_VERSION" > "$VERSION_FILE"
+fi
+
diff --git a/libexec/rbenv-set-default b/libexec/rbenv-set-default
index ba6bbb5c..cff1eb09 100755
--- a/libexec/rbenv-set-default
+++ b/libexec/rbenv-set-default
@@ -1,13 +1,5 @@
#!/usr/bin/env bash
set -e
-RBENV_VERSION="$1"
-if [ -z "$RBENV_VERSION" ]; then
- echo "usage: rbenv set-default VERSION" >&2
- exit 1
-fi
-
-# Make sure the specified version is installed
-rbenv-prefix "$RBENV_VERSION" >/dev/null
-
-echo "$RBENV_VERSION" > "${HOME}/.rbenv/default"
+echo "set-default has been renamed to default" >&2
+rbenv-default "$@"
diff --git a/libexec/rbenv-set-local b/libexec/rbenv-set-local
index 7ce0fe2f..a93ec24e 100755
--- a/libexec/rbenv-set-local
+++ b/libexec/rbenv-set-local
@@ -1,13 +1,5 @@
#!/usr/bin/env bash
set -e
-RBENV_VERSION="$1"
-if [ -z "$RBENV_VERSION" ]; then
- echo "usage: rbenv set-local VERSION" >&2
- exit 1
-fi
-
-# Make sure the specified version is installed
-rbenv-prefix "$RBENV_VERSION" >/dev/null
-
-echo "$RBENV_VERSION" > .rbenv-version
+echo "set-local has been renamed to local" >&2
+rbenv-local "$@"