如何理解vim里面的mapleader和localmapleader?


本人新手,最近学习使用vimwkiki插件,但是里面的部分快捷键无法使用。
3. Mappings |vimwiki-mappings|
3.1. Global mappings |vimwiki-global-mappings|
3.2. Local mappings |vimwiki-local-mappings|
------------------------------------------------------------------------

  1. vimwiki_<Leader>wh*

<Leader>wh Convert current wiki page to HTML.
Maps to |:Vimwiki2HTML|
To remap: >
:nmap <Leader>wc <Plug>Vimwiki2HTML
------------------------------------------------------------------------
根据vimwiki的帮助文档来看,出问题的在3.2节描述的local mappings.

百度搜索着两个key words,都是重复的内容;Google之,又有些看不懂 T.T

需要在vimrc里面设置localmapleader的值才能使用vimwiki-local-mappings的快捷键吗?

我使用的vimwiki版本是 Version: 2.0.1 'stu'

localmapleader mapleader gvim vim

看家柴犬桐花花 11 years, 2 months ago

引用vim中文文档( http://vimcdoc.sourceforge.net )的解释:

在一个全局插件里应该使用 <Leader> 而在一个文件类型插件里应该用 <LocalLeader>。
"mapleader" 和 "maplocalleader" 可以是相同的。尽管如此,如果你把它们设为不同,
全局插件和文件类型插件的映射冲突的机会是不是会小一点呢?例如,你可以保持把
"mapleader" 设置为缺省的反斜杠,而设置 "maplocalleader" 为下划线。

我遇到的Vimwiki2HTML快捷键无法使用的问题是<buffer>在"作怪".

用pathogen安装完vimwiki插件后,在~/.vim/bundle/vimwiki/ftplugin下有一个vimwiki.vim文件,里面有一个转换wiki到HTML的快捷键定义如下:

if !hasmapto('<Plug>Vimwiki2HTML')
  nmap <buffer> <Leader>wh <Plug>Vimwiki2HTML
endif
nnoremap <script><buffer>
      \ <Plug>Vimwiki2HTML :Vimwiki2HTML<CR>

<buffer>限定了这个快捷键的作用范围,那么这个快捷键就只对后缀名称是vimwiki的文件有效了,对其他格式的文件不起作用.

我之前对ftplugin不熟悉,对快捷键的作用域也不熟悉,所以没调出这个快捷键来.在这里也谢谢网友@xuelang的热心帮助.

最后再补充一点,mapleader和localmapleader都是可自定义的.

let mapleader = "\\"
let localmapleader = ","

如果你也遇到vimwiki某些快捷键无法使用的问题的时候,还可以使用

:set filetype=vimwiki

希望这个回答对遇到同样问题的网友有所帮助. :)

橙子大姨妈 answered 11 years, 2 months ago

Your Answer