2012-11-19 75 views
5

我花了近兩年的時間編程,直到我決定將Textmate for Vim切換到目前爲止我非常喜歡它。然而,玩了幾天後,我碰到了第一個問題。Vim中的領導者缺失

作爲一個初學者,我和很多人一樣爲Janus接觸,但最終我決定從頭開始創建自己的配置,以更好地瞭解這些東西。我支持我的配置,並開始寫我的新.vimrc文件。但後來(很早)我注意到領導者鑰匙沒有工作,當我按下它時什麼也不做,只是發出嘟嘟聲。我沒有改變領導者的關鍵,也沒有做任何關鍵映射,所以我有點驚訝。

因此,我再次刪除我的.vimrc文件和.vim目錄以啓動一個乾淨的狀態。它沒有幫助。所以我打開Vim,試圖重新配置一個領導到另一個關鍵,看看它是否有幫助。

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

看起來不錯,但沒有真正發生。即使當我把它放在不同的鍵上時,我的Mac只會發出蜂鳴聲,就是這樣。我的主目錄中沒有vim配置,沒有插件,沒有任何東西。在'.vimrc'而不是vim console中設置領導者也沒有幫助。

我在這裏看到關於按鍵超時的一些討論,但它沒有讓我到任何地方。

我有點被卡在這裏,即使我喜歡,也不能在日常工作中使用Vim。任何幫助將不勝感激。

+0

如果你沒有vimrc,你用什麼地圖來測試mapleader的功能? –

+0

我只是按下領導鍵,我希望它在下面的控制檯中顯示,就像輸入':'時一樣。請在下面Conner的答案下查看我的評論。 – Kreeki

回答

5

認真執行這些步驟......

  1. $HOME目錄創建一個空白.vimrc文件:

    $ cd 
    $ touch .vimrc 
    

    的Vim現在應該在「不兼容」模式,這是我們都希望運行。

  2. 打開空白~/.vimrc並添加這些行:

    let mapleader="," 
    nnoremap <leader>a :echo("\<leader\> works! It is set to <leader>")<CR> 
    
  3. ,a,你應該獲得在命令行下面的消息。

    <leader> works! It is set to , 
    

<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)立即真棒通過增加搜索。

之後,由您根據需要添加設置和映射,由您決定。

5

它正在工作,但變化之前的映射不會理解已更改的引導角色。舉例來說,如果我有.vimrc,說

nnoremap <Leader>a :echo "test"<cr> 

然後我就可以開始啓動vim打\a得到test左下方。但是,如果您鍵入:let mapleader = ',',那麼執行,a它不起作用,因爲您在映射後更改了首領。如果您然後鍵入:nnoremap <Leader>a :echo "test"<cr>並再次嘗試,a它將工作。因此,:let mapleader =必須出現在使用<Leader>的映射之前。

+0

我明白,但那是奇怪的事情。我把'nnoremap a:echo'test''放在'.vimrc'中(只有那裏),去vim,按'\ a'。它會發出''嗶聲,並使我像'a'一樣進入插入模式。如果在映射之前將'mapleader =「,」''添加到'.vimrc'並啓動Vim,也是如此。 – Kreeki

+0

vim是什麼版本? – Conner

+0

終端中的MacVim和Vim都是7.3 – Kreeki