Apa cara termudah untuk memasukkan karakter Unicode ke dalam dokumen?

28

Saat menulis dokumen sesekali, saya ingin memasukkan karakter Unicode ke dalam teks. Terkadang saya tahu kode karakter dan terkadang saya mencarinya di web.

Saat ini saya masuk ke mode insert dan kemudian menggunakan <Ctrl-V>u{four digit hex number}, yang bisa sangat melelahkan. Apakah ada cara yang lebih mudah untuk memasukkan karakter (mungkin beberapa bentuk tempel)?

Martin York
sumber
Pertanyaan lain sebenarnya adalah "kasus khusus" dari pertanyaan yang lebih umum ini; jawabannya akan sama ... Komentar saya di sana juga berlaku: Gunakan fasilitas OS Anda (apa pun itu), atau program lain untuk seluruh OS (untuk contoh ketika saya menggunakan Windows, saya suka menggunakan AllChars yang mengemulasi X11's Tulis kunci; ini berfungsi di semua program).
Martin Tournoij
Ya itu adalah kasus khusus dan jawabannya khusus untuk itu. Apakah Anda tidak berpikir mungkin ada solusi yang lebih umum yang mencakup lebih banyak hal yang tidak dipertimbangkan orang ketika melihat kasus khusus.
Martin York
Kita juga bisa menjadikan pertanyaan itu lebih umum, atau menandai bahwa yang satu itu adalah yang palsu (meskipun sebelumnya); Saya tidak benar-benar peduli seperti . Tapi saya tidak berpikir bahwa memiliki kedua pertanyaan seperti itu akan membantu siapa pun dalam jangka panjang :-)
Martin Tournoij
Jika saya bisa mengendalikan dunia. Mungkin kita harus membiarkannya berdiri selama satu atau dua hari jadi jika itu mengumpulkan tanggapan unik yang dapat membedakannya dari pertanyaan lain. Jika tetap tidak dijawab atau jawabannya hanya duplikat, tutup / hapus.
Martin York
Baiklah .. Saya setuju bahwa pertanyaan yang lain tidak memiliki jawaban yang bagus , dan pertanyaan ini seharusnya menarik yang lebih baik (semoga) ... Mengedit pertanyaan lain (untuk membuatnya lebih umum) masih menyisakan banyak yang sangat terpilih. jawaban yang hanya berurusan dengan tanda hubung em, jadi itu tidak bagus juga ... Jadi saya telah mencabut suara dekat saya, dan segera setelah ini mendapatkan beberapa jawaban yang layak saya akan memilih yang lain dupe yang satu ini (meskipun sebelumnya) ... Saya tentu saja tidak bisa mengendalikan apa yang orang lain pilih untuk pilih.
Martin Tournoij

Jawaban:

23

Pendahuluan : Ini tidak ada hubungannya dengan Vim seperti itu, tetapi saya akan menunjukkan kepada Anda apa yang saya anggap sebagai cara "terbaik" untuk memasukkan karakter-karakter ini sejauh ini; Sistem digraf Vim kurang lebih sama, tetapi hanya bekerja dengan Vim. Ini akan bekerja di semua aplikasi.

Ini hanya akan bekerja untuk sistem X11 (Linux, BSD, dll.) Untuk Windows, ada AllChars . Itu belum diperbarui untuk sementara, tetapi saya dapat mengonfirmasi itu berfungsi baik dengan Windows 7 (menggunakannya pada pekerjaan saya sebelumnya). Saya percaya OS X juga memiliki fasilitas yang baik untuk melakukan ini dibangun di OS; jika Anda menggunakan OS X, saya mendorong Anda untuk memeriksanya, tetapi karena saya belum pernah benar-benar menggunakan OS XI tidak dapat mengarahkan Anda kepada mereka.

Di bawah ini adalah (bagian dari) draft artikel weblog yang saya miliki dalam pipa. Sayangnya panduan yang benar-benar komprehensif belum ada, dan di bawah ini tidak menggambarkan semua fitur yang ditawarkannya (misalnya, beberapa bagian tentang kunci mati tidak ada) dan dapat ditulis dengan lebih baik di beberapa bagian, tetapi saya pikir itu masih "cukup bermanfaat".


'Urutan penulisan' adalah menekan Composetombol dan kemudian satu atau lebih karakter untuk menghasilkan beberapa karakter yang tidak ditemukan pada keyboard Anda, misalnya, menekan Compose, segera diikuti oleh "dan amungkin menghasilkan ä.

Secara default, Composetidak terikat pada tombol apa pun 1 ; tombol Kanan Alt(alias. Alt Gr) sering digunakan, tetapi Anda mengatur ini ke tombol apa pun yang Anda inginkan.

Atur menggunakan xmodmap

Anda dapat menggunakannya xmodmap untuk mengatur ini:

$ 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

Anda mungkin ingin menambahkan ini ke ~/.Xmodmapfile 2 Anda :

! Set compose key
keysym Alt_R = Multi_key

Atur menggunakan XKB

Anda juga dapat mengatur kunci penulisan sebagai opsi ke XKB dengan setxkbmap:

setxkbmap -option compose:ralt  # Right alt
setxkbmap -option compose:caps  # Caps Lock

Untuk membuatnya permanen, tambahkan perintah ke file startup X Anda, atau sebagai alternatif, Anda juga dapat mengaturnya di /etc/X11/xorg.conf:

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbOptions" "compose:ralt"
    #Option "XkbOptions" "compose:caps"
EndSection

Atau, dengan gaya yang lebih 'modern', Anda dapat membuat file /etc/X11/xorg.conf.d/90-compose.conf:

Section "InputClass"
    Identifier "Set compose key"
    MatchIsKeyboard "on"
    Option "XkbOptions" "compose:ralt"
EndSection

Daftar nilai yang mungkin dapat ditemukan di xkeyboard-config(7), bagian 'Posisi kunci Menulis' 3 .

Menyiapkan kunci mati

Kunci mati terutama digunakan untuk menambahkan aksen atau diakritik ke huruf (seperti umlaut, aksen kuburan, dll.), Meskipun dapat digunakan untuk membuat karakter apa pun. Ini bekerja dengan ... TODO '

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

Membuat file ~ / .XCompose

File Tulis standar jika ~/.XComposetidak ada adalah /usr/share/X11/locale/$LANG/Compose. Memiliki sendiri yang ~/.XComposemenimpa default, tetapi Anda masih dapat memasukkan default dengan:

include "%L"

Perubahan pada file Tulis apa pun akan berlaku saat Anda memulai ulang aplikasi. Anda tidak perlu memulai ulang X.

Menulis kunci

'Susunan urutan' sedang menekan Composetombol dan kemudian satu atau lebih karakter untuk menghasilkan beberapa karakter, misalnya:

<Multi_key> <quotedbl> <a> : "ä" adiaeresis

Berarti mendesak Compose, segera diikuti oleh "dan amenghasilkan ä.

<Multi_key>menunjukkan bahwa kami menggunakan Composekunci. kita kemudian mengikuti ini dengan daftar satu atau lebih kunci, ini harus keysyms, yang merupakan representasi simbolis dari kunci yang digunakan oleh X (Lihat bagian Keysyms).

Diikuti oleh a :, diikuti oleh hasilnya.

Hasil:

<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

Catatan : File A Compose adalah case-sensitive, sehingga Aadalah tidak sama dengan a.

Kunci mati

MELAKUKAN

Buat itu berfungsi di GTK & Qt

Setel variabel lingkungan GTK_IM_MODULE& QT_IM_MODULEke xim.

Bourne shell:

# Make compose key work for GTK, Qt
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

Shell c:

# Make compose key work for GTK, Qt
setenv GTK_IM_MODULE xim
setenv QT_IM_MODULE xim

Lihat juga

Saya ~/.XCompose

Inilah ~/.XComposeyang saya gunakan ; Saya menggunakan skrip untuk menghasilkan ini, tetapi saya tidak sengaja menimpa ini ketika mengompilasinya> _ <Jadi saya perlu menulis ulang.

Perhatikan juga baris ini:

<Multi_key> <i> <b> : "NL65AEGO0721647952"

Menekan Compose ibakan memasukkan string ini (nomor IBAN uji acak); sangat berguna untuk menguji aplikasi di mana nomor tersebut diperlukan untuk membuat beberapa objek (Orang, Organisasi); XCompose juga dapat berfungsi sebagai alat "snippet" :-)

Catatan kaki

1: Beberapa keyboard UNIX memiliki Composetombol khusus ( seperti SUN ini ), tetapi ini cukup jarang saat ini.

2: Bergantung pada pengaturan Anda yang ada, ini mungkin atau mungkin tidak dibaca saat startup, tergantung pada konfigurasi Anda, tambahkan baris xmodmap ~/.Xmodmapke salah satu ~/.xinitrcatau ~/.xsession; juga melihat wiki ArchLinux .

3: Direproduksi untuk keuntungan Anda:

    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                     |
    +------------------------------------------------------+
Martin Tournoij
sumber
1
Untuk Windows, gunakan Wincompose sebagai ganti Allchars. Ia melakukan persis seperti yang tertulis di kaleng. Saya menggunakan Allchars sampai saya menemukan Wincompose. Keterbatasan penulisan adalah bahwa Anda tidak dapat memiliki kombinasi yang mudah diingat untuk menjangkau semua karakter, hanya karakter yang sering Anda gunakan atau yang memiliki dekomposisi logis.
Gilles 'SO- stop being evil'
@Gilles Terima kasih; WinCompose terlihat bagus. Anda benar bahwa Anda hanya dapat memasukkan subset karakter "yang paling sering digunakan" yang terbatas. Bagi saya ini sudah cukup> 95% dari waktu. Selebihnya saya menggunakan UniView ... Saya tidak mengetahui adanya sesuatu yang jauh lebih baik ...
Martin Tournoij
Untuk karakter yang jarang digunakan, saya menggunakan Shapecatcher (tidak ada integrasi editor yang saya tahu) atau saya ketik nama karakter ( C-x 8 RETdalam editor yang tidak vi, saya tidak tahu apakah Vim memiliki sesuatu yang serupa).
Gilles 'SO- stop being evil'
1
Pengguna KDE tidak dapat menggunakan metode ini karena KDE membuang tanggung jawab untuk mengimplementasikan fitur ini ke Xorg , dan Xorg memindahkan ke Qt , dan Qt menurunkan kembali ke Xorg . Saya membahas ini di halaman saya tentang mengetik teks RTL .
dotancohen
@dotancohen Itu terlihat seperti masalah yang berbeda (seperti pada, permintaan fitur).
Martin Tournoij
20

Untuk memasukkan karakter Unicode seperti euro atau simbol hak cipta, atau tanda diakritik seperti Jerman umlaut atau aksen kuburan, digraphsdapat digunakan.

Misalnya, dalam mode sisipkan tekan Ctrl+ kdan ketikkan yang berikut:

  • Spanyol: a'untuk á, E'untuk É, n?untuk ñ,
  • Jerman: a:untuk ä, ssuntuk ß,
  • huruf beraksen lainnya: a!untuk à, a>untuk âuntuk ê, a?untuk ã,
  • Bahasa Yunani: a*untuk α(alpha), b*untuk β(beta), g*untuk γ(gamma), d*untuk δ(delta).
  • angka kuadrat: 22untuk ², 33atau³
  • mata uang: Euuntuk (Euro), Pduntuk £(Pound),
  • Countuk ©(Hak Cipta), DGuntuk °(Gelar),
  • OKuntuk , XXuntuk , Sbuntuk (peluru),
  • tanda baca: -Nfor (en dash), -Mfor (em dash)

Ketika opsi digraf diatur ( :set dg), Anda juga dapat menggunakan metode berikut:

  • aBackspace:untuk ä, EBackspaceuuntuk , dll.

Untuk daftar jenis digraf yang didefinisikan saat ini: :digraphs( :dig).

Sumber: Memasukkan karakter khusus di situs Vim Wikia .


OS X

Jika Anda menggunakan OS X, sangat mudah untuk mengetik huruf beraksen di mana saja dengan metode berikut:

  • Option+ e, Kemudian auntuk á, euntuk é, iuntuk ídan yang sejenis,
  • Option+ n, lalu auntuk ã, nuntuk ñdan serupa,
  • Option+ u, lalu uuntuk ü,
  • tanda baca terbalik: Option+ 1untuk ¡, Option+ Shift+ ?untuk ¿,

Lihat juga:

kenorb
sumber
6

Plugin unicode saya memudahkan input karakter unicode. Secara khusus itu memungkinkan

  • :Digraph <name> - Cari digraf untuk karakter

  • :UnicodeTable - Menampilkan tabel characteret

  • :UnicodeName - Identifikasi karakter di bawah kursor

  • Mengisi karakter menggunakan nama atau nilainya dari tabel unicode ( :h i_CTRL-X_CTRL-Z) atau digarphs ( :h i_CTRL-X_CTRL_G)

Baca bantuan untuk info lebih lanjut tentang cara menggunakan plugin saya.

Christian Brabandt
sumber
3

Selain menggunakan digraf yang telah ditentukan (Jalankan :diguntuk mendapatkan daftar), Anda juga dapat menentukan digraf Anda sendiri di vim:

:digr e: 235 a: 228

Lihat juga: http://vimdoc.sourceforge.net/htmldoc/digraph.html

Hjulle
sumber
3

Untuk karakter yang biasa digunakan, :digraphatau cara eksternal seperti tombol Tulis yang disebutkan sangat bagus. Untuk yang jarang digunakan, saya mendefinisikan singkatan, seperti ini:

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

Dan kemudian gunakan plugin SnippetComplete saya untuk mendapatkan menu popup yang mencantumkan semua singkatan seperti itu, misalnya:unicode_<C-x>]

Ingo Karkat
sumber