วิธีที่ง่ายที่สุดในการแทรกอักขระ Unicode ลงในเอกสารคืออะไร


28

เมื่อเขียนเอกสารเป็นครั้งคราวฉันต้องการแทรกอักขระ Unicode ลงในข้อความ บางครั้งฉันรู้รหัสตัวอักษรและบางครั้งฉันก็ค้นหาบนเว็บ

ขณะนี้ฉันไปที่โหมดแทรกแล้วใช้<Ctrl-V>u{four digit hex number}ซึ่งอาจลำบากมาก มีวิธีที่ง่ายกว่าในการแทรกอักขระ (อาจเป็นรูปแบบของการวาง)?


อีกคำถามคือ "กรณีพิเศษ" ของคำถามทั่วไปนี้ คำตอบจะเหมือนกัน ... ความคิดเห็นของฉันยังมี: ใช้สิ่งอำนวยความสะดวกของคุณกับ OS (ไม่ว่ามันจะเป็นอะไร) หรือโปรแกรมอื่น ๆ ในระบบปฏิบัติการ (สำหรับตัวอย่างเมื่อฉันใช้ Windows ฉันชอบใช้ AllChars ซึ่งเลียนแบบ X11 เขียนคีย์มันทำงานได้ในทุกโปรแกรม)
Martin Tournoij

ใช่ว่าเป็นกรณีพิเศษและคำตอบนั้นพิเศษสำหรับมัน คุณไม่คิดว่าอาจจะมีวิธีการแก้ปัญหาแบบทั่วไปมากขึ้นที่รวมสิ่งต่างๆมากมายที่ผู้คนไม่ได้พิจารณาเมื่อดูกรณีพิเศษ
Martin York

เราสามารถทำให้คำถามนั้นสามัญมากขึ้นหรือทำเครื่องหมายว่าเป็นผู้ล่อลวงของคนนี้ (แม้ว่าจะเป็นก่อนหน้านี้); ฉันไม่สนใจเช่นนี้ แต่ฉันไม่คิดว่าการมีคำถามทั้งสองอย่างนี้จะช่วยให้ทุกคนในระยะยาว :-)
Martin Tournoij

ถ้าฉันสามารถควบคุมโลก บางทีเราควรปล่อยให้มันยืนสักวันหรือสองวันถ้ามันรวบรวมคำตอบที่ไม่เหมือนใครที่สามารถแยกมันออกจากคำถามอื่นได้ หากยังไม่ได้รับคำตอบหรือคำตอบนั้นซ้ำกันให้ปิด / ลบ
Martin York

เอาล่ะ .. ฉันเห็นด้วยคำถามอื่น ๆ ไม่มีคำตอบที่ดีและคำถามนี้ควรดึงดูดคนที่ดีกว่า (หวังว่า) ... การแก้ไขคำถามอื่น ๆ (เพื่อให้ทั่วไปมากขึ้น) ยังคงทิ้งไว้โดยมี upvoted อยู่เป็นจำนวนมาก คำตอบที่จัดการเฉพาะกับเส้นประ em เพื่อที่ว่าไม่ดีทั้ง ... ดังนั้นผมจึงได้ถอนการลงคะแนนเสียงสนิทของฉันและเร็วที่สุดเท่าที่นี้ได้รับคำตอบที่ดีบางอย่างที่ฉันจะออกเสียงลงคะแนน oone อื่น ๆ ล่อหนึ่งนี้ (แม้ว่า ก่อนหน้านี้) ... ฉันแน่นอนไม่สามารถควบคุมสิ่งที่คนอื่นเลือกที่จะลงคะแนนได้
Martin Tournoij

คำตอบ:


23

คำนำ : สิ่งนี้ไม่มีส่วนเกี่ยวข้องกับ 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_MODULExim

เชลล์เป้าหมาย:

# 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                     |
    +------------------------------------------------------+

1
สำหรับ Windows ให้ใช้Wincomposeแทน Allchars มันทำตามที่พูดไว้ในกระป๋อง ฉันใช้ Allchars จนพบ Wincompose ข้อ จำกัด ของการเขียนคือคุณไม่สามารถมีชุดค่าผสมที่น่าจดจำในการเข้าถึงตัวละครทั้งหมดเฉพาะชุดที่คุณใช้บ่อยหรือมีการสลายตัวแบบลอจิคัล
Gilles 'SO- หยุดความชั่วร้าย'

@Gilles ขอบคุณ; WinCompose ดูดี คุณถูกต้องที่คุณสามารถป้อนชุดอักขระที่ใช้บ่อยที่สุดได้อย่าง จำกัด สำหรับฉันนี่เพียงพอแล้ว> 95% ของเวลา สำหรับส่วนที่เหลือผมใช้UniView ... ฉันไม่ได้ตระหนักถึงสิ่งที่มีความหมายดี ...
มาร์ติน Tournoij

สำหรับตัวละครที่ไม่ค่อยได้ใช้ฉันใช้Shapecatcher (ไม่มีการรวมตัวแก้ไขที่ฉันรู้) หรือฉันพิมพ์ชื่อตัวละคร ( C-x 8 RETในตัวแก้ไขที่ไม่ใช่ vi ฉันไม่รู้ว่า Vim มีลักษณะคล้ายกัน)
Gilles 'หยุดชั่วร้าย'

1
ผู้ใช้ KDE ไม่สามารถใช้วิธีนี้เช่นKDE ขับไล่ความรับผิดชอบสำหรับการใช้คุณลักษณะนี้เพื่อ XorgและXorg ขับไล่ไป QtและQt ขับไล่กลับไป Xorg ผมปรึกษาเรื่องนี้ในหน้าของฉันเกี่ยวกับข้อความ RTL พิมพ์
dotancohen

@dancancenen ดูเหมือนว่าจะมีปัญหาอื่น (เหมือนในคำขอคุณสมบัติ)
Martin Tournoij

20

ในการแทรกตัวอักษร Unicode เช่นสัญลักษณ์ยูโรหรือสัญลักษณ์ลิขสิทธิ์หรือเครื่องหมายกำกับเสียงเช่นเครื่องหมายอุมเลาท์หรือเครื่องหมายเน้นเสียงเยอรมันdigraphsสามารถนำมาใช้ได้

ตัวอย่างเช่นในการกดโหมดแทรก Ctrl + kและพิมพ์ดังต่อไปนี้:

  • สเปน: a'สำหรับá, E'สำหรับÉ , n?สำหรับñ,
  • ภาษาเยอรมัน: a:สำหรับä , ssสำหรับß,
  • ตัวอักษรเน้นเสียงอื่น ๆ : a!สำหรับà, a>สำหรับ, âสำหรับê , a?สำหรับã,
  • กรีก: a*สำหรับα(อัลฟา), b*สำหรับβ(เบต้า),g*สำหรับγ(แกมม่า), d*สำหรับδ(เดลต้า)
  • หมายเลขสแควร์: 22สำหรับ², 33หรือ³
  • สกุลเงิน: Euสำหรับ (ยูโร), Pdสำหรับ£(ปอนด์),
  • Co สำหรับ © (ลิขสิทธิ์) DGสำหรับ°(ปริญญา)
  • OKสำหรับ,XXสำหรับ, Sbสำหรับ(กระสุน)
  • เครื่องหมายวรรคตอน: -Nสำหรับ(en dash),-Mสำหรับ(em dash)

เมื่อตั้งค่าตัวเลือก digraph ( :set dg) คุณยังสามารถใช้วิธีการต่อไปนี้:

  • aBackspace:สำหรับä,EBackspaceuสำหรับฯลฯ

หากต้องการแสดงประเภทของกราฟที่กำหนดไว้ในปัจจุบัน: :digraphs ( :dig)

ที่มา: การป้อนอักขระพิเศษที่ Vim Wikiaไซต์


OS X

หากคุณใช้ OS X เป็นเรื่องง่ายมากที่จะพิมพ์ตัวอักษรที่เน้นเสียงได้ทุกที่ด้วยวิธีการต่อไปนี้:

  • Option+ eแล้วaสำหรับá, eสำหรับé, iสำหรับíและที่คล้ายกัน
  • Option+ nแล้วaสำหรับã, nสำหรับñและที่คล้ายกัน
  • Option+ uจากนั้นuสำหรับü ,
  • เครื่องหมายวรรคตอนคว่ำ - ลง: Option+ 1สำหรับ¡, Option+ Shift+ ?สำหรับ¿,

ดูสิ่งนี้ด้วย:


6

ปลั๊กอิน Unicodeของฉันอนุญาตให้ป้อนอักขระ Unicode ได้ง่าย โดยเฉพาะจะช่วยให้

  • :Digraph <name> - ค้นหา digraphs สำหรับตัวละคร

  • :UnicodeTable - แสดงตารางชุดตัวละคร

  • :UnicodeName - ระบุตัวละครภายใต้เคอร์เซอร์

  • การเติมอักขระให้สมบูรณ์โดยใช้ชื่อหรือค่าของพวกเขาจากตาราง Unicode ( :h i_CTRL-X_CTRL-Z) หรือ digarphs ( :h i_CTRL-X_CTRL_G)

อ่านวิธีใช้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ปลั๊กอินของฉัน



3

สำหรับตัวอักษรที่ใช้กันทั่วไป:digraphหรือวิธีการภายนอกเช่นแป้นเขียนที่กล่าวถึงนั้นยอดเยี่ยม สำหรับคนที่ไม่ค่อยได้ใช้ฉันนิยามตัวย่อเช่นนี้

norea <unique> unicode_smiley 😃
norea <unique> unicode_skull ☠

จากนั้นใช้ปลั๊กอิน SnippetCompleteของฉันเพื่อรับเมนูป๊อปอัพที่แสดงรายการตัวย่อทั้งหมดเช่น:unicode_<C-x>]

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