偶尔编写文档时,我想在文本中插入Unicode字符。有时我知道字符代码,有时我在网上查找。

当前,我进入插入模式,然后使用<Ctrl-V>u{four digit hex number},这可能非常麻烦。有没有插入字符的简便方法(也许是某种形式的粘贴)?

评论

另一个问题实际上是这个更为通用的问题的“特殊情况”。答案将是相同的...我的评论也适用:使用OS的工具(无论使用何种工具),或其他一些OS范围的程序(例如,当我使用Windows时,例如,我喜欢使用模仿X11的AllChars)编写键;它在所有程序中均有效。

是的,这是一种特殊情况,答案专门针对此情况。您是否认为可能存在一种更通用的解决方案,其中包含人们在查看特殊情况时未考虑的更多内容。

我们也可以使这个问题更笼统,或者将其标记为这个问题的重复(即使是更早的时候);我一点也不在乎。但是我不认为同时存在这两个问题从长远来看会帮助任何人:-)

如果我能控制世界。也许我们应该让它停留一两天,所以如果它收集到任何可以使它与另一个问题区分开的独特答案。如果仍然没有答案,或者答案只是重复,则将其关闭/删除。

好吧..我绝对同意另一个问题没有很好的答案,这个问题应该吸引更好的答案(希望如此)...编辑另一个问题(使其更通用)仍然会给它带来很多争议答案仅与破折号有关,所以也不太好...所以我撤回了我的亲密投票,一旦获得一些体面的答案,我就会将另一人投票给这个人(即使早些)...我当然无法控制其他人选择投票的原因。

#1 楼

前言:这与Vim无关,但是我将向您展示我认为到目前为止插入这些字符的“最佳”方法。 Vim的有向图系统大致相同,但仅适用于Vim。这将适用于所有应用程序。

仅适用于X11系统(Linux,BSD等)。对于Windows,有AllChars。它已经有一段时间没有更新了,但是我可以确认它在Windows 7上能很好地工作(在我以前的工作中使用过)。我相信OS X在OS内置的功能上也很不错;如果您使用的是OS X,我建议您将它们检出,但是由于我从未真正使用过OS XI,因此无法将它们指向它们。
我正在准备的文章。不幸的是,还没有一个真正全面的指南,并且下面没有描述它提供的所有功能(例如,缺少一些有关死键的部分),并且在某些部分可能会写得更好,但我认为这是仍然“足够有用”。


“ compose sequence”先按Compose键,然后一个或多个字符产生键盘上找不到的某些字符,例如,按Compose,

默认情况下,Compose不受任何key1约束;通常使用Right Alt键(又名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


使用XKB进行设置

还可以设置撰写使用
~/.Xmodmap作为XKB的一个选项:
这些永久性命令,将命令添加到您的X启动文件中,或者,也可以在setxkbmap中设置它:

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

现代风格的文件,您可以创建文件
/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的“组合键的位置” 3节中找到可能的值的列表。或变音字母(例如变音符号,重音符号等),尽管它可以用来创建任何字符。它可以通过... TODO
'

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


制作〜/ .XCompose文件

如果xkeyboard-config(7)是默认的Compose文件丢失的是
~/.XCompose。拥有自己的/usr/share/X11/locale/$LANG/Compose会覆盖默认值,但仍可以将默认值包含在以下内容中:

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


对任何Compose文件的更改在重新启动应用程序时生效。您不需要重新启动X。

组合键

“组合顺序”是按Compose键,然后按一个或多个字符来产生某些字符:

include "%L"


意味着按下Compose,紧接着是“ and
a会产生一个~/.XCompose

ä表示我们重新使用Compose键。
然后我们跟随一个或多个键的列表,这些键必须是<Multi_key>,它们是X使用的键的符号表示形式(请参见Keysyms部分)。

后跟一个keysyms,后跟结果。

结果:

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


注意:撰写文件区分大小写,因此:A不同。

死键

TODO

使其在GTK和Qt中工作

/>将环境变量aGTK_IM_MODULE设置为QT_IM_MODULE

Bourne外壳:

<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


C外壳:

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

另请参阅


Compose(5)
XKB
edubuntu Wiki上的ComposeKey
Ubuntu Wiki上的ComposeKey
ArchLinux Wiki

如何使Compose在GTK和Qt应用程序中工作?
Wikipedia上的Compose键
Wikipedia上的无效键

AllChars(MS Windows的组合键)

在GNOME中启用Compose键。

我的xim


这是我使用的~/.XCompose
我使用脚本来生成它,但是我编译时不小心覆盖了它> _ <所以我需要重写它。

还要注意这一行:

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


按Compose ib将插入该字符串(随机测试IBAN编号);对于测试需要一定数量才能创建某些对象的应用程序非常有用(人员,组织); XCompose也可以用作“摘录”工具:-)

脚注

1:
某些UNIX键盘具有专用的Compose键(例如
SUN),
,但如今这种情况并不常见。

2:
根据您现有的设置,启动时可能会或可能不会读取该信息,
根据您的配置,将行~/.XCompose添加到
xmodmap ~/.Xmodmap~/.xinitrc
另请参见ArchLinux Wiki。

3:
为您的利益而复制:

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


评论


对于Windows,请使用Wincompose而不是Allchars。它的作用与锡罐上所说的完全相同。我使用Allchars直到找到Wincompose。 compose的局限性在于,您无法拥有一个令人难忘的组合来触及所有字符,只有您经常使用的字符或具有逻辑分解的字符。

–吉尔斯'所以-不再是邪恶的'
2015年2月27日在0:28



@吉尔斯谢谢; WinCompose看起来不错。没错,您只能输入相当有限的“最常用”字符子集。对我来说,这足够超过95%的时间。对于其余的我,我使用UniView ...我不知道有什么好得多的...

–马丁·图尔诺伊(Martin Tournoij)
2015年2月27日在0:38



对于很少使用的字符,我使用Shapecatcher(我不知道没有编辑器集成)或键入字符名称(在非vi的编辑器中使用C-x 8 RET,我不知道Vim是否具有类似的功能)。

–吉尔斯'所以-不再是邪恶的'
2015年2月27日在2:16

KDE用户不能使用此方法,因为KDE将实现此功能的责任委托给Xorg,Xorg委托给Qt,Qt委托给Xorg。我将在有关输入RTL文本的页面上对此进行讨论。

– dotancohen
15年2月27日在8:57

@dotancohen看起来像是一个不同的问题(如功能请求)。

–马丁·图尔诺伊(Martin Tournoij)
15年2月27日在14:56

#2 楼

要插入Unicode字符(例如欧元或版权符号)或变音符号(例如德国变音符号或重音符号),可以使用digraphs

例如,在插入模式下,按Ctrl + k并键入以下:


西班牙语:a'表示áE'表示É
德语:n?表示ña:表示ä
其他重音字母: ss for ßa! for à for a>â for ê
希腊语:a? for ã(alpha),a* for α(beta),b* for q43120120qq(gamma),q43120120qq(gamma), />平方数:βg*γd*

货币:δ(欧元)的22²(磅)的33

³Eu) , for Pd(Degree),

£ for q 4312079q,Co©DG°(项目符号),
标点符号:OK(en破折号),XX(em破折号)

Sb),也可以使用以下方法:



的退格-N的退格-M等等,等。

到列出当前定义的二字类型::set dga)。

来源:在Vim Wikia站点上输入特殊字符。


OS X

如果您使用的是OS X,则可以通过以下方法在任何地方键入带重音的字母非常容易:



Option + e,然后为:,为e ä,i代表E和类似的东西,

Option + n,然后a代表u,n代表和类似物,

Option + u,然后u代表:digraphs
颠倒的标点符号::dig的Option + 1,Option + Shift +?有关á的信息,请参见:


使用Unicode
在Vim中插入破折号的最简单方法是什么?


#3 楼

我的unicode插件可以轻松输入unicode字符。具体来说,它允许


Unicode表(:Digraph <name>)或digarphs(:UnicodeTable)中的名称或值。

阅读帮助以获取有关如何使用我的插件的更多信息。

#4 楼

对于常用字符,:digraph或诸如提到的Compose键之类的外部方法都很好。对于很少使用的缩写,我定义缩写,例如:

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


,然后使用我的SnippetComplete插件获得一个列出所有缩写的弹出菜单,例如:unicode_<C-x>]

#5 楼

除了使用预定义的图(运行:dig以获取列表)之外,您还可以在vim中定义自己的图:

:digr e: 235 a: 228


另请参见:http:// vimdoc.sourceforge.net/htmldoc/digraph.html