如何使用VIM(缓冲区)快速编辑剪贴板内容



被ZSH上令人敬畏的VIM模式宠坏了,我想为我的剪贴板重新创建相同的体验。ZSH 中的 VIM 模式允许在 VIM 缓冲区中编辑当前命令,并将其写回命令行,例如:

ZSH 上的 VIM 模式示例

我想为我的剪贴板(在 macOS 上(重新创建相同的体验。我使用以下迷你脚本让它工作:

#!/bin/bash
tmpfile=/tmp/$(openssl rand -base64 8)
touch $tmpfile
pbpaste > $tmpfile
vim $tmpfile
pbcopy < $tmpfile
rm $tmpfile

我有一种感觉,这可能会容易得多。我想完成的是: 1. 使用系统剪贴板的当前内容打开 VIM(命令行( 2. 在 VIM 中编辑内容 3. 写出时,将内容复制回系统剪贴板

最终目标是在 Alfred 工作流程中实现这一点,使我能够快速编辑剪贴板内容。

这需要vipe工具(我认为它代表 vi pipe(: 我有一个名为pbed的 bash 函数,它完全符合您的要求:

pbed () {
pbpaste | vipe | pbcopy
}

您可以轻松地将其转换为脚本。您可以从moreutils软件包中的酿造中获得vipe。

我的zshrc上有这个:

# Edit content of clipboard on vim (scratch buffer)
function _edit_clipboard(){
# pbpaste | vim -c 'setlocal bt=nofile bh=wipe nobl noswapfile nu'
pbpaste | vim
}
zle -N edit-clipboard _edit_clipboard
bindkey '^x^v' edit-clipboard

最新更新