On 06/11/12 14:06, Ed Kostas wrote:
On Tuesday, November 6, 2012 12:50:49 AM UTC-2, MarcWeber wrote:
What I need now is a script that prevents user from entering the command mode 
when the cursor is on the REPL window.


If at all I'd remap <esc> to <esc><c-w>w so that the cursor moved to the

next window.. because otherwise you have to use <c-o> or <c-r>=.. hacks

to put the cursor into another window (using the keyboard).



By the way here it only gets messed up using o/O. When using ia the

cursor is put where it previously.



Because you know Vim now, you also understand that using "vim" mappings

for inserting and editing text is important for vimmers which is why

ConqueTerm may not be the perfect fit at all..



Anyway: back to the roots: If you need a terminal & vim why not just use

a terminal and vim?

Eg konsole supports tabs and split view as shown here:

http://www.pclinuxos.com/forum/index.php?topic=79651.0

(screet would do the same, kind of)



The editor, rlwrap and sbcl go crazy if I enter command mode on the REPL

window.



He/she must switch windows using Ctrl-O Ctrl-ww. I believe that

it is not difficult to write a script that will inhibit command mode on

the REPL window. Is it possible to remap the keys on the REPL window

only?

Yes:



fun! My()

   ConqueShell ...

   noremap <buffer> {lhs} {rhs}

endf

call My()



as mapping: map xx :call My()<cr>

then xx will start conque (and do the mapping)

as command: command -nargs=0 My call My()

then :My will start conque  (and do the mapping)



Of course you could also use auto command - but maybe they are overkill,

cause you eventually only want this ConqueTerm behaviour when using that

lisp REPL.



I suppose there is a way to give a tag to the REPL window. Then one

could remap the ESC key.

Yes: buffer vars: let b:my_tag = 1  if exists('b:my_tag') ...

Or use map <buffer> as shown previously.



I'd still recommend you having a quick glance at vim-addon-async, too.

Its deafult is to see a vim buffer like a vim buffer - editing is the

default - and you visually select text hitting enter to sent it to the

stdin of your repl.



If you have a look at the python/ruby implementation you seet hat even

vim's completion can be supported (which requires little work, though)



Of course there is no longer the <up> history, <c-h> open a vim managed

history instead.



The main difference is that its much easier to use all the vim goodies:

mapping, abbreviations, snippets, completions, ...

Eg there are plugins helping with brackets, you can use % to jump from (

to ) and much more.



Anyway - looks like you're very close to managing this yourself.



Marc Weber

Hi, Marc.

Both your suggestions worked fine. I mean, I installed konsole in a machine, 
and was able to run vim on a tab, and rlwrap sbcl on another tab, both visible.

The script also worked. However the script is slightly more complex than I 
thought. The problem is that rlwrap disables the Ctrl key. By the way, that is 
the reason for rlwrap preventing the debugger from going crazy. The solution I 
found was to map the semicolon, that is comment in Lisp, as the key that sends 
the focus to the text window. Of course, I need to quit vim from the text 
window. As for copy and paste, one can perform both operations with Lisp 
commands.



I use F11 to go to the next (or previous) window, as follows:

        :noremap  <F11>   <C-W>w
        :noremap! <F11>   <C-O><C-W>w
        :noremap  <S-F11> <C-W>W
        :noremap! <S-F11> <C-O><C-W>W

With a count, they go to the nth window from top, not the nth window from the current one.

In general, function keys F1-F12 (with or without Shift etc.) are the "safest" ones to use as the {lhs} of a Vim mapping, they aren't (except F1 and sometimes F10) bound to anything by default, unlike most of the other keys. Some of them (Shift-Alt-Fn and sometimes Alt-Fn on Linux) might be preempted by the OS, but in my experience Fn (without modifier) and Shift-Fn will (in most OSes) be passed to the application.


Lisp commands to copy and paste in Vim? Hm, there's no accounting for tastes I suppose. Next we'll see mappings for Esc-Meta-Alt-Ctrl-Shift-something… (and, yes, I found that acronym on the same page as VI-VI-VI for the Editor of the Beast; VIM-VIM-VIM might perhaps be the Editor of the Thousandfold Beast?)


Best regards,
Tony.
--
In Memphis, Tennessee, it is illegal for a woman to drive a car unless
there is a man either running or walking in front of it waving a red
flag to warn approaching motorists and pedestrians.

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to