On 4/25/07, Tim Chase <[EMAIL PROTECTED]> wrote:
> I'm running vim in a console using gnome-terminal. I put these
> mappings in my .vimrc file:
>
> map <c-q> :mksession! ~/.vim/.session <cr>
> map <c-s> :source ~/.vim/.session <cr>
>
> Pressing those buttons (CTRL+Q or CTRL+S) doesn't work. When I map as
> below instead:
>
> map <F9> :mksession! ~/.vim/.session <cr>
> map <F10> :source ~/.vim/.session <cr>
>
> the commands work.
>
> What is causing this behavior? Is it the terminal capturing the CTRL+Q
> and CTRL+S keystrokes before they reach VIM?
Yes, the ^S and ^Q keystrokes are flow-control characters. I
don't have Gnome-term on hand, but it works much the same in
other terminal emulators (xterm, rxvt, etc). Control+S is the
"hey, stop sending stuff to this terminal until I have a chance
to catch up" character, and Control+Q is the "okay, I've caught
up, you can start sending stuff to my terminal again" character.
The terminal software may catch these before Vim gets a chance to
see them. You might poke around in your GT settings for a
setting like "flow control" or "XON/XOFF" and try to disable
that. It's not like your terminal runs on an 8-bit processor
with 16 bytes of buffer for your serial-I/O terminal any more
where a speedy 2400-baud modem might overwhelm your terminal's
ability to draw on the screen. ;)
-tim
There may be a way to change the XON/XOFF keystrokes, but in the past
I have found that it is too much work to be worth the effort. I would
suggest trying different keystrokes that don't already have meaning.
-fREW