如何避免Alt组合键在GVIM下变成特殊字符

2011-12-02 20:01:52 +08:00
 coderoar
我的键盘上Alt键在其它程序下都没问题,唯独在GVIM里Alt组合键会被转义成特殊字符,跟AltGr/Compose key的效果有些类似,但是产生的字符又跟它们不太一样。

输入Alt加字母输出以下字符:
áâãäåæçèéêëìíîïðñòóôõö÷øùú

输入Alt加数字输出以下字符:
±²³´µ¶·¸¹°

怎么避免这种转义效果呢?
5317 次点击
所在节点    问与答
7 条回复
yangg
2011-12-02 21:02:44 +08:00
同问,我的macvim也一样,
Rice
2011-12-02 21:16:54 +08:00
好像要在vimrc里加一段代码
coderoar
2011-12-02 21:19:55 +08:00
@Rice 什么代码,能提示一下吗?
Rice
2011-12-02 21:22:58 +08:00
@coderoar 我是直接copy网上的。不知道代码是干什么的。


set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
yangg
2011-12-02 21:24:23 +08:00
ls代码是设置diff的,比较文件用的,跟这个没关系,
xell
2011-12-02 23:21:55 +08:00
也许帮助中的 :h digraph 有相关的说明?
coderoar
2011-12-03 08:16:34 +08:00
@xell "The digraphs are easier to remember than the decimal number that can be entered with CTRL-V (see |i_CTRL-V|)." 这个说的是Ctrl-v组合键,没有提到Alt键。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/22660

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX