มีรูปแบบแป้นพิมพ์ US International บน Linux ที่เลียนแบบพฤติกรรมของ Windows หรือไม่


13

ฉันคุ้นเคยกับการใช้ US International เป็นรูปแบบแป้นพิมพ์ อย่างไรก็ตามการใช้งานนั้นมีความแตกต่างอย่างมากระหว่าง Windows และ Linux (ในกรณีของฉัน - อาจเป็นปัญหา GTK เนื่องจาก GTK ทำงานเหมือนกันใน Windows)

รูปแบบใช้ปุ่มตายตัวอย่างสำหรับคีย์เช่น', ", ^& c อนุญาตให้ป้อนอักขระได้ง่ายด้วยเครื่องหมายกำกับเสียง บน Windows การกดคีย์ตายแล้วคีย์ที่ไม่มีคู่เชื่อมโยงส่งผลให้อักขระของคีย์ตาย (เมื่อจับคู่กับช่องว่าง) และอักขระจากคีย์ที่สอง ตัวอย่าง: การกด", aอัตราผลตอบแทน“A” แต่กด', sอัตราผลตอบแทน“ของ” ในขณะที่มีการจับคู่ไม่มีและ's

ตอนนี้มีภาษาที่เรียกว่าภาษาอังกฤษซึ่งใช้ตัวอักษรสองตัวนี้บ่อยๆและเนื่องจากมันทำงานบน Windows เพื่อพิมพ์มันตามปกติมันเป็นหน่วยความจำของกล้ามเนื้อสำหรับฉันตอนนี้ สิ่งที่ทำให้ฉันมีปัญหา:

บน Linux (และ GTK บน Windows) มีคือการจับคู่หา'และs(ในหลาย ๆคนอื่น ๆ ) ส่งผลś(ซึ่งในที่สุดก็นำไปสู่การให้ฉันบ่อยพิมพ์“ของ”) ดังนั้นพิมพ์“มัน” ฉันต้องพิมพ์',         , sที่สิ้นสุด

มีชุดค่าผสมอื่น ๆ ที่ฉันไม่คุ้นเคย ในบรรดาเหล่านั้นคือสำหรับคู่ที่ไม่มีอยู่ก็ไม่มีอะไรเป็นผล การพิมพ์“ ฉัน” จะให้ผลลัพธ์เป็น“ ฉัน” การกดปุ่มหนึ่งในสองครั้งนั้นส่งผลให้มีการเว้นระยะห่างซึ่งทำให้นิสัยการพิมพ์สตริงของฉันหายไปโดยการพิมพ์เครื่องหมายคำพูดทั้งคู่ก่อน

เรื่องสั้น ๆ สั้น ๆ : ไม่มีเลย์เอาต์ของ US International ที่ให้มาดูเหมือนจะทำงานเหมือนกับใน Windows - มีอะไรบ้างที่ใช้งานได้เหมือนกัน? หรือโอกาสที่จะกำหนดค่าด้วยวิธีใด? แม้ว่าการพิมพ์ s ด้วยสำเนียงเฉียบพลันหรือการออกเสียงระยะห่างอาจเป็นเรื่องดี แต่ก็ไม่จำเป็นสำหรับฉัน


1
สำหรับใครก็ตามที่สงสัยว่าทำไมฉันถึงใช้ US International แทนที่จะเป็นอย่างอื่นฉันมาจากเยอรมันและต้องการพิมพ์สิ่งต่าง ๆ เช่นä, ö, ü, ßในบางครั้ง แต่นักออกแบบการเขียนโปรแกรมภาษาส่วนใหญ่ออกแบบภาษาของพวกเขาสำหรับรูปแบบเดียวดังนั้นผู้คนต้องหันไปใช้คีย์ผสมที่แตกหักเพื่อป้อนอักขระเช่นเครื่องหมายปีกกาหรือเครื่องหมายแบ็กสแลช
Joey

คุณสามารถใช้ AHK หรือโซลูชันที่คล้ายกันเพื่อแปลงสตริงที่อยู่ระหว่างดำเนินการผ่านการทำ hotscripting หรือไม่ ฉันไม่แน่ใจว่ามันเล่นกับ Linux ได้ดีเพียงใดนี่คือหัวข้อที่เกี่ยวข้อง
Arctiic

คำตอบ:


6

ความเป็นไปได้อย่างหนึ่งคือหลีกเลี่ยงการใช้กุญแจที่ตายแล้วและพิมพ์ตัวอักษรเน้นเสียงด้วยปุ่มเขียนแทน ตัวอย่างเช่นพิมพ์เพื่อป้อนCompose " a äคุณจะต้องเลือกตัวเลือกรูปแบบแป้นพิมพ์ที่มีComposeคีย์ ตัวเลือกทั่วไปคือกุญแจทางด้านซ้ายของCtrlปุ่มขวา(ซึ่งฉันคิดว่าใช้ Windows Menu) ข้อได้เปรียบComposeคือคุณสามารถพิมพ์ตัวละครแฟนซีจำนวนมากโดยไม่ต้องเปลี่ยนเค้าโครงหลักของคุณ ข้อเสียคือใช้เวลาสามกดแทนสองสำหรับตัวอักษรที่เน้นเสียง

หรือคุณสามารถกำหนดค่าเอฟเฟกต์ของคีย์เดดคีย์ได้ด้วยการสร้างไฟล์ชื่อ.XCompose(หมายเหตุ CApitalization) ในโฮมไดเร็กตอรี่ของคุณและแสดงรายการชุดค่าผสมที่คุณต้องการ สิ่งที่ต้องการ:

รวม "/usr/share/X11/locale/en_US.UTF-8/Compose"

<dead_acute> <space>: "'" apostrophe
<dead_acute> <exclam>: "'!"
<dead_acute> <quotebl>: "'\" "
# ฯลฯ ...
<dead_acute> <a>: "á"
<dead_acute> <b>: "'b"
# ฯลฯ ...

ไวยากรณ์ค่อนข้างง่าย: ลำดับของปุ่มด้านซ้ายของที่:จะกลายเป็นสตริงระหว่างทางด้านขวาของ"" :คำพิเศษทางด้านขวาคือ keysym (เช่นชื่อของคีย์) ที่สอดคล้องกับลำดับของคีย์นี้ มันไม่สำคัญมาก ทุกสิ่งตั้งแต่ a #ถึงท้ายบรรทัดจะถูกละเว้น

เปลี่ยนบรรทัดแรกให้ชี้ไปที่ไฟล์ระบบหากการแจกจ่ายของคุณอยู่ในตำแหน่งอื่น คุณสามารถดูในไฟล์นี้สำหรับตัวอย่างไวยากรณ์เพิ่มเติม <Multi_key>เป็นชื่ออื่นสำหรับComposeคีย์

ทางซ้ายชื่อระหว่าง<วงเล็บมุม>คือ keysyms คุณสามารถค้นหารายการของ keysyms ใน/usr/include/X11/keysymdef.h(ไฟล์นี้อยู่ในแพ็คเกจการพัฒนาเช่นx11proto-core-devบน Ubuntu)

ใช่มันคือการพิมพ์จำนวนมาก แต่คุณควรจะสามารถทำให้มันเป็นไปได้โดยอัตโนมัติด้วยการคัดลอกและวางชิ้นส่วนที่keysymdef.hฉลาดจำนวนเล็กน้อย สิ่งที่จะช่วยให้คุณสามารถใช้รหัสเลขฐานสิบหกทางด้านขวาเพื่อสร้างสตริงทางขวาด้วยไวยากรณ์"\ x dd ": turn เช่น

#define XK_exclam 0x0021 / * U + 0021 ข้อสรุปเครื่องหมาย * /

เข้าไป

<dead_acute> <exclam>: "'\ x21"

ในที่สุดคุณสามารถตั้งค่ารูปแบบแป้นพิมพ์ด้วยปุ่มตายและComposeกุญแจ เป็นภาษาเยอรมันคุณอาจตั้งค่า"เป็นกุญแจตาย หากคุณกำลังเดินทางไปเส้นทางนั้นตัวเลือกที่ง่ายที่สุดคือการใช้ GUI เพื่อตั้งค่าแป้นพิมพ์โดยไม่มีคีย์ตายและ.Xmodmapไฟล์สำหรับรหัสตายซึ่งมีบางอย่างเช่น

keysym apostrophe = apostrophe dead_quotedbl

1
ตกลงฉันจะดูมัน (ไม่ได้อยู่ที่เครื่องอื่นตอนนี้) การใช้ Compose ไม่ใช่ทางเลือกเนื่องจากฉันจะต้องเรียนรู้หน่วยความจำของกล้ามเนื้ออีกครั้งและ Linux ไม่ใช่ระบบหลักของฉัน และอย่าคิดว่าเพียงเพราะฉันเป็นคนเยอรมันฉันไม่ต้องการอะไรเลยนอกจาก umlauts ;-) มีหลายคำที่นำเข้ามาจากภาษาอื่น ๆ ที่ใช้สำเนียงร้ายแรงหรือแหลมเช่นกัน
Joey

มันอาจจะเป็นการดีกว่าถ้าคุณเริ่มต้นด้วยการแทนที่ชุดค่าผสมที่คุณมีปัญหาและเพิ่มลงในตารางเมื่อคุณพบสิ่งใหม่ที่ทำให้เกิดข้อผิดพลาดเช่น <dead_acute> <s> : "'s"
RolKau

คุณอาจต้องตั้งค่าGTK_IM_MODULE=ximให้ใช้ลำดับการเขียนที่กำหนดไว้~/.XComposeไม่ใช่ในตัว GTK (!)
RolKau

3

ฉันรู้ว่าคำถามนี้ได้รับการ "แก้ไข" ในขณะที่ อย่างไรก็ตามฉันต้องการนำเสนอวิธีแก้ปัญหาของฉันซึ่งรวมสิ่งที่ค้นพบจากหน้านี้กับการทดสอบและการทดลองจำนวนมาก

Win US Intl for Linuxเป็นชุดของสคริปต์ที่ฉันเขียนเพื่อแก้ปัญหาการมีปัญหาเกี่ยวกับรูปแบบแป้นพิมพ์ US Native ของ Linux เช่นเดียวกับ OP ที่เขียน ฉันใช้มันเป็นส่วนใหญ่เพราะภาษาแม่ของฉันเป็นภาษาสเปนและฉันยังคงใช้ฟอรัมภาษาอังกฤษข้อความการสนทนาและอื่น ๆ มากมาย (เช่นไซต์นี้)

หมายเหตุ: นี่คล้ายกันจริง (ไม่เท่ากันทั้งหมด) กับลักษณะการทำงานของ Windows XP US - รูปแบบแป้นพิมพ์สากล

คุณสามารถไปที่http://tamh.info/en/win-us-intl-4-linux/เพื่อตรวจสอบ ฉันอยู่ในขั้นตอนการทำให้ดีขึ้นโดยการเพิ่มรายการ XCompose เพิ่มเติมสำหรับกรณีแนวเขตอื่น ๆ อีกหลายกรณีรวมถึงการเปลี่ยนแปลงอื่น ๆ


3
ลิงค์ไม่ทำงาน
ทิงก์


1

ดังนั้นจึงมีวิธีแก้ปัญหาเมื่อมีคนโพสต์ที่นี่มี repo github ที่สามารถใช้งานได้: https://github.com/raelgc/win_us_intl นี่คือสิ่งที่คุณต้องการทำ:

  1. ดาวน์โหลดไฟล์ zip

  2. แตกไฟล์ได้ทุกที่ที่คุณต้องการโฟกัสของคุณควรอยู่ที่ไฟล์ XCompose

  3. เปิดไฟล์ XCompose ด้วยโปรแกรมแก้ไขข้อความที่คุณต้องการจากนั้นใส่เสียงร้องประกอบด้วย "/usr/share/X11/locale/en_US.UTF-8/Compose"บรรทัดดังนี้: include "% L"

  4. ย้ายไฟล์ XCompose ไปยังไดเร็กทอรี~ /

  5. แก้ไข:

    • ขั้นตอนนี้ไม่ต้องการอีกต่อไปมันจะทำงานได้โดยไม่ต้องใช้ลินุกซ์รุ่นใหม่ทั้งหมดหากไม่ได้ผลสำหรับคุณให้ทำขั้นตอนนี้เฉพาะเมื่อคุณรู้ว่าคุณกำลังทำอะไรเพราะ XIM มีปัญหาที่ทราบแล้ว
    • แก้ไข ~ / .profileของคุณและส่งออก GTK_IM_MODULE = "xim"ในตอนท้ายของไฟล์
  6. แก้ไข:

    • หากคุณกำลังใช้ GNOME: IBus มาพร้อมกับสภาพแวดล้อมนี้มาก่อนและการเปลี่ยนเป็นวิธีการป้อนข้อมูลอื่นจะไม่มีผลกระทบใด ๆ เพราะ GNOME จะเริ่มต้นต่อไปและกำหนดค่าตัวแปรที่สำคัญ
    • หากคุณไม่ต้องการใช้ IBus ให้พิมพ์คำสั่งนี้ในเทอร์มินัล: im-config -n uim
  7. Reboot

หมายเหตุ:สำหรับฉันโซลูชันนี้ใช้ไม่ได้หากไม่มีขั้นตอนที่ 5 ดังนั้นหากคุณรู้วิธีช่วยเหลือฉันและผู้อื่นในสถานการณ์เดียวกับฉันนี่คือลิงก์ไปยังคำถามอื่นที่ฉันยกมา: ระบบของฉันไม่อ่าน ไฟล์ XCompose

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.