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

如何理解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'


不需要在vimrc里面设置localmapleader的值就能使用vimwiki-local-mappings的快捷键.

例如:
命令:Vimwiki2HTML在vimwiki中默认绑定的快捷键为<leader>wh, 也就是说打开vimviki文件后, 在普通模式下快速按\wh这三个键即可生成相应的html文件了. 当然也可以自己重新定义快捷键,如下:

nmap <Leader>wc :Vimwiki2HTML

只需要在.vimrc中添加以上键匹配即可.
--------------------------------------------------------------
<leader>一般为\键, 可以自行修改<leader>代表的键值. 可以查看帮助:

:help mapleader

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

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

【热门文章】
【热门文章】