如何在Windows 7中从Sublime打开命令行提示符

16

我在VIM中创建了一个名为OpenCMD()的函数,它用于在VIM中打开命令行或终端(并且cd到当前文件路径)。

func! OpenCMD()
    if has('win32')
        let com = '!cmd /c start cd '. expand('%:p:h')
    else
        let com = '!/usr/bin/gnome-terminal --working-directory=' . expand('%:p:h')
    endif
    silent execute com
endfunc
nmap cmd :call OpenCMD()

现在,我想要在Sublime(sublime 3 beta)中打开命令行并cd到当前文件路径。这个功能和OpenCMD()相同。

我在stackoverflow上搜索了一个问题:Sublime Text 2 - Open CMD prompt at current or project directory (Windows)

我按照第一个回答者的方法做了(创建cmd、cmd.py和Context.sublime-menu)。但是它无法工作,cmd操作始终被禁用。

cmd_in_sublime3

有没有什么办法可以解决呢?谢谢!


你把 cmd.py 存在哪里了?你可能还想检查控制台是否有错误。 - skuroda
嗨@skuroda,我想我找到了问题所在。文件夹应该是CMD而不是cmd - Marslo
可能是 [Sublime Text 2 - 在当前或项目目录中打开CMD提示符(Windows)] (https://dev59.com/Tmct5IYBdhLWcg3wa83p) 的重复问题。 - Jacob
5个回答

34

关于Sublime Text 2 - 在当前或项目目录下打开CMD提示符(Windows)的答案几乎是正确的。

唯一需要更改的步骤(对我来说)是文件名应该是大写的。使用CMD而不是cmd


我的步骤(Win7):

  • 打开文件夹 %APPDATA%\Sublime Text 3\Packages 或直接点击 sublime-text-3 Beta 中的首选项 -> 浏览程序包..
  • 创建一个名为 CMD大写)的文件夹。 CMD 的路径应该是 %APPDATA%\Sublime Text 3\Packages\CMD
  • 打开文件夹 CMD,并创建一个名为 cmd.py小写)的文件,将以下内容粘贴到其中:
import os, sublime_plugin
class CmdCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        file_name=self.view.file_name()
        path=file_name.split("\\")
        current_driver=path[0]
        path.pop()
        current_directory="\\".join(path)
        command= "cd "+current_directory+" & "+current_driver+" & start cmd"
        os.system(command)
  • 创建一个文件(再次),名为Context.sublime-menu。将上下文添加如下:
[
     { "command": "cmd" }
]
  • Cmd函数将在上下文菜单(右键单击)中起作用。例如: Open_cmd_in_Sublime

当然,如果您想通过命令(例如'cmd')打开命令行,可以将以下内容添加到Default (Windows).sublime-keymap文件中:

{ "keys": ["c", "m", "d"], "command": "cmd"}

你可以从“设置” -> “键绑定-用户”中打开它。

它也可以与Cmd一起使用,如果您看到默认情况下还有另一个名为User的文件,那么似乎它只需要第一个字母大写。 - Patricio Sard
3
由于我更喜欢打字而不是点击:请将[ { "caption": "在此文件夹中打开CMD窗口", "command": "cmd" }, ]添加到名为cmd.sublime-commands的文件中,放置在CMD目录中以便使用命令面板。 - maggie
谢谢!它可以工作,但是不理解背后的过程是如何使其运行的! - guru_001
我不会像那样使用命令键“cmd”,因为这会防止你在编辑器中输入这三个字母。 - kristianp
这根本不起作用。我认为它缺少一个重要的警告 - 必须安装Python? - AllenKll

12

您可以按照以下步骤在Sublime Text 3中安装终端包。

  1. 单击首选项中的包控制器
  2. 选择安装包
  3. 在包列表中搜索“终端”,然后安装它。

现在,当您右键单击文件或文件夹时,您将看到在此处打开终端选项。


在我的 Windows 10 机器上,默认使用 PowerShell(而不是命令提示符)。那么我该如何将命令提示符设置为默认 shell? - gia huy
我已经找到了解决方案,如果有人感兴趣可以往下滚动。 - gia huy

2
非常感谢@Marslo!但是,我认为我们可以稍微改进一下插件...(我正在使用st3 beta,window 8)
import os
import sublime_plugin

class CmdCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        os.system("cd " + self.view.file_name() + " & start cmd")

2
对于Windows系统,我会将该命令替换为:
command= "cmd /K cd "+current_directory

1
这应该是:command= "start cmd /K cd "+current_directory,否则Sublime会冻结。 - oraz

0

[奖励]

正如@Ali在他的解决方案中指出并且我的评论在下面。

如果你想要激活命令提示符而不是PowerShell,你可以编辑文件Preference > Package Settings > Terminal > Settings - Default

{
  
// Replace with your own path to cmder.exe
"terminal": "C:\\Windows\\system32\\cmd.exe", // On my Windows 10 machine
"parameters": ["/START", "%CWD%"]

}

正如建议的那样,在这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接