Fork me on GitHub
Martynas Maciulevičius09:08:47

What should I do when I install vim-sexp together with conjure? When I install both then ,l waits for half a second until it works (vim-sexp insert at the end of the form). If I uninstall conjure then it doesn't map any of the ,ll and ,lr keys and then vim-sexp ,l works immediately. Their mappings can't be changed and to change them I basically have to do a fork. Is it that nobody tried to use them together?


I use it sets more comfortable vim mappings. For example the ,l in vim-sexp becomes >I


Likewise! I've never used vim-sexp without it.

Martynas Maciulevičius09:08:39

But in that plugin tpope says that These mappings supplement rather than replace the existing mappings So uh... not good 😕 Does this plugin define ,l? I'll try it I also found that in vim-sexp source code the author uses a variable to bind all bindings. So if I could sneak in my own variable instead of that one then I could bind all I want.


The other way to fix it if you don't want to use those would be to remap conjures mappings if sexp can't be remapped. Remapping is documented in :h conjure but it involves setting g: globals. If you remap every conjure mapping prefixed with l so there's no more conflicts you won't get the delay anymore.

Martynas Maciulevičius09:08:40

vim-sexp uses localleader kind of liberally so it's not only l mapping that would need to be changed. I found that they repeatedly use this: get(g:sexp_mappings, plug, s:sexp_mappings[plug]) but I don't yet know how to use it. I'll look into sources of tpope plugin because if I can instead override mappings using g:sexp_mappings then tpope's plugin isn't something useful. Edit: After trying tpope's plugin it looks like that he depends on vim-sexp and it also enables the <localleader>l mapping. So this is a problem because this is what I wanted to avoid. i.e. tpope's plugin only adds more mappings but not removes the ones that I want to remove.

Martynas Maciulevičius09:08:59

This is the fix for this one mapping (move vim-sexp ,l to something else):

let g:sexp_mappings = {
    \ 'sexp_round_head_wrap_list':      '<LocalLeader>yourkeys',
\ }
I really like that I can do this. Nice. All mappings:


if you don’t want to remap, you can update timeoutlen:'timeoutlen'


it waits for a second by default to see if there are any other keys coming before taking action


so depending on how fast you trigger things, you could set that to 200 (ms) or 50 (and match ttimeoutlen)

Martynas Maciulevičius15:08:20

Does anyone know how to highlight only a part of a keyword? In CIDER I have the first version but nvim gives me the second one. How can I highlight part of a keyword? They also highlight the / separator in white which is neat but I want to at least highlight the namespace first. I also created this issue but considering the other open issues they may never close it:


are you using treesitter highlighting, or something else?

Martynas Maciulevičius20:08:10

It's the basic one. I didn't set up anything else.

Martynas Maciulevičius11:08:21

Do you see this highlighting separately?