10

Vim には spf13 パッケージを使用しています。ただし、テキストを入力してエスケープを押すと、奇妙な文字が追加されます。

たとえば、これを入力してエスケープを押すと、

hello

私はこれを得る:

hellopumvisible() ? "\" : "\

私の .vimrc ファイルには、次のようなマッピングがあります。これが原因である可能性があります。

" some convenient mappings
inoremap <expr> <Esc>      pumvisible() ? "\<C-e>" : "\<Esc>"
inoremap <expr> <CR>       pumvisible() ? "\<C-y>" : "\<CR>"
inoremap <expr> <Down>     pumvisible() ? "\<C-n>" : "\<Down>"
inoremap <expr> <Up>       pumvisible() ? "\<C-p>" : "\<Up>"
inoremap <expr> <C-d>      pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<C-d>"
inoremap <expr> <C-u>      pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<C-u>"

http://vim.wikia.com/wiki/Improve_completion_popup_menuから取ったものだと思います。しかし、何らかの理由で、これは私に奇妙な動作を与えています。何かアドバイス?

編集: これが出力です:inoremap <esc>

i <Esc> *@pumvisible() ? '<C-E>' : '<C-R>=<SNR>32_FlushBuffer()<CR>pumvisible() ? "\<C-E>" : "\<Esc>"'

i <Esc> * pumvisible() ? "\<C-E>" : "\<Esc>"

Windows 8 で Vim 7.3 を使用しています。

解決

autoclose プラグインがマッピングに干渉しています。ここに削除する手順を書きました: http://crossplatform.net/dev/vim-spf13-writes-random-characters-when-pressing-escape.html。今はうまくいきます。

4

2 に答える 2

14

おそらく、これはおそらくFAQです。そして、これは他の人にも役立ちます。そのため、上記のコメント行から回答をコピーしました。

vim のマッピングに問題がある場合。

ひとまず確認:verbose inoremap

問題のあるキーがわかっている場合は、指定されたキーで実行します:verbose inoremap <esc>

于 2012-11-30T00:09:23.017 に答える