I'v created a function in VIM named OpenCMD(), it used for open command line or terminal in VIM (And cd in the current file path)
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()
Now, I want to open command line and cd in the current file path in Sublime (sublime 3 beta). The function as the same as the OpenCMD()
.
And I searched an question in stackover flow: Sublime Text 2 - Open CMD prompt at current or project directory (Windows)
I did as the the first guy answered (Create cmd, cmd.py and Context.sublime-menu). But it cannot work, the cmd operation always disabled.
Is there any way can get it? Thanks in advance!
The answer about Sublime Text 2 - Open CMD prompt at current or project directory (Windows) is nearly correct.
Only one step (for me) has to be changed is the file name should be uppercase. Use CMD
instead of cmd
.
%APPDATA%\Sublime Text 3\Packages
or just click
Preferences -> Browser Packages.. in sublime-text-3 Beta CMD
(Uppercase). The path of CMD should be %APPDATA%\Sublime Text 3\Packages\CMD
. cmd.py
(lowercase), paste the context as below: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
. Add context as below:[
{ "command": "cmd" }
]
Of cause, if you want to open command line by command (by 'cmd' for example), you can add the following context into Default (Windows).sublime-keymap file. :
{ "keys": ["c", "m", "d"], "command": "cmd"}
You can open it from Preferences -> Key Bindings - User