我坐在这里感觉很傻 - vim帮助告诉我打CTRL](在帮助中关注链接)我无法得到它!?与^ Wc相同的问题(关闭分割窗口)
我有一个德国键盘,特别是CTRL]对我来说似乎没有用.
我该怎么办?
感谢您的帮助到目前为止,似乎工作除了CTRL]!知道如何让它工作吗?
大约两个月前我开始编程,我现在想,我在C#或Clojure中愚弄(我有严重的决策问题).无论如何; 我来自挪威,我们使用与英语国家不同的键盘布局.我不知道德国或弗朗西斯的键盘布局与我们的比较如何,但编码真的很痛苦(对于那些感兴趣的人来说,挪威的QWERTY布局).
无论如何; 深远的(),[]和{}真的让我的手指受伤,因为我必须要真正舒展我的手指.此外,虽然这是次要的,但它仍然让我很怪癖,<>也很痛苦.
所以,我想知道是否有人有关于布局的任何提示使用?是深远的(),[]而{}在英语QWERTY键盘布局更好或者是几乎一样的吗?最后; DVORAK实际上是一个很好的编程布局吗?
提前致谢 :)
此问题最初由我在Microsoft社区发布:
总结:我在Windows 10中使用Microsoft Keyboard Layout Creator 1.4创建了一个自定义键盘布局,但它只能部分工作.这不可以:
将两个击键组合成一个以键入"组合字母",例如"¨"+"u"="ü".它不应该用中文存在,但我想实现这一目标.
键入中文拼音和中文标点符号.在MS拼音IME中,我可以按shift切换中文拼音模式和英文模式.在拼音模式下,我可以将字母转换为拼音,从而获得汉字,但我的布局缺乏这个.而且,如果我在拼音模式下按"拼音"中的","它应该给我","(全长逗号),但这种布局无法做到这一点.
我正在考虑两种方法来解决这个问题:
将Microsoft拼音的键盘布局替换为我的布局(用我的布局替换MS拼音的英文部分)
将MS拼音的拼音部分复制到我的布局.
那么,我该如何解决这个问题呢?
在XP下运行VBA我能够调用ActivateKeyboardLayout将输入语言从英语切换到另一种语言.但是,这在Vista64下不再有效.
有任何建议或解决方法吗?
以前在XP下工作的代码类似于以下内容:
Private Declare Function ActivateKeyboardLayout Lib "user32" ( _
ByVal HKL As Long, ByVal flags As Integer) As Integer
Const aklPUNJABI As Long = &H4460446
ActivateKeyboardLayout aklPUNJABI, 0
Run Code Online (Sandbox Code Playgroud)
有人建议尝试
Public Declare Function ActivateKeyboardLayout Lib "user32" ( _
ByVal nkl As IntPtr, ByVal Flags As uint) As Integer
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我收到错误消息:
变量使用Visual Basic中不支持的自动化类型
在 Windows 中使用非英语输入键盘语言时,我无法模拟字符按键。
我尝试使用 KEYEVENTF_UNICODE 调用 SendInput():
KEYBDINPUT ki;
INPUT input;
int character = 0;
ki.wVk = 0;
ki.wScan = character;
ki.dwFlags = KEYEVENTF_UNICODE;
ki.time = 0;
ki.dwExtraInfo = 0;
input.type = INPUT_KEYBOARD;
input.ki = ki;
SendInput(1, &input, sizeof(INPUT));
Run Code Online (Sandbox Code Playgroud)
这实际上有效(当然,在我的代码中,我也在按下键后执行 KEYUP)...除了在 GTK+ 应用程序中(可能还有其他情况下它也不起作用)。
根据MSDN,如果指定了 KEYEVENTF_UNICODE,SendInput 将 WM_KEYDOWN 或 WM_KEYUP 消息发送到前台线程的消息队列,wParam 等于 VK_PACKET。一旦 GetMessage 或 PeekMessage 获得此消息,将消息传递给 TranslateMessage 会发布一条 WM_CHAR 消息,其中包含最初由 wScan 指定的 Unicode 字符。如果将这个 Unicode 字符发送到 ANSI 窗口,它将自动转换为适当的 ANSI 值。
所以我相信当 KEYEVENTF_UNICODE 被传递时,SendInput() 的功能是不同的......不像通常那样低级。
在我的一生中,我想不出任何其他方法让 SendInput() 为用户的键盘语言正确打印字符。例如,如果键盘输入语言是“瑞典语”,我不能让它输出'@'(而是打印出一个引号),我不能让它正确输出非ASCII字符,要么(重音字母等)。 …
这与这个问题完全相同; 但是,在接受的答案中链接的代码将近11年,代码中的这条评论会导致我的重复问题:
希望有一天由Xlib通过XmbLookupString()提供keysym - > UTF-8转换,理想情况下不必在X应用程序中完成.但我们还没有.
我们到了吗?我知道XwcLookupString,但有点......
wchar_t unicode = XKeySymToWideChar( keysym );
Run Code Online (Sandbox Code Playgroud)
...会更加简单和合理,并且无论何时添加或更改KeySyms都不需要更新.
X11/Xlib中是否有一个简单的函数可以将KeySym映射到它的Unicode等价物?
我无法在 Qt Creator 3.0(使用 Qt 5.2 构建)中更改键盘布局。这意味着当我开始输入英语时,我无法继续输入,例如,通过 Shift+Alt 组合输入俄语。
在另一个应用程序(例如 Firefox)中组合工作。
使用:Ubuntu 13.10。
我能做些什么来解决这个问题?谢谢!
仅查看示例源代码是不够的,而且我找不到有关该符号的任何官方文档KbdLayerDescriptor。所以我还有一些问题:
KBD_TYPE需要定义。每个整数值的目的是什么??[HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes],[HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts]但它似乎不是为了注册系统范围的键盘而需要完成的唯一注册表项。那么安装系统范围的键盘布局所需的注册表项是什么?我一直在尝试解决我正在处理的 SoftKeyboard 项目中的一个神秘问题。我所做的所有研究的问题根源可能与我创建的布局文件有关。Lint 抱怨超过 80 次的观看次数过多,并且它的类型对我的速度来说很好,但我事后对此做出了反应,无法弄清楚滞后的根源在哪里。
我已经完成了我能找到的所有 Android Manifest 技巧和 XML 技巧,尝试转换为新的约束布局相对布局使情况变得更糟。我不知道如何在 Android Studio 2.2RC Build 中使用 Trace View,所以不确定线程是否是问题所在。但我的问题是如何让这个文件更有效地改善延迟。
此外,有时当我按下一个键时它会触发而其他键它会错过,但是如果我在键盘画布区域上超快地随机切换我的所有手指,就像超快地敲击我的手指一样,输入似乎跟上我的输入事件,但输出轨迹落后很慢,比如落后 4-6 秒,这很烦人。对于 Play 上的所有键盘,我发现它们都没有这个问题,因为我可以超快地输入,并且当我停止输入时,输出也会同时停止。
所以我看到有很多人知道如何构建一个性能出色的键盘,但是当尝试快速输入时,这个键盘非常慢。此外,如果我像 SMS 消息一样输入大量数据,它会使键盘崩溃,而另一部分确实让我感到烦恼,就像此代码有缓冲区限制一样。
这里的限制是 30000 我只能粘贴布局文件的一部分,由于我没有足够的声誉,我无法回复..
这里的任何键盘大师都可以告诉我我错过了什么吗?
<?xml version="1.0" encoding="utf-8"?>
<!--suppress ALL -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clickable="false"
android:focusableInTouchMode="false"
android:gravity="bottom">
<LinearLayout
android:id="@+id/num_keyLay"
android:layout_width="match_parent"
android:layout_height="54.2dp"
android:orientation="horizontal"
android:weightSum="10"
android:baselineAligned="false">
<LinearLayout
android:id="@+id/ksOne_btn_LiLay"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/backgroud_black"
android:orientation="horizontal" >
<Button
android:id="@+id/ksOne_btn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@drawable/key_drwable_selector"
android:text="1"
android:textSize="25sp"
android:textColor="@android:color/white"
android:textStyle="bold"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/kstwo_btn_LiLay"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/backgroud_black" …Run Code Online (Sandbox Code Playgroud)我在 OS X 上使用 emacs、Karabiner 和Neo2 键盘布局(替代德语键盘布局)时遇到问题。\n使用 Capslock 作为 mod 键的第三和第五键盘平面无法正常工作。
\n\n我选择的键盘布局是 Neo2,我在切换到的 Mac 上设置了它,使用GitHub 上的jgosmanns neo2-layout-osx结合建议的Karabiner及其启用的规则。
\n\n在其他编辑器(如 TextEdit)上,前 5 个平面可以正常工作,\n但在 emacs 上,第 3 个平面和第 5 个平面则无法正常工作。我假设 emacs 以某种方式使用 Capslock 键。也许需要类似的东西才能在常规德语键盘布局上(setq ns-right-alternate-modifier \'none)键入类似~或的字符。@
或者Karabiner和emacs之间存在问题,因为在OS X上需要Karabiner才能进入Neo2的第三,第五和第六平面。
\n\n最小的 init.el:
\n\n(setq inhibit-startup-message t)\n\n(setq mac-function-modifier \'control\n mac-control-modifier \'control\n mac-option-modifier \'alt\n mac-command-modifier \'meta\n ns-right-alternate-modifier \'none)\nRun Code Online (Sandbox Code Playgroud)\n\n我怎样才能至少启用所需字符的 3. 平面:
\n\n\xe2\x80\xa6_[]^!<>=& \\/{}*?()-:@ #$|~+%"\';