From: Bart Schaefer <schaefer@brasslantern.com>
To: Jason Spiro <jasonspiro4@gmail.com>, zsh-workers@zsh.org
Subject: Re: Fwd: In Vi mode, show whether "insert" or "command" state is active
Date: Wed, 17 Dec 2014 00:23:22 -0800 [thread overview]
Message-ID: <141217002322.ZM32216@torch.brasslantern.com> (raw)
In-Reply-To: <CAN2X26=YUSe95T0aMHxTCccXAE7ZeZPBN2aR=4L_tssVxxJLSQ@mail.gmail.com>
On Dec 17, 2:13am, Jason Spiro wrote:
}
} ---------- Forwarded message ----------
}
} Zsh's Vi emulation does not show the user which mode is active. This
} is frustrating and confusing. (It's like an electric oven with no
} indicator to show whether the oven is on or off.)
}
} It would be very good if zsh, too, would show the user which mode was
} active. You can do this any way you like. I would like it if you did
} this by setting the cursor style, just as gVim does.
Check out this thread:
http://www.zsh.org/mla/users/2013/msg00534.html
(Requires ZSH_VERSION > 5.0.3 to avoid an infinite loop bug.)
} Here is how to set the cursor style (in supported terminals):
}
} Set cursor to blinking bar: echo -en "\e[5 q"
} Set cursor to blinking block: echo -en "\e[1 q"
This should do it for you (note that I don't have a terminal that
supports the #5 cursor so this is only partly tested):
zle-keymap-select() {
case $KEYMAP in
(vicmd) print -nR $'\e[5 q';;
(viins) print -nR $'\e[1 q';;
(*) print -nR $'\e[2 q';;
esac
}
zle -N zle-keymap-select
You will also need to run zle-keymap-select from zle-line-init to
set up the cursor properly on entry to the editor.
} The above commands definitely work in recent versions of iTerm2 (for
} Mac OS) and xterm. I haven't tested them in any other terminal
} emulators. Surely some terminal emulators do nothing at all in
} response to the above control sequences.
Gnome-terminal displays garbage characters, so this is not something
one can do in general. As far as I can tell even gVim does not have
this feature built in, you have to supply some .vimrc coding.
next prev parent reply other threads:[~2014-12-17 8:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-17 7:13 Jason Spiro
2014-12-17 7:58 ` Nathan Schwarz
2014-12-17 16:55 ` Bart Schaefer
2014-12-17 18:27 ` Oliver Kiddle
2014-12-17 8:23 ` Bart Schaefer [this message]
2014-12-22 0:07 Jason Spiro
2014-12-22 1:57 ` Bart Schaefer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=141217002322.ZM32216@torch.brasslantern.com \
--to=schaefer@brasslantern.com \
--cc=jasonspiro4@gmail.com \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).