und*_*oeg 10 c++ ubuntu text codeblocks
我在Ubuntu 10.10上使用Code :: Blocks.我已连接Mac键盘并将键盘设置设为"Swiss German Mac".现在每当我写一个等号,然后是一个空格(类似宽度= 100)我得到错误消息错误:stray'\ 302'在程序中.
我知道这个错误意味着文本文件中有一个非标准字符.
当我删除空格字符时,程序编译得很好.这意味着Code :: Blocks会添加某种特殊字符.但我不明白为什么会这样.任何人都有一个想法.
'\ 302'代表什么角色?
[更新]我进一步调查了这个问题.当我使用组合移位+空格时,我得到了这个迷路.现在我知道它不会经常发生.但它仍然相当烦人,特别是在编写代码时...有人知道是否有办法在X11中关闭这个组合?
[求助]感谢无用的回答,我能够解决"问题".它实际上更像是一个功能.Shift + space默认创建了spacenolinebreak.所以通过改变xmodmap
xmodmap -e "keycode 65 = space space space space space space"
Run Code Online (Sandbox Code Playgroud)
这个行为被覆盖了,现在一切正常.
谢谢!
\ 302表示编译器遇到的字节值的八进制表示.它转换为二进制的11000010,这让我觉得它是两个字节的utf-8序列的开始.那么这个序列必须是:
11000010 10??????
Run Code Online (Sandbox Code Playgroud)
它编码二进制unicode点10 ??????,它可以是从U + 80到U + BF的任何东西.
从U + 80开始的几个字符是特殊空格和中断,通常不会在文本编辑器中显示.
可能不是你的编辑器而是Xorg,由于你的键盘设置而发出这些字符.尝试切换到通用的美式键盘并测试问题是否仍然存在.
既然你确定它是由击球引起的shift+space,你可以检查X本身在做什么.首先,从命令行运行xev,点击shift+space并检查输出.例如,我看到:
$ xev
KeyPress event, serial 29, synthetic NO, window 0x2000001,
root 0x3a, subw 0x0, time 4114211795, (-576,-249), root:(414,593),
state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 29, synthetic NO, window 0x2000001,
root 0x3a, subw 0x0, time 4114213059, (-576,-249), root:(414,593),
state 0x1, keycode 65 (keysym 0x20, space), same_screen YES,
XLookupString gives 1 bytes: (20) " "
XmbLookupString gives 1 bytes: (20) " "
XFilterEvent returns: False
...
Run Code Online (Sandbox Code Playgroud)
然后,运行xmodmap -pk并查找键码(空格应该是65,如上所示,但检查你的xev输出).如果你看到类似的东西
65 0x0020 (space)
Run Code Online (Sandbox Code Playgroud)
然后X没有这样做.在另一方面,如果我选择哪一个字符键是通过修改shift,我看到这样的事情:
58 0x006d (m) 0x004d (M)
Run Code Online (Sandbox Code Playgroud)
如果您的密钥代码有两个或更多密钥,则X是罪魁祸首.在这种情况下,类似的东西xmodmap -e 'keycode 65 space'应该工作.
| 归档时间: |
|
| 查看次数: |
48026 次 |
| 最近记录: |