2012-03-10 66 views
4

我在vimrc文件中遇到以下幾行,無法弄清楚它們應該做什麼以及它們應該如何工作。我被使用$符號拋棄了。它有什麼特別的含義,還是像任何其他角色一樣經常使用?無法找出一些vimrc設置

" Parenthesis/bracket expanding 
vnoremap $1 <esc>`>a)<esc>`<i(<esc> 
vnoremap $2 <esc>`>a]<esc>`<i[<esc> 
vnoremap $3 <esc>`>a}<esc>`<i{<esc> 
vnoremap $$ <esc>`>a"<esc>`<i"<esc> 
vnoremap $q <esc>`>a'<esc>`<i'<esc> 
vnoremap $e <esc>`>a"<esc>`<i"<esc> 

" Map auto complete of (, ", ', [ 
inoremap $1()<esc>i 
inoremap $2 []<esc>i 
inoremap $3 {}<esc>i 
inoremap $4 {<esc>o}<esc>O 
inoremap $q ''<esc>i 
inoremap $e ""<esc>i 
inoremap $t <><esc>i 

如果有人有興趣。 This是鏈接到vimrc

+1

':h mapmodes'可能會有所幫助。 – 2012-03-10 07:51:02

+0

Andrew,我熟悉映射的工作方式。我不確定這裏的$符號的含義。我沒有在mapmode中找到答案。有什麼特別的小節我應該尋找? – kshenoy 2012-03-10 08:13:05

+2

'$'不是特別特殊,它只是映射左側序列中的第一個鍵(兩個鍵)。查看我的答案以獲得更全面的解釋。 – Johnsyweb 2012-03-10 08:58:20

回答

8

看看其中兩個。

首先是一個visual-mode mapping

" Parenthesis/bracket expanding 
vnoremap $1 <esc>`>a)<esc>`<i(<esc> 

這種包裝在()的選擇,當你鍵入$ 。首先它跳到選擇('>)和append s a )的末尾,然後跳到選擇的開頭('<)和insert(

這是一個insert-mode mapping

" Map auto complete of (, ", ', [ 
inoremap $1()<esc>i 

這將插入()當你輸入$ 和葉兩個括號之間光標。

+1

啊,學到了一些新東西 - 如何使用'>和'<。謝謝 – kshenoy 2012-03-10 17:44:16

+0

@ Ronin420:樂於助人。 – Johnsyweb 2012-03-11 06:12:53