首页  >  问答  >  正文

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

PHPzPHPz2712 天前1045

全部回复(2)我来回复

  • PHP中文网

    PHP中文网2017-05-16 16:44:29

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

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

    回复
    0
  • 黄舟

    黄舟2017-05-16 16:44:29

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

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

    nmap <Leader>wc :Vimwiki2HTML

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

    :help mapleader

    回复
    0
  • 取消回复