คำนำ : สิ่งนี้ไม่มีส่วนเกี่ยวข้องกับ Vim แต่ฉันจะแสดงให้คุณเห็นว่าฉันคิดว่าเป็นวิธีที่ "ดีที่สุด" ในการแทรกตัวละครเหล่านี้ไปไกล ระบบ digraph ของ Vim นั้นมากหรือน้อยเหมือนกัน แต่ใช้ได้กับ Vim เท่านั้น สิ่งนี้จะใช้ได้กับทุกแอปพลิเคชัน
สิ่งนี้จะใช้ได้กับระบบ X11 เท่านั้น (Linux, BSD, ฯลฯ ) สำหรับ Windows มี AllChars ยังไม่ได้รับการปรับปรุงในขณะที่ แต่ฉันสามารถยืนยันได้ดีกับ Windows 7 (ใช้งานได้ที่งานก่อนหน้าของฉัน) ฉันเชื่อว่า OS X ยังมีสิ่งอำนวยความสะดวกที่ดีในการทำสิ่งนี้ในระบบปฏิบัติการ หากคุณใช้ OS X ฉันขอแนะนำให้คุณลองดู แต่เนื่องจากฉันไม่เคยใช้ OS XI จริงๆไม่สามารถชี้ให้คุณเห็นได้
ด้านล่างนี้เป็นส่วนหนึ่งของบทความเว็บบล็อกร่างที่ฉันมีในขั้นตอน น่าเสียดายที่ไม่มีคู่มือที่ครอบคลุมอย่างแท้จริง (ยัง) และด้านล่างไม่ได้อธิบายคุณสมบัติทั้งหมดที่มี (ตัวอย่างเช่นบางส่วนเกี่ยวกับกุญแจล็อคหายไป) และอาจเขียนได้ดีกว่าในบางส่วน แต่ฉันคิดว่ามันเป็น ยังคง "มีประโยชน์เพียงพอ"
A 'ลำดับเขียน' จะกดComposeคีย์แล้วหนึ่งหรือตัวอักษรที่มากขึ้นในการผลิตตัวละครบางคนไม่พบบนแป้นพิมพ์ของคุณตัวอย่างเช่นการกด Composeทันทีตามด้วย"และอาจก่อให้เกิดaä
ตามค่าเริ่มต้นComposeจะไม่ผูกมัดกับคีย์ใด ๆ1 ; มักใช้Altปุ่มขวา(aka. Alt Gr) แต่คุณตั้งค่านี้เป็นปุ่มใดก็ได้ที่คุณต้องการ
ตั้งค่าโดยใช้ xmodmap
คุณสามารถใช้xmodmap
เพื่อตั้งค่านี้:
$ xmodmap -e 'keysym Alt_R = Multi_key' # Set it right Alt
$ xmodmap -e 'keysym Caps_Lock = Multi_key' # Set it to Caps Lock
$ xmodmap -e 'keysym F12 = Multi_key' # You're free to use *any* key, like F12
คุณอาจต้องการเพิ่มสิ่งนี้ลงใน~/.Xmodmap
ไฟล์ของคุณ2 :
! Set compose key
keysym Alt_R = Multi_key
ตั้งค่าโดยใช้ XKB
คุณยังสามารถตั้งค่าคีย์การเขียนเป็นตัวเลือกเป็น XKB ด้วย
setxkbmap
:
setxkbmap -option compose:ralt # Right alt
setxkbmap -option compose:caps # Caps Lock
หากต้องการทำให้สิ่งเหล่านี้เป็นแบบถาวรเพิ่มคำสั่งลงในไฟล์ X startup ของคุณหรือคุณสามารถตั้งค่าใน/etc/X11/xorg.conf
:
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbOptions" "compose:ralt"
#Option "XkbOptions" "compose:caps"
EndSection
หรือในสไตล์ที่ 'ทันสมัย' มากขึ้นคุณสามารถสร้างไฟล์ได้
/etc/X11/xorg.conf.d/90-compose.conf
:
Section "InputClass"
Identifier "Set compose key"
MatchIsKeyboard "on"
Option "XkbOptions" "compose:ralt"
EndSection
รายการของค่าที่เป็นไปได้ที่สามารถพบได้ในxkeyboard-config(7)
ส่วน 'ตำแหน่งของการเขียนที่สำคัญ' 3
การตั้งค่ากุญแจที่ตายแล้ว
คีย์ที่ตายแล้วส่วนใหญ่จะใช้ในการเพิ่มสำเนียงหรือการออกเสียงลงในจดหมาย มันทำงานโดย ... สิ่งที่ต้องทำ
'
keycode 133 = dead_greek NoSymbol SuperR
http://zuttobenkyou.wordpress.com/2011/08/24/xorg-using-the-us-international-altgr-intl-variant-keyboard-layout/
http://stackoverflow.com/questions/14922007/how-to-enter-greek-alpha-under-xor
keycode 48 = dead_grave apostrophe
<dead_grave> <space> : "`" grave # GRAVE ACCENT
<dead_grave> <dead_grave> : "`" grave # GRAVE ACCENT
<dead_grave> <a> : "À" agrave # LATIN CAPITAL LETTER A WITH GRAVE
การทำไฟล์ ~ / .XCompose
แฟ้มเขียนเริ่มต้นถ้ามีการขาดหายไปคือ~/.XCompose
/usr/share/X11/locale/$LANG/Compose
มีของคุณเอง~/.XCompose
แทนที่ค่าเริ่มต้น แต่คุณยังสามารถรวมค่าเริ่มต้นด้วย:
include "%L"
การเปลี่ยนแปลงในไฟล์เขียนจะมีผลเมื่อคุณรีสตาร์ทแอปพลิเคชัน คุณไม่จำเป็นต้องรีสตาร์ท X
เขียนรหัส
'การเขียนเรียงลำดับ' กำลังกดปุ่มComposeและอักขระหนึ่งตัวขึ้นไปเพื่อสร้างตัวละครตัวอย่างเช่น:
<Multi_key> <quotedbl> <a> : "ä" adiaeresis
หมายความว่าการกดComposeทันทีตามด้วย"และ
ก่อให้เกิดaä
<Multi_key>
แสดงว่าเรากำลังใช้Composeกุญแจ จากนั้นเราจะทำตามนี้ด้วยรายการของหนึ่งหรือมากกว่าหนึ่งปุ่มเหล่านี้จะต้องมีkeysyms
ซึ่งเป็นตัวแทนสัญลักษณ์ของคีย์ที่ใช้โดย X (ดูส่วน Keysyms)
ตามด้วย a :
, ตามด้วยผลลัพธ์
ผลลัพธ์:
<Multi_key> <a> : "ä" adiaeresis
<Multi_key> <b> <b> : "ä" adiaeresis
<Multi_key> <c> <c> <c> : "ä" adiaeresis
<Multi_key> Alt <d> : "ä" adiaeresis
<Multi_key> Ctrl <e> : "ä" adiaeresis
หมายเหตุ : ไฟล์เขียนแบบเป็นกรณีจึงA
เป็นไม่ได้a
เช่นเดียวกับ
กุญแจที่ตายแล้ว
ทำ
ทำให้มันทำงานใน GTK & Qt
ตั้งค่าตัวแปรสภาพแวดล้อมGTK_IM_MODULE
และการQT_IM_MODULE
xim
เชลล์เป้าหมาย:
# Make compose key work for GTK, Qt
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
C เชลล์:
# Make compose key work for GTK, Qt
setenv GTK_IM_MODULE xim
setenv QT_IM_MODULE xim
ดูสิ่งนี้ด้วย
ของฉัน ~/.XCompose
นี่คือ~/.XCompose
ว่าการใช้ฉัน ; ฉันใช้สคริปต์เพื่อสร้างสิ่งนี้ แต่ฉันเขียนทับมันโดยบังเอิญเมื่อรวบรวมมัน> _ <ดังนั้นฉันต้องเขียนมันใหม่
จดบันทึกบรรทัดนี้ด้วย:
<Multi_key> <i> <b> : "NL65AEGO0721647952"
การกดCompose ibจะแทรกสตริงนี้ (ทดสอบหมายเลข IBAN แบบสุ่ม); มีประโยชน์อย่างมากสำหรับการทดสอบแอปพลิเคชันที่จำเป็นต้องใช้หมายเลขดังกล่าวเพื่อสร้างวัตถุบางอย่าง (บุคคลองค์กร); XCompose ยังสามารถใช้เป็นเครื่องมือ "ตัวอย่าง" :-)
เชิงอรรถ
1: แป้นพิมพ์ UNIX บางตัวมีComposeคีย์เฉพาะ( เช่นอาทิตย์นี้ ) แต่นี่เป็นเรื่องธรรมดาในปัจจุบัน
2: ขึ้นอยู่กับการตั้งค่าที่มีอยู่ของคุณสิ่งนี้อาจหรือไม่สามารถอ่านได้เมื่อเริ่มต้นขึ้นอยู่กับการกำหนดค่าของคุณเพิ่มบรรทัดxmodmap ~/.Xmodmap
ไปที่
~/.xinitrc
หรือ~/.xsession
;
ดู Wiki ของ ArchLinuxด้วย
3: ทำซ้ำเพื่อประโยชน์ของคุณ:
Position of Compose key
+------------------------------------------------------+
|Option Description |
+------------------------------------------------------+
|compose:ralt Right Alt |
|compose:lwin Left Win |
|compose:lwin-altgr 3rd level of Left Win |
|compose:rwin Right Win |
|compose:rwin-altgr 3rd level of Right Win |
|compose:menu Menu |
|compose:menu-altgr 3rd level of Menu |
|compose:lctrl Left Ctrl |
|compose:lctrl-altgr 3rd level of Left Ctrl |
|compose:rctrl Right Ctrl |
|compose:rctrl-altgr 3rd level of Right Ctrl |
|compose:caps Caps Lock |
|compose:caps-altgr 3rd level of Caps Lock |
|compose:102 <Less/Greater> |
|compose:102-altgr 3rd level of <Less/Greater> |
|compose:paus Pause |
|compose:prsc PrtSc |
|compose:sclk Scroll Lock |
+------------------------------------------------------+