在Vim失踪的领导者

时间:2012-11-19 00:27:27

标签: vim

我花了将近两年的编程时间,直到我决定将Textmate切换为Vim,到目前为止我喜欢它。然而,在玩了几天后,我遇到了第一个问题。

作为初学者,我和很多人一样接触了Janus,但最后我决定从头开始创建自己的配置,以便更好地了解这些内容。我支持我的配置并开始编写我的新.vimrc文件。但是后来(非常早)我注意到领导键不起作用,当我按下它时什么也没做,它只是发出哔哔声。我没有改变领导者的关键,也没有进行任何关键映射,所以我有点惊讶。

所以我再一次删除了我的.vimrc文件和.vim目录以开始一个干净的状态。它没有任何帮助。所以我打开了Vim并试图将一个领导者重新配置为一个不同的密钥,看它是否有帮助。

:let mapleader
> E121: Undefined variable: mapleader
:let mapleader = ','
:let mapleader
> mapleader          ,

看起来很好,但没有发生任何事。即使我把它放在一个不同的键下,我的Mac也会发出哔哔声。我的主目录中没有vim配置,没有插件,没有。在' .vimrc'中设置领导者而不是vim控制台也没有帮助。

我在这里看到了关于按键超时的一些讨论,但它没有把我带到任何地方。

我有点被困在这里,即使我喜欢,也无法将Vim用于我的日常工作。任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:5)

它正在运行,但更改前的映射将无法理解已更改的领导者角色。例如,如果我有一个说

的.vimrc
nnoremap <Leader>a :echo "test"<cr>

然后我可以启动vim并点击\a以获得左下方的test。但是,如果您键入:let mapleader = ',',那么执行,a它不起作用,因为您在映射后更改了leader。如果您再键入:nnoremap <Leader>a :echo "test"<cr>并再次尝试,a,则会有效。因此,:let mapleader =必须在使用<Leader>的映射之前出现。

答案 1 :(得分:5)

请仔细执行以下步骤......

  1. .vimrc目录中创建一个空白$HOME文件:

    $ cd
    $ touch .vimrc
    

    Vim现在应该以“nocompatible”模式运行,这是我们都想要的。

  2. 打开空白~/.vimrc并添加以下行:

    let mapleader=","
    nnoremap <leader>a :echo("\<leader\> works! It is set to <leader>")<CR>
    
  3. 点击,a,您应该在命令行中获取以下消息。

    <leader> works! It is set to ,
    
  4. <leader>从一开始可能没用,但还有其他事情要担心。

    无论如何,从那里开始,我建议你添加一些非自以为是的设置,让你的生活更轻松:

    filetype plugin indent on
    syntax on
    set autoindent
    set hidden
    set incsearch
    
    1. filetype plugin indent on允许Vim识别您打开的文件的文件类型,并应用各种内置的文件类型特定设置(缩进规则,完成...)。
    2. syntax on打开语法高亮显示。
    3. set autoindent复制当前行的缩进,如果关闭,<CR>生活会非常糟糕。
    4. set hidden允许您打开新文件或切换到另一个缓冲区而不保存对当前缓冲区的更改。
    5. set incsearch通过启用增量搜索,立即启用基于搜索的导航(/foo?bar awesome
    6. 之后,您可以根据需要添加设置和映射。