15

我在 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()

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

我做了第一个回答的人(创建 cmd、cmd.py 和 Context.sublime-menu)。但它不能工作,cmd操作总是被禁用。

cmd_in_sublime3

有什么办法可以得到吗?提前致谢!

4

5 回答 5

32

关于Sublime Text 2 - Open CMD prompt at current or project directory (Windows)的答案几乎是正确的。

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


我的步骤(Win7):

  • 在 sublime-text-3 Beta 中打开文件夹%APPDATA%\Sublime Text 3\Packages或单击 Preferences -> Browser Packages..
  • 创建一个名为CMD( Uppercase ) 的文件夹。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"}

您可以从Preferences -> Key Bindings - User打开它

于 2013-09-06T11:22:20.193 回答
11

您可以使用以下步骤在 Sublime text 3 中安装终端包。

  1. 单击Preferences中 的Package Control
  2. 选择安装包
  3. 在包列表中搜索“终端”,然后安装它。

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

于 2018-10-18T16:56:26.583 回答
2

对于 Windows,我将命令替换为:

command= "cmd /K cd "+current_directory
于 2015-12-17T11:13:47.253 回答
2

非常感谢@Marslo!但是,我认为我们可以稍微改进插件......(我在 st3 beta,窗口 8)

import os
import sublime_plugin

class CmdCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        os.system("cd " + self.view.file_name() + " & start cmd")
于 2016-04-06T06:33:11.010 回答
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%"]

}

正如这里所建议的那样

于 2020-04-23T03:23:20.833 回答