預設將數字行變成符號行

預設將數字行變成符號行

身為一名程式設計師,我發現自己輸入符號的次數比輸入數字的次數多得多。因此,如果鍵盤上的數字行預設產生符號就好了。

最終結果應該是:6會產生^Shift+6會給出6

我曾嘗試切換到 Dvorak 一段時間,但陡峭的學習曲線和迫在眉睫的截止日期相結合並沒有使它成為一個有吸引力的解決方案。

理想情況下,我也希望在 Windows 上這樣做,但讓我們專注於 Debian,因為它是我的主要開發機器。

從我在網路上找到透過快速按下 Shift 按鈕啟動的「Shift Lock」功能與 Windows 上的功能完全一樣,但我找不到任何 *nix 參考。

編輯:理想情況下,解決方案不應幹擾非數字行鍵,例如,[但如果確實如此,我可以接受它(這{在 C 中比 更常見[)。

答案1

從你的問題中我了解到,你只需要某些按鍵就可以像按 Shift 時一樣工作,反之亦然。為此,您可以建立自己的自訂鍵盤佈局。為此,您可以下載 Microsoft Keyboard Layout CreatorMSSKLC然後使用它為您的系統建立自訂佈局。此外,在建立自訂佈局後,它應該要求您安裝建立的佈局,因此選擇「是」前往安裝程式所在的資料夾並安裝自訂佈局。建立自訂佈局後,您還需要重新啟動系統。此後,您只需從控制面板啟動它。

(適用於 Windows 8)

  1. 按 Windows 按鈕 + I(開啟「設定超級按鈕」選單)
  2. 點選鍵盤按鈕(右下角)
  3. 您應該會看到您的自訂佈局
  4. 選擇它
  5. 現在您的自訂佈局將被激活

另外,您還可以獲得有關 MSKLC 的完整教程這裡這裡。如果出現任何問題,請參閱這兩張圖。

答案2

從線程按shift+數字反轉角色來了這個 xmodmap 檔:

keycode  10 = exclam 1 exclam 1
keycode  11 = at 2 at 2
keycode  12 = numbersign 3 numbersign 3
keycode  13 = dollar 4 dollar 4
keycode  14 = percent 5 percent 5
keycode  15 = asciicircum 6 asciicircum 6
keycode  16 = ampersand 7 ampersand 7
keycode  17 = asterisk 8 asterisk 8
keycode  18 = parenleft 9 parenleft 9
keycode  19 = parenright 0 parenright 0

有關使用此文件的更多信息,請參閱上面的連結。

答案3

您可以使用dumpkeysand loadkeys(對於控制台)或xmodmap(對於 X)來重新定義給定鍵盤鍵的功能。xev可以告訴你 X 如何看待特定的按鍵輸入。

我建議您先列印全套鍵盤映射表達式;您的系統一開始的設定可能略有不同,在這種情況下,上述內容將不完全匹配。為此,只需執行xmodmap -pke(將鍵盤映射表列印為表達式)。

舉個例子,要重新映射1到X 中的!Shift+11,我們首先使用 xev 找出1鍵碼 10(在我的例子中;確保進行驗證)。若要重新映射鍵以反轉其移位功能:

xmodmap -e 'keycode 10 = exclam 1 exclam 1 exclamdown onesuperior exclamdown'

若要恢復正常功能(這與 列印的內容相符xmodmap -pke):

xmodmap -e 'keycode 10 = 1 exclam 1 exclam exclamdown onesuperior exclamdown'

這些變更會立即生效,並至少影響整個 X 會話(它們不是啟動 xmodmap 的應用程式的本機會話)。

一旦您有了一組按照您想要的方式設定鍵盤的 xmodmap 命令,請將它們儲存在 ~/.xmodmaprc 中,然後新增至 ~/.xsessionrc (如果不存在則建立它):

xmodmap ~/.xmodmaprc

您想要新增到 .xmodmaprc 的部分只是keycode XX = yyy ...命令列命令的一部分(即開關的參數-e)。

答案4

對於 BSD 作業系統,請查看此選項鍵盤佈局編輯器或者使用 XKB 建立 X11 的自訂鍵盤佈局

對於 Windows,請查看微軟鍵盤佈局創建器 1.4

這些似乎是我找到的最好的選擇。並不是說它們是唯一的選擇。

相關內容