当前,我进入插入模式,然后使用
<Ctrl-V>u{four digit hex number}
,这可能非常麻烦。有没有插入字符的简便方法(也许是某种形式的粘贴)?#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中工作
/>将环境变量
a
和GTK_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 dg
(a
)。来源:在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
评论
另一个问题实际上是这个更为通用的问题的“特殊情况”。答案将是相同的...我的评论也适用:使用OS的工具(无论使用何种工具),或其他一些OS范围的程序(例如,当我使用Windows时,例如,我喜欢使用模仿X11的AllChars)编写键;它在所有程序中均有效。是的,这是一种特殊情况,答案专门针对此情况。您是否认为可能存在一种更通用的解决方案,其中包含人们在查看特殊情况时未考虑的更多内容。
我们也可以使这个问题更笼统,或者将其标记为这个问题的重复(即使是更早的时候);我一点也不在乎。但是我不认为同时存在这两个问题从长远来看会帮助任何人:-)
如果我能控制世界。也许我们应该让它停留一两天,所以如果它收集到任何可以使它与另一个问题区分开的独特答案。如果仍然没有答案,或者答案只是重复,则将其关闭/删除。
好吧..我绝对同意另一个问题没有很好的答案,这个问题应该吸引更好的答案(希望如此)...编辑另一个问题(使其更通用)仍然会给它带来很多争议答案仅与破折号有关,所以也不太好...所以我撤回了我的亲密投票,一旦获得一些体面的答案,我就会将另一人投票给这个人(即使早些)...我当然无法控制其他人选择投票的原因。