widows下 vscode 的 terminal / powershell,ctrl+v失灵,输出^v

问题

在这里插入图片描述

原因

最近装了PSReadLine

Import-Module PSReadLine

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle InlineView
Set-PSReadLineOption -EditMode Emacs

vscode不兼容

解决方法

注释掉最后面的

Import-Module PSReadLine

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle InlineView
#Set-PSReadLineOption -EditMode Emacs

问题解决

原理

Set-PSReadLineOption -EditMode Emacs的作用

Set-PSReadLineOption -EditMode Emacs 是 PowerShell 中的一个命令,用于设置 PowerShell 的命令行编辑模式为 Emacs 模式。

PowerShell 使用 PSReadLine 模块来提供命令行编辑功能,这个模块支持多种编辑模式,包括 Emacs 模式和 Vi 模式。Emacs 模式是一种常见的命令行编辑模式,它提供了许多快捷键和功能,类似于在 Emacs 文本编辑器中的操作。

以下是一些常见的 Emacs 模式快捷键:

  • Ctrl+A:移动光标到行首

  • Ctrl+E:移动光标到行尾

  • Ctrl+B:光标向后移动一个字符

  • Ctrl+F:光标向前移动一个字符

  • Ctrl+P:上一条历史命令

  • Ctrl+N:下一条历史命令

  • Ctrl+D:删除光标下的字符

  • Ctrl+K:删除从光标到行尾的所有字符

  • Ctrl+U:删除从光标到行首的所有字符

通过运行 Set-PSReadLineOption -EditMode Emacs,你可以将 PowerShell 的命令行编辑模式切换到 Emacs 模式,从而使用这些快捷键来提高命令行编辑的效率。

什么是Emacs

Emacs 模式是一种文本编辑模式,最初源自于 Emacs 文本编辑器,后来被广泛应用于各种命令行和文本编辑环境中。Emacs 模式以其丰富的快捷键和强大的编辑功能而闻名。

在 Emacs 模式下,用户可以通过组合键(通常是 CtrlMeta 键,Meta 键在现代键盘上通常对应 Alt 键)来执行各种编辑操作。以下是一些常见的 Emacs 模式快捷键:

  • Ctrl+A:移动光标到行首

  • Ctrl+E:移动光标到行尾

  • Ctrl+B:光标向后移动一个字符

  • Ctrl+F:光标向前移动一个字符

  • Ctrl+P:上一条历史命令

  • Ctrl+N:下一条历史命令

  • Ctrl+D:删除光标下的字符

  • Ctrl+K:删除从光标到行尾的所有字符

  • Ctrl+U:删除从光标到行首的所有字符

  • Ctrl+W:删除光标前的一个单词

  • Ctrl+Y:粘贴(yank)最后一次删除的内容

  • Ctrl+_:撤销上一次操作

Emacs 模式在许多命令行工具和编辑器中都有应用,包括 Bash、Zsh、PowerShell 等。通过使用 Emacs 模式,用户可以显著提高命令行编辑的效率和速度。

为什么对vscode终端产生影响

在 Visual Studio Code (VS Code) 中使用 PowerShell 终端并设置 Set-PSReadLineOption -EditMode Emacs 后,Ctrl+V 的行为可能会发生变化,这是因为 Ctrl+V 在 Emacs 模式下有特定的含义。

在 Emacs 模式中,Ctrl+V 通常用于向下滚动一屏(page down)。因此,当你在 VS Code 的终端中按下 Ctrl+V 时,它不会执行粘贴操作,而是执行 Emacs 模式下的滚动操作。

如果你希望在 VS Code 的终端中使用 Ctrl+V 进行粘贴操作,可以尝试以下几种方法:

  1. 使用右键菜单粘贴:在终端中右键点击,然后选择“粘贴”选项。

  2. 使用 VS Code 的粘贴快捷键:在 VS Code 中,你可以使用 Ctrl+Shift+VCmd+Shift+V(在 macOS 上)来进行粘贴操作。

  3. 修改 VS Code 的键绑定:你可以修改 VS Code 的键绑定,使其在终端中使用不同的快捷键进行粘贴。打开 keybindings.json 文件(可以通过 Ctrl+Shift+P 然后输入 Preferences: Open Keyboard Shortcuts (JSON) 来打开),添加以下内容:

    json
    复制
    {
        "key": "ctrl+v",
        "command": "workbench.action.terminal.paste",
        "when": "terminalFocus"
    }

    这将确保 Ctrl+V 在终端中聚焦时执行粘贴操作。

  4. 使用其他快捷键:你可以在 Emacs 模式下使用其他快捷键进行粘贴。例如,你可以使用 Ctrl+Y 来粘贴最后一次删除的内容。

通过这些方法,你可以在 VS Code 的终端中更方便地进行粘贴操作,同时保持 Emacs 模式的编辑功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值