如果我在kakoune中yank了一个单词,我该如何将它粘贴到另一个编辑器(例如gedit)中?
我已经阅读了如何使vim从(和复制到)系统剪贴板中粘贴?,因为vim非常相似,但kakoune没有任何
我已经阅读了如何使vim从(和复制到)系统剪贴板中粘贴?,因为vim非常相似,但kakoune没有任何
*
寄存器。*
寄存器。如果所有链接都失效了,这是完整的解决方案:
<a-|> xsel --input --clipboard <ret>
解释:
<a-|>
将当前选择内容传递到其后面的命令。xsel
是一个用于操作X窗口系统剪贴板的程序。--input
告诉xsel
从标准输入读取数据。--clipboard
告诉xsel
使用哪个“selection”存储。有三个可选,你需要选择“clipboard”以便在其他地方粘贴。这在Linux上可以工作。不确定MacOS是否可行,但我认为将内容传输到pbcopy
应该会奏效。
编辑:为了方便起见,在您的.kakrc
中以用户模式定义一个键绑定,如下所示:
map global user y '<a-|>xsel -i -b<ret>'
现在您可以选择文本并按,y
将其复制到系统剪贴板。前导逗号告诉Kakoune在用户模式下查找键绑定。
xsel
的标准输出和标准输入不是tty时的默认行为是从标准输入读取,如果标准输入是tty,则默认行为是写入标准输出。
此外,“--clipboard”可以缩写为“-b”。或者完全省略,如果您想要复制到“主选择”,而不是剪贴板。 - MarSoftxsel
后,<a-|> xsel -i -b
对我有效。无法进一步缩短它。这么简单的事情变得如此复杂,真是遗憾。 - user10898116xsel
保存到 primary,xsel -b
保存到 clip。 - usretc补充已接受的答案,根据文档,如果您使用的Kakoune版本是2020年7月之后的版本,则可以将以下挂钩添加到您的kakrc文件中:
hook global RegisterModified '"' %{ nop %sh{
printf %s "$kak_main_reg_dquote" | xsel --input --clipboard
}}
请注意,还有一个很棒的插件可以帮助解决这个问题。 Kakboard 可以在任何地方使用,包括Mac、Xorg甚至Wayland环境。在更奇特的环境中,您还可以通过设置kakboard_(copy|paste)_cmd
选项来设置自己的自定义命令。
跨平台或平台无关的解决方案:
当您复制时,系统剪贴板将自动更新。
请注意,在Linux上,我使用wl-copy来处理wayland。
hook global RegisterModified '"' %{ nop %sh{
case $(uname) in
Linux)
wl-copy -n "$kak_main_reg_dquote" > /dev/null 2>&1 & ;;
Darwin)
printf "%s" "$kak_main_reg_dquote" | pbcopy ;;
esac
}}