我正在寻找一种在 TTY 内复制和粘贴的方法。我只有一个触摸板,使用它gpm
很麻烦。我能想到的唯一可能性是使用“屏幕”,但即使将 Ctrl-A 重新映射到“`”,它仍然不方便且缓慢。
有没有更舒适的方法?
答案1
如果你不喜欢 screen 或 gpm,你的选择就非常有限了。我能想到的其他选择是:
在 X 下运行终端,也许使用平铺窗口管理器来获得简约的、类似控制台的外观。
运行 *BSD 而不是 Linux,这样您就可以使用 sysmouse 而不是 gpm。我听说它更好,而且我有限的 BSD 经验表明它可能会更好,但我不知道它在剪贴板支持方面是否更好。听起来你主要是不喜欢你的触控板,如果不更换它可能无法修复。
使用管道、命名管道、临时文件等。例如,大多数 unix 编辑器都允许您通过普通命令行脚本处理选定的文本,例如,可以将其设置为将选定内容保存到 ~/.clipboard。运行输入文本的命令(cat ~/.clipboard)应该更加容易。
使用支持多个文件并在它们之间复制/粘贴的编辑器。vim 可以,emacs 也可以,我确信。
答案2
您可以使用Ctrl+y粘贴。要复制,则取决于您要复制的内容。如果是在提示符下:Ctrl+u表示从开头剪切,Ctrl+k表示剪切到结尾。
答案3
tmux
类似于screen
并允许您复制粘贴。
dvtm
可以用鼠标复制/粘贴。
答案4
尝试这个:
ls $(xsel -o --display :0)
如果剪贴板中有“wa*”,它将在任何 TTY 终端上生成以下内容:
$ ls -l $(xsel -o --display :0)
-rwxr-xr-x 1 root root 1254 Jan 30 11:44 wav_to_mp3.sh
$
也许可以通过 bash 别名使其更加简单。无论如何,我最终通过以下方式解决了这个问题:
1) 将文本复制到 TTY7 - GUI 中的剪贴板中 2) 然后我切换到 TTY1 并写入命令:expandclipboard.sh youtube-dl cb 3) 脚本扩展命令并将剪贴板的内容插入 cb 的位置并运行。
脚本的代码是:
#!/bin/bash
var1=$1
if [ "$var1" = "cb" ]; then
var1=$(xsel -o --display :0)
fi
var2=$2
if [ "$var2" = "cb" ]; then
var2=$(xsel -o --display :0)
fi
var3=$3
if [ "$var3" = "cb" ]; then
var3=$(xsel -o --display :0)
fi
var4=$4
if [ "$var4" = "cb" ]; then
var4=$(xsel -o --display :0)
fi
var5=$5
if [ "$var5" = "cb" ]; then
var5=$(xsel -o --display :0)
fi
var6=$6
if [ "$var6" = "cb" ]; then
var6=$(xsel -o --display :0)
fi
var7=$7
if [ "$var7" = "cb" ]; then
var7=$(xsel -o --display :0)
fi
var8=$8
if [ "$var8" = "cb" ]; then
var8=$(xsel -o --display :0)
fi
echo $var1 $var2 $var3 $var4 $var5 $var6 $var7 $var8
$var1 $var2 $var3 $var4 $var5 $var6 $var7 $var8
我知道这非常原始,但我懒得假装我比这个脚本更聪明。:-)