2016-08-09 40 views
2

考慮我.vimrc以下行:Vim的:重新映射在插入模式下的美元符號

autocmd Filetype tex inoremap <buffer> $ $$^[i

目的是插入TEX文件兩個美元符號,當我在插入模式下鍵入一個,類似於如何自動關閉括號的作品。

但是,無論何時我打開一個TeX文件,Vim只會打印消息No mapping found。我也試圖逃過美元符號(... inoremap \$ $$^[i),但這似乎沒有什麼差別。

+0

爲什麼'$$^[i'而不是'$$'? – SibiCoder

+0

@SibiCoder'^ [i'將光標置於美元符號之間('^ ['是'ESC')。 – mgunyho

+0

順便說一句,你可以寫''而不是'^ [',更容易理解和寫 – Elisha

回答

1

想通了。美元符號之間的空格是一個非破壞性空間(鍵入$需要在我的鍵盤上按AltGr,這與空間結合在Unix上產生了非破壞性空間)。將其更改爲常規空間解決了問題。

顯然我多次犯過同樣的錯誤,因爲我在嘗試找出問題的原因時,在我的配置周圍的各個地方重新輸入了該命令。

0

你的問題是,你的VIM認爲你的tex文件爲plaintex文件類型。 你應該行

let g:tex_flavor = "latex"

添加到您的.vimrc文件,使其認識到tex文件作爲TeX的。

所以,我相信你想那些行添加到您的.vimrc文件:

let g:tex_flavor = "latex" 
autocmd Filetype tex inoremap <buffer> $ $$^[i 

你可以找到此問題的詳細信息:
https://superuser.com/questions/208177/vim-and-tex-filetypes-plaintex-vs-tex

+0

事實並非如此,因爲我已在'.vimrc'中設置'g:latex_flavor'。 「找不到映射」消息也表明該命令得到執行。 – mgunyho