maj*_*tor 2 powershell visual-studio-code
在vscode中打开单个文件时,当我打开集成的Powershell时,它总是在我的$HOME文件夹中启动。
有什么方法可以快速切换到当前显示的文件的目录,而无需手动cd进入该目录?
有点像cd $vsCurrentFileDirectory。
当前,我右键单击选项卡,然后复制路径cd (Split-Path <CTRL-v>)。
编辑:v1.39中将添加一个新命令,以使其更直接,请参见发行说明。给出的示例绑定是:
{
"key": "cmd+shift+h",
"command": "workbench.action.terminal.newWithCwd",
"args": {
"cwd": "${fileDirname}"
}
}
Run Code Online (Sandbox Code Playgroud)
在Insider的构建中确实起作用。但是,这将创建一个新终端,而不修改现有终端。
[ 原始答案 ]:这将更改当前端子。
您可以设置一个快捷键来轻松完成此操作:
{
"key": "alt+t",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd '${fileDirname}'\u000D"}
},
Run Code Online (Sandbox Code Playgroud)
该\u000D是回归这样的命令立即触发。
另请注意,'${fileDirname}'如果您的目录名称中包含空格,我会用引号引起来。
无论焦点位于终端还是文件中,键绑定都将起作用。
另请参阅在Powershell和cmd中更改目录的快捷方式,以获取其他信息,以防您在Powershell中更改驱动器号和转义双引号。
{
"key": "ctrl+alt+d",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd \"${fileDirname}\"\u000D"}
}
Run Code Online (Sandbox Code Playgroud)
与/d国旗的讨论。感谢@skataben提供其他信息。
或者,可以执行以下扩展操作: terminal-here,但是键绑定实际上可以更快地工作。将sendSequence被创建的扩展名,当与变量置换功能不可用。
最后,如果右键单击资源管理器中的文件夹,则那里有一个Open in Terminal选项(以及相应的命令)。这意味着您可以像这样在键绑定中使用该命令:
{
"key": "alt+t",
"command": "openInTerminal"
}
Run Code Online (Sandbox Code Playgroud)
但是我的第一个sendSequence按键绑定仍然是最快的方法。
我的解决方案是简单地将以下内容添加到 VS Code 设置中,以便无论您设置什么键来打开新的集成终端,它都能确保终端转到当前打开文件的目录。无论您选择什么新终端,无论是 powershell、CMD、Git Bash 等,这都有效:
"terminal.integrated.cwd": "${fileDirname}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |