在Vim失踪的领导者

Kre*_*eki 6 vim

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

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

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

:let mapleader
> E121: Undefined variable: mapleader
:let mapleader = ','
:let mapleader
> mapleader          ,
Run Code Online (Sandbox Code Playgroud)

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

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

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

Con*_*ner 6

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

nnoremap <Leader>a :echo "test"<cr>
Run Code Online (Sandbox Code Playgroud)

然后我可以启动vim并点击\a进入test左下角.但是,如果您键入:let mapleader = ','然后执行,a它不起作用,因为您在映射后更改了leader.如果您再键入:nnoremap <Leader>a :echo "test"<cr>并重试,a,它将起作用.因此,:let mapleader =必须在使用的映射之前到来<Leader>.


rom*_*inl 6

请仔细遵循这些步骤......

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

    $ cd
    $ touch .vimrc
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

    <leader> works! It is set to ,
    
    Run Code Online (Sandbox Code Playgroud)

<leader> 但是,从一开始就没有用处,还有其他事情需要担心.

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

filetype plugin indent on
syntax on
set autoindent
set hidden
set incsearch
Run Code Online (Sandbox Code Playgroud)
  1. filetype plugin indent on 允许Vim识别您打开的文件的文件类型,并应用各种内置的文件类型特定设置(缩进规则,完成...).
  2. syntax on 打开语法高亮.
  3. set autoindent复制当前行的缩进,<CR>如果这样做,那么生活很糟糕.
  4. set hidden 允许您打开新文件或切换到另一个缓冲区而不保存对当前缓冲区的更改.
  5. set incsearch通过开启增量搜索/foo,使基于搜索的导航(,?bar)立即变得非常棒.

之后,您可以根据需要添加设置和映射.