diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-11-29 19:45:59 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-11-29 19:45:59 +0000 |
commit | 8714670713169b2fa3189575478e18b0c539d8da (patch) | |
tree | 00b992f9b24e90326528cfa4dc087a969dd321a5 | |
parent | 6ec1c645ce48e15709056d33e572452df1f73ac3 (diff) |
If VISUAL or EDITOR contains "vi", configure mode-keys and status-keys
to vi.
Based on a diff from martynas@, previously requested by a couple of
other people.
-rw-r--r-- | usr.bin/tmux/tmux.1 | 20 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.c | 18 |
2 files changed, 29 insertions, 9 deletions
diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1 index 2f45f26dd95..0b53cd6649d 100644 --- a/usr.bin/tmux/tmux.1 +++ b/usr.bin/tmux/tmux.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: tmux.1,v 1.190 2010/11/14 09:04:22 nicm Exp $ +.\" $OpenBSD: tmux.1,v 1.191 2010/11/29 19:45:58 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> .\" @@ -14,7 +14,7 @@ .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: November 14 2010 $ +.Dd $Mdocdate: November 29 2010 $ .Dt TMUX 1 .Os .Sh NAME @@ -1852,7 +1852,12 @@ or right justified. .Xc Use vi or emacs-style key bindings in the status line, for example at the command prompt. -Defaults to emacs. +The default is emacs, unless the +.Ev VISUAL +or +.Ev EDITOR +environment variables are set and contain the string +.Ql vi . .It Ic status-left Ar string Display .Ar string @@ -2140,7 +2145,14 @@ Set window modes foreground colour. .Op Ic vi | emacs .Xc Use vi or emacs-style key bindings in copy and choice modes. -Key bindings default to emacs. +As with the +.Ic status-keys +option, the default is emacs, unless +.Ev VISUAL +or +.Ev EDITOR +contains +.Ql vi . .Pp .It Xo Ic mode-mouse .Op Ic on | off diff --git a/usr.bin/tmux/tmux.c b/usr.bin/tmux/tmux.c index 995b111c03b..1f80ed3c581 100644 --- a/usr.bin/tmux/tmux.c +++ b/usr.bin/tmux/tmux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.c,v 1.93 2010/11/11 21:06:09 nicm Exp $ */ +/* $OpenBSD: tmux.c,v 1.94 2010/11/29 19:45:58 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -231,13 +231,13 @@ main(int argc, char **argv) struct options *oo, *so, *wo; struct keylist *keylist; char *s, *path, *label, *home, **var; - int opt, flags, quiet = 0; + int opt, flags, quiet, keys; #ifdef DEBUG malloc_options = (char *) "AFGJPX"; #endif - flags = 0; + quiet = flags = 0; label = path = NULL; login_shell = (**argv == '-'); while ((opt = getopt(argc, argv, "28c:df:lL:qS:uUv")) != -1) { @@ -359,7 +359,6 @@ main(int argc, char **argv) options_set_number(so, "status-fg", 0); options_set_number(so, "status-interval", 15); options_set_number(so, "status-justify", 0); - options_set_number(so, "status-keys", MODEKEY_EMACS); options_set_string(so, "status-left", "[#S]"); options_set_number(so, "status-left-attr", 0); options_set_number(so, "status-left-bg", 8); @@ -400,7 +399,6 @@ main(int argc, char **argv) options_set_number(wo, "mode-attr", 0); options_set_number(wo, "mode-bg", 3); options_set_number(wo, "mode-fg", 0); - options_set_number(wo, "mode-keys", MODEKEY_EMACS); options_set_number(wo, "mode-mouse", 0); options_set_number(wo, "monitor-activity", 0); options_set_string(wo, "monitor-content", "%s", ""); @@ -428,6 +426,16 @@ main(int argc, char **argv) options_set_number(wo, "utf8", 0); } + keys = MODEKEY_EMACS; + if ((s = getenv("VISUAL")) != NULL || (s = getenv("EDITOR")) != NULL) { + if (strrchr(s, '/') != NULL) + s = strrchr(s, '/') + 1; + if (strstr(s, "vi") != NULL) + keys = MODEKEY_VI; + } + options_set_number(so, "status-keys", keys); + options_set_number(wo, "mode-keys", keys); + /* Locate the configuration file. */ if (cfg_file == NULL) { home = getenv("HOME"); |