PuTTY如何仅使用键盘选择文本和复制文本


Answers:


71

腻子手册中

PuTTY的复制和粘贴完全可以使用鼠标进行。为了将文本复制到剪贴板,只需在终端窗口中单击鼠标左键,然后拖动以选择文本。松开按钮时,文本将自动复制到剪贴板。您无需按Ctrl- CCtrl-键Ins;实际上,如果您确实按Ctrl- C,那么PuTTY会在会话中向服务器发送Ctrl- C字符,这可能会导致进程中断。


9
我的行长24k个字符。如何复制过来?我只能在屏幕缓冲区中看到该行的最后一部分或第一部分。
ʀʀʏ2014年

@Gaʀʀʏ我知道您已经很久没有对此评论发表评论了,但是我想指出,如果我有24k行要复制,我认为“全部复制到剪贴板”选项是合理的。当然,这就是我所说的边缘情况。
肖恩·艾瑞德

@Gaʀʀʏ,要添加到Sean的回复中,副本是从终端缓冲区而不是stdout。对于很长的行,当然行可能会溢出缓冲区本身。
ysap '16

3
Shift +插入。

26

据我所知,如果不使用鼠标,就无法将腻子窗口中的选定区域复制到Windows剪贴板中。在腻子网站上有专门针对此功能的功能请求。

http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/keyboard-copy.html

使用键盘快捷键将信息腻子窗口复制到Windows剪贴板的唯一方法是使用应用程序系统菜单“全部复制到剪贴板”(您可以在alt-space中调用,前提是您设置了“窗口>行为>系统菜单显示在腻子中配置的“ ALT-Space”选项上。

从Windows剪贴板粘贴腻子中可以使用Shift- 完成Insert

如果您只需要在终端窗口本身内复制和粘贴,请参考所用外壳的手册页,或考虑使用unix“屏幕”应用程序(有关更多信息,请参见“ man屏幕”),该菜单允许选择文本在终端窗口中进行复制/粘贴(类似于vi的复制/粘贴的工作方式)。手册页摘录:

   C-a esc     (copy)        Enter copy/scrollback mode.

   C-a ]       (paste .)     Write the contents of the paste buffer to the
                             stdin queue of the current window.

   C-a {
   C-a }       (history)     Copy and paste a previous (command) line.

   C-a >       (writebuf)    Write paste buffer to a file.

   C-a <       (readbuf)     Reads the screen-exchange file into the paste
                             buffer.

   C-a =       (removebuf)   Removes the file used by C-a < and C-a >.

1
@xgMz-对我来说很好。令人惊讶的是,该罚单是在13年前提交的,至今还没有人打扰过。
ArtOfWarfare

链接现在可用。
xgMz

24

control+ insert=复制

shift+ insert=粘贴


2
我不知道为什么这被否决了。这是唯一对我有用的答案。我能够制作一个AutoHotkey脚本,该脚本从Windows中的GVim复制文本,将其粘贴到Putty,然后在交互式IPython会话中运行它
rsoren 2014年

2
control+ insert似乎什么也没做。shift+ insert确实会粘贴。
ArtOfWarfare

3
自2016年起,它可与Windows 7和Putty 0.63一起使用。但是,这个问题显然包括设置复制选择以及AFAICT。
stefanct

3
@rsoren-OP请求仅键盘方法。该答案需要首先用鼠标标记。根据选定的答案,一旦标记,就暗示<Ctrl + Ins>。
ysap '16

在Windows 7上对我不起作用
SherylHohman


2

我使用GNU屏幕,

我的screenrc中也有此代码,可以与vim很好地玩:

register [ "\033:se paste\015a"
register ] "\033:se nopaste\015a\033"
bind ^] paste [.]

我的一个朋友在屏幕上有一个勾子,可以将“屏幕剪贴板”复制到x剪贴板中的一个或两个(选择或剪贴板)中,我相信腻子可以完成所需的翻译。我会尝试将其挖掘出来。

您可能可以使用xclip安排同一件事,您要使用的咒语应该使用 xclip -selection clipboard

我会快速测试,看看是否xclip -selection clipboard -o吐出了剪贴板中的内容。


我希望这可以在腻子中使用!我试过了。它抱怨“无法打开显示器”
Brian Peterson

使用xclip应该有效。我使用tmuxxsel使用键盘从Puty复制内容。.我还没有弄清楚如何使用键盘将其粘贴到Windows终端中
alpha_989

2

这可能是解决方法,而不是解决方案。

在vim中,如果要复制在可视模式下选择的块(通常是一个跨多个页面的块),则可以将其写入文件(通过:w filename.txt在选中文本时以及仍在可视模式下键入内容) )。完成此操作后,您可以:

  1. 如果文件已通过Samba挂载,请在Windows编辑器中打开该文件
  2. 通过Apache或FTP服务器读取文件内容
  3. 通过电子邮件将文件作为附件发送(请参见下面的命令-需要Mutt):

    echo "My Message Body" | mutt -s "my subject line" -a filename.txt -- recipient@email-server.com
    

我个人更喜欢选项1。


2

另一个临时建议是在Windows中激活鼠标键。在Windows 7中,它位于“轻松访问中心”下。

  1. 单击“使鼠标更易于使用”。
  2. 选中“打开鼠标键”复选框。
  3. 单击“设置鼠标键”进行其他设置。

默认的“鼠标键”热键为Alt+ Shift+ NumLock

希望打这个组合键就不会与你会话干扰(或只是Alt+ Tab出来,从外面腻子激活)。我相信在数字键盘上单击0会启动单击锁定,从而使您可以在要突出显示/复制的文本部分上进行拖动。


2

我已经厌倦了通过鼠标左键逐行向下滚动以复制会话输出。但是现在,我需要两次单击中间按钮;首先在开头,第二在结尾。我是怎么做的:

  1. 转到腻子配置窗口
  2. 从窗口左侧的类别中选择“选择”。
  3. 在“控制使用鼠标”下,如果尚未选择,则选择“折衷(中间延伸,右粘贴)”。

2
请阅读并让自己理解问题,然后尝试回答。
Renju Chandran chingath 2014年

这是最好的选择方式,Putty负责复制。但是,要复制多个屏幕的文本,我认为您几乎需要使用cat代替。vi不断移动光标。
Noumenon

1

经过一段时间的努力,Putty本身不能让您仅使用剪贴板进行复制。

但是,腻子可以促进从远端反向传输数据。如果您使用Vim或Tmux之类的工具来进行基于键盘的文本选择,则可以将输出转储到文件中,并将netcat(在此约会)将油灰反向端口隧道连接到本地服务,该服务将输入转储到本地剪贴板。

我在此处制作了有关如何执行此操作的视频:https : //www.youtube.com/watch?v=RI79eeCuyvE,但这是简短的版本:

设置您的腻子>连接> SSH>隧道以将R11311转发到localhost:1234使用netcat作为侦听服务器,将输出管道传输到Windows 10 clip命令,该命令将输入​​发送到Windows剪贴板。将其包装在永恒的for循环中,如下所示:

for /L %N IN () do nc -lp 1234 | clip

在您以管理员身份运行的命令提示符中运行以上命令,因为您是在竞标一个端口。

在远程* nix服务器上,您需要使用vim或Tmux将文本选择发送到文件。

使用命令将文本选择发送到文件

tmux save-buffer ~/.clipboard

或者,您可以使用Vim将缓冲区(在这种情况下为z)保存到文件中

silent! redir! > ~/.clipboard
silent! echo @z
silent! redir END

我使用.clipboard文件集成了vim和tmux剪贴板,并使用vim函数gist作为中介。

一旦您的文本选择在文件中,就可以将输出通过管道转发到端口的远端:

cat ~/.clipboard | nc 127.0.0.1 11311

或在vim脚本中

silent! !cat ~/.clipboard | nc 127.0.0.1 11311 &

请注意,“&”号是必需的,因为我无法使netcat的-q 0标志正常工作。也许你可以。如果不工作,它将在关闭前等待一整秒钟,这可能会中断您的工作流程。使用&符,它会立即放弃该过程,该过程在后台1秒钟内完成。

完成上述所有操作将完全集成Tmux,Vim和本地腻子客户端剪贴板,而无需触摸鼠标!这是我可以找到的唯一方法。


另外,如果您将其用于操作系统之间的多行粘贴,请记住要在DOS / Unix行尾之间进行转换
Troy Fletcher

-1

如果您使用的是Windows计算机,则可以正常使用,但是如果基于Linux的计算机有时无法使用,则可以使用。要使其工作,只需在任何文本编辑器上复制内容,然后在要粘贴的行上使用Shift +插入键即可。

希望这会有所帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.