偶尔编写文档时,我想在文本中插入Unicode字符。有时我知道字符代码,有时我在网上查找它。
目前,我进入插入模式,然后使用<Ctrl-V>u{four digit hex number}
,这可能非常费力。有没有插入字符的简便方法(也许是某种形式的粘贴)?
偶尔编写文档时,我想在文本中插入Unicode字符。有时我知道字符代码,有时我在网上查找它。
目前,我进入插入模式,然后使用<Ctrl-V>u{four digit hex number}
,这可能非常费力。有没有插入字符的简便方法(也许是某种形式的粘贴)?
Answers:
前言:这与Vim无关,但是我将向您展示我认为到目前为止插入这些字符的“最佳”方法。Vim的有向图系统大致相同,但仅适用于Vim。这将适用于所有应用程序。
这仅适用于X11系统(Linux,BSD等)。对于Windows,有AllChars。它已经有一段时间没有更新了,但是我可以确认它与Windows 7兼容(在我以前的工作中使用过)。我相信OS X在OS内置的功能方面也具有良好的功能。如果您使用的是OS X,建议您将它们签出,但由于我从未真正使用过OS XI,因此无法为您指出它们。
以下是我准备中的网志文章草稿(的一部分)。不幸的是,还没有真正全面的指南,并且下面没有描述其提供的所有功能(例如,缺少一些有关死键的部分),并且在某些部分可能会写得更好,但我认为这是仍然“足够有用”。
“组合顺序”是先Compose按键,然后按一个或多个字符以产生键盘上找不到的某些字符,例如,按 Compose,紧接着是,"并a可能产生ä
。
默认情况下,Compose不绑定任何键1;通常使用右键Alt(aka。Alt Gr),但是您可以将其设置为所需的任何键。
您可以使用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
您还可以使用以下命令将compose键设置为XKB的选项
setxkbmap
:
setxkbmap -option compose:ralt # Right alt
setxkbmap -option compose:caps # Caps Lock
要永久保留这些命令,请将命令添加到X启动文件中,或者,也可以在以下命令中进行设置/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中找到可能的值列表。
死键主要用于在字母上添加重音符号或变音符号(例如变音符,重音符号等),尽管它可以用于创建任何字符。它由... 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
如果~/.XCompose
缺少默认的Compose文件,则为
/usr/share/X11/locale/$LANG/Compose
。拥有自己~/.XCompose
的设置会覆盖默认设置,但是您仍可以将默认设置包含在以下内容中:
include "%L"
重新启动应用程序后,对任何Compose文件的更改都会生效。您不需要重新启动X。
按下“组合顺序” Compose键,然后按下一个或多个字符以产生某些字符,例如:
<Multi_key> <quotedbl> <a> : "ä" adiaeresis
表示按下Compose,紧接着"并
a产生一个ä
。
<Multi_key>
表示我们正在使用Compose密钥。然后,我们接着列出一个或多个键的列表,这些键必须为keysyms
,它们是X使用的键的符号表示形式(请参见Keysyms部分)。
后跟一个:
,然后是结果。
结果:
<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_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键(例如SUN),但这在当今已经很普遍了。
2:根据您现有的设置,在启动时可能会或可能不会读取此内容,具体取决于您的配置,将行添加xmodmap ~/.Xmodmap
到
~/.xinitrc
或~/.xsession
;
另请参见ArchLinux Wiki。
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 |
+------------------------------------------------------+
C-x 8 RET
在非vi的编辑器中,我不知道Vim是否具有类似的功能)。
要插入Unicode字符(例如欧元或版权符号)或变音符号(例如德国变音符号或重音符号),digraphs
可以使用。
例如,在插入模式下,按Ctrl+ k并键入以下内容:
a'
为á
,E'
为É
,n?
为ñ
,a:
对于ä
,ss
对于ß
,a!
对à
,a>
对â
对ê
,a?
对ã
,a*
代表α
alpha,b*
代表β
beta,g*
代表γ
γ和d*
代表δ
δ。22
对²
,33
或³
Eu
用于€
(欧元),Pd
用于£
(英镑),Co
对于©
(版权),DG
对于°
(程度),OK
对于✓
,XX
对于✗
,Sb
对于∙
(项目符号),-N
用于–
(破折号),-M
用于—
(破折号)设置有向图选项(:set dg
)后,您还可以使用以下方法:
a
Backspace:
对ä
,E
Backspaceu
对€
,等等。要列出当前定义的有向图式::digraphs
(:dig
)。
OS X
如果您使用的是OS X,则可以通过以下方法在任何地方键入带重音的字母非常容易:
á
,e为é
,i为í
和类似,ã
,n为ñ
和类似,ü
,¡
,Option+ Shift+ ?表示¿
,也可以看看:
除了使用预定义的图(运行:dig
以获取列表)之外,您还可以在vim中定义自己的图:
:digr e: 235 a: 228
对于常用的字符,:digraph
或者使用诸如提到的Compose键之类的外部方法都很好。对于很少使用的字母,我定义缩写,如下所示:
norea <unique> unicode_smiley 😃
norea <unique> unicode_skull ☠
然后使用我的SnippetComplete插件获取一个弹出菜单,其中列出了所有此类缩写,例如:unicode_<C-x>]