2011-04-15 186 views
2

試圖做到以下幾點在.vimrc裏:vim編輯vimrc無法正常工作?

" Define map leader 
let mapleader = "," 
let g:mapleader = "," 

" Fast editing of the .vimrc 
map <leader>e :e! ~/.vimrc<cr> 

(從http://amix.dk/vim/vimrc.html

但每當我試圖通過鍵入:,e我收到此錯誤信息運行命令:

E481: No range allowed 

我是vim的新手(目前正在運行Nettuts視頻系列),這使我瘋狂......我做錯了什麼?我已經退出並重新啓動了幾次vim,沒有任何改變。

我也試過(出視頻教程)這樣的:

nmap ,ev :tabedit $MYVIMRC<cr> 

......這給了我這樣的:E492: Not an editor command: ,ev

的命令不會顯示當我運行:map

n ,ev   :tabedit $MYVIMRC<CR> 

幫助!

+1

沒有必要同時設置'let mapleader ='和'let g:mapleader ='。只留下後者,首先是完全相同的語句(除非你在函數中運行它,它等於'let l:mapleader =')。在任何'map'命令之前使用'nore':'noremap','nnoremap'。你會感謝我提出這個建議,一旦你想要做一些像'noremap:;'+'noremap; :'。 – ZyX 2012-03-31 06:30:24

回答

3

只需鍵入,e而不是:,e

+0

謝謝,我知道這很簡單。 *屁股靠在牆上* – neezer 2011-04-15 22:43:10

0

如果您希望將其作爲ex :命令,則可以使用cmap而不是map。見:help cmap

" Should work: 
cmap <leader>e e! ~/.vimrc<cr> 

但正如你定義它,你應該能夠與單純,e

0

運行它,我用:

nmap <silent> ,ev :e $MYVIMRC<CR>

還可以調整與製圖:so $MYVIMRC<CR>,這樣它就可以生成你的vimrc,而不必退出Vim以使更改生效(顯然你必須使用ev以外的其他東西)。

+0

如果您已經在編輯它,那麼使用',ev' launch':so $ MYVIMRC'來代替':e $ MYVIMRC'並不是不可能的。 – ZyX 2012-03-31 06:31:46