Monday, July 2, 2012

Re: finding the originating map command

On 2012-07-02, Tim Johnson wrote:
> I have mapped ,cs to a function called CheckSyntax
> if I execute
> : map ,cs
> I get
> ,cs * :call CheckSyntax()<CR>
> if I execute
> :verbose map ,cs
> I get
> ,cs * :call CheckSyntax()<CR>
> Last set from
> /Users/http/run/baker/journal/000_main__journal.vim
> which helpful is tracking down mappings I might not need or want.
>
> However I would like to be able to
> 1)Find where the mapping originated
> i.e. I have the mapping in ~/.vim/plugin/tj_code_insert.vim

I don't think Vim remembers any place but the last where a mapping
was defined. However, you can start Vim like this,

$ vim -V15verbose.out ...

and capture all the ex commands to the file verbose.out. Then you
can open that file and search for

map\s\+,cs\>

or filter verbose.out with something like this

$ grep 'map[^I ][^I ]*,cs\>\|^[^l]' verbose.out | grep -C2 map

to find the various places where that mapping was defined. Those ^I
pairs are literal tabs. The "\|^[^l]" is there to capture all the
lines saying what file is being sourced, function being called,
etc., without all the lines beginning with "line " other than the
one(s) defining your mapping.

> 2)Find where a function originated
> i.e. where is CheckSyntax defined?

:verbose function CheckSyntax

will tell you where the function was last defined.

HTH,
Gary

--
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

No comments:

Post a Comment