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

・8 分钟阅读

问题:

是否有任何方法用键盘选择文本,我通常使用Shift 方向键进行操作。


回答 1:

来自 Putty 手册

PuTTY 的复制和粘贴完全使用鼠标。 要将文本复制到剪贴板,只需单击终端窗口中的鼠标左键,然后拖动以选择文本。 当你放开按钮时,文本会自动复制到剪贴板。 你不需要按Ctrl-C或 Ctrl-Ins; 实际上,如果按Ctrl-C, Putty 会将会话中的 Ctrl-C字符发送到服务器这可能会导致进程中断 。


回答 2:

据我所知,没有办法不使用鼠标将putty窗口中的选定区域复制到Windows剪贴板。 在 Putty 站点上有专门针对这个功能的功能请求。

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

使用键盘快捷方式将信息从putty窗口复制到Windows剪贴板的唯一方法是, 使用应用程序系统菜单"copy all to clipboard "(您可以从alt 空格调用,前提是您设置putty

可以使用Shift-Insert将Windows剪贴板粘贴到putty中。

如果您只需要在终端窗口中复制和粘贴,请参阅您正在使用的shell的手册页或考虑使用unix "screen "app(' man screen '了解更多信息),允许在终端窗口中选择文本进行复制/粘贴(类似于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>. 




回答 3:

control+insert = 复制

shift+insert = 粘贴


回答 4:

我使用 GNU

我的screenrc中也有这个功能,可以很好地使用 vim:


register ["33:se paste15a"


register ]"33:se nopaste15a33"


bind ^] paste [.]



我的一个朋友在屏幕上有一个钩子将"屏幕剪贴板"复制到一个或两个x剪贴板(选择或剪贴板),我相信putty会做所需的翻译。 我会试着把它挖掘出来。

你可以用xclip来排列同样的东西,你正在寻找的应该使用 xclip -selection clipboard

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


回答 5:

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

在vim中如果要在可视模式( 通常是跨越许多页面的块) 复制中选择的块, 可以将它的写入文件( 当文本被选中而你仍处于可视模式时,键入 :w filename.txt ) 完成该操作后,你可以:

  • 如果文件是通过Samba挂载的,请在Windows编辑器中打开该文件
  • 通过Apache或者FTP服务器读取文件内容
  • 将该文件作为附件(查看--下面的命令, 需要 Mutt ) 发送:

    
    echo"My Message Body" | mutt -s"my subject line" -a filename.txt -- recipient@email-server.com
    
    
    
    
  • 个人我更喜欢选项 1.


回答 6:

若要解决这里问题请在 Windows 控制台替换中运行 Putty 例如 ConEmuSuperPutty


回答 7:

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

  • 单击"使鼠标更易于使用"。
  • 选中"打开鼠标键"的复选框。
  • 单击"设置鼠标键"以获取其他设置。
  • 默认鼠标按键热键是 Alt Shift NumLock 。

    希望按这个键组合不会干扰你的会话( 或者只是 Alt + Tab退出并从 Putty 外部激活它) 。 我相信在小键盘上按0会启动一个单击锁定,允许您拖动要突出显示/复制的文本部分。


回答 8:

我已经厌倦了通过鼠标左键按鼠标左键来复制会话输出。 但现在,我需要点击两次中键;首先是开始,第二个是结束。 我是怎么做到的:

  • 转到 Putty 配置窗口
  • 从窗口左侧的类别中选择"选择"。
  • 在'控制使用鼠标'下,选择 'Compromise (Middle extends, right pastes) ', 如果您还没选择。

回答 9:

有一段时间了,Putty 本身不能让你只用剪贴板来复制。

但是,Putty 可以方便地从远程端传输数据。 如果您使用像Vim或Tmux这样的工具来进行基于键盘的文本选择,您可以将输出转储到文件中,并且(自我约定)netcat到putty反向端口隧道到本地服务转储输入到本地剪贴板。

我制作了一段视频来说明如何做到这一点: https://www.youtube.com/watch?v=RI79eeCuyvE,但下面是简短版本:

设置你的 Putty> 连接> SSH> 隧道转发R11311到 localhost:1234 使用netcat作为监听服务器将输出管道输出到 Windows 10剪辑命令该命令将输入发送到 Windows 剪贴板 。 在一个永恒的循环中包装这个:


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



我用vt整合了vim和tmux剪贴板。剪贴板文件作为使用vim函数的中介 gist

文本选择在文件中之后,可以将输出管道传输到端口的远程端:


cat ~/.clipboard | nc 127.0.0.1 11311



或者插入一个vim脚本


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



注意,符号是必需的,因为我无法得到标志的-q 0 正常工作。 也许你没有它可以工作, 它会在关闭之前等待一整秒,这可能会打破你的工作流程。 在这个过程中,它立即放弃进程,在后台在 1秒内完成。

Doing 上面 将完全集成 Tmux 。Vim和本地 Putty 客户机剪贴板,而不用触摸鼠标 ! 这是我能找到的唯一方法。


回答 10:

如果你在Windows机器上它将工作正常,但如果以Linux为基础的机器它有时不会工作。 要使它的工作只复制任何文本编辑器上的内容,只需在要粘贴的行处使用 Shift + Insert键。

希望这会有帮助 !


讨论
Tony profile image