2010-11-21 56 views
5

我需要在non-gui模式下重新定義Vim的鍵盤映射。如何在Vim中設置元函數組合?

我只是不明白,爲什麼下面的命令不起作用:

:set <M-F5>=^[[15~ 

"E518: Unknown option: <M-F5>=^[[15~" 

而單獨F5鍵或Meta與非功能鍵映射做工作:

:set <F5>=^[[15~ 

"ok" 

:set <M-space>=^[[15~ 

"ok" 

如何用Vim中的功能鍵F1-F12重新定義Alt/Meta?

Thx在前進。

大衛

更新:問題修正 在我的.vimrc,我有以下組合鍵映射

autocmd Filetype python noremap <buffer> <silent> <M-F9> :w !pylint -E %<CR> 

,但它確實在gVim的唯一工作。 很遺憾,它不適用於非Gui版本的Vim,因爲Vim收到了轉義序列「^ [[20〜]」而不是直接的Meta-F9鍵碼。

+0

真的'set'可以用來映射按鍵?我使用'map'。 ':map '。 – khachik 2010-11-21 15:22:55

+0

對不起,我的意思是重置鍵碼組合,而不是映射。我很抱歉。 – 2010-11-21 16:52:27

回答

1

下面是Vim的維基一個例子:

inoremap <M-i> <Tab> 

看看這裏:

在不工作的情況下,試試這個:

inoremap <ESC>i <Tab> 

請注意,這是一種黑客攻擊,並會產生一些您可能需要忍受的奇怪事情。

功能鍵,這樣的事情應該工作:

nnoremap <ESC><F9> :ls<CR> 
+0

我很害怕這不是我的問題的答案。 – 2010-11-21 16:40:20

+0

好的,讓我看看我是否理解 - 您想重新定義Alt-F1等鍵來執行某些操作?如果是這樣,您可以使用':nnoremap :ls '來映射Alt-F3以列出所有緩衝區。那是你想要的還是不是? – 2010-11-21 16:43:38

+0

我一般用noremap 映射鍵組合來運行一些動作。它在GUI模式下工作(gVim),因爲它直接映射Alt/Meta鍵。然而,Xterm中的vim(non-gui)將Meta keypress識別爲轉義序列。我需要SET 轉義序列,然後映射它。 – 2010-11-21 16:47:05