2014-09-18 23 views
0

在我的vimrc,我有以下幾點:的vimrc鍵重映射似乎沒有工作,但在工作:Ex模式

imap <S-Tab> <Esc><<i 

這將取消縮進1標籤長度Shift + Tab鍵在插入模式。當我在vimrc中有這個時,Shift-Tab就好像它只是一個Tab。但是,如果我運行下面的:Ex模式:

:imap <S-Tab> <Esc><<i 

重映射工作正常。有誰知道什麼可能導致這個問題?在vimrc中沒有其他重映射。我跑

strace -o vim_strace vim 

驗證正確的vimrc來源,並沒有其他奇怪的vimrc來源。

有趣的是,我在本地機器上具有相同的確切vimrc,它工作正常。也就是說,這個問題只發生在我被ssh進入的遠程機器上。

有沒有人有任何想法可能有助於解決這個煩人的問題?

回答

1

您甚至不需要映射,因爲您可以在插入模式下使用內置命令<c-d>。把它看作減少縮進。有關更多信息,請參見:h i_ctrl_d

如果你想使用<s-tab>然後插入映射<s-tab><c-d>以下到您~/.vimrc

inoremap <s-tab> <c-d> 

應當指出的是,並非所有終端可以<tab><s-tab>區分。

+0

嗨,感謝您的回覆。我知道,但想基本重映射到相反,因爲這種行爲在許多其他應用程序中感覺更加自然。無論我應該怎樣也不應該使用什麼,我不應該能夠映射它嗎? – ben 2014-09-18 17:18:07

1

也許映射被覆蓋。

:verbose imap <S-Tab> 

會告訴你。

也可能是<S-Tab>在終端上沒有正確處理,而Vim只是收到一個普通的<Tab>。您可以通過在插入模式下輸入<C-V><S-Tab>進行檢查,並檢查插入的內容。