如何打开Windows命令提示符到VIM中活动文件的当前目录?

时间:2013-12-25 03:30:55

标签: windows vim cmd command-prompt

所以我在vim中打开了一个文件,我想打开命令提示符到文件的当前目录。这是我尝试过的......

:!start cmd /k

这将只是打开命令提示符到C:\目录,即使我已将:cd设置为vim中的其他目录。

:!start cmd /k "cd c:\%"

此操作失败,因为%被转义。

:!start cmd /k "set vimcwd=%; cd C:\\%vimcwd\%"

我不确定为什么这不会起作用,但无论如何,这比我想输入的要多。必须有一种更简单的方法来做到这一点。

2 个答案:

答案 0 :(得分:4)

我想出了一个很好的方法。

:!start cmd /k cd %:p:h

这将打开命令提示符到当前文件的目录。

我最终将这些命令添加到我的vimrc文件中,这样我就可以在当前文件的目录中轻松打开命令提示符或Windows资源管理器。

"Open command prompt by running :Cp
command Cp :!start cmd /k cd %:p:h<CR>

"Open windows explorer by running :We
command We :!start Explorer /select,%:p<CR>

答案 1 :(得分:0)

&#39; ave写了一个function来打开cmd中的当前目录。只需输入cmd,命令行将显示,并cd到当前文件目录。

function! OpenCMD()
  if has('win32') || has('win95') || has('win64')
    let tcc = 'C:\Program Files\JPSoft\TCCLE13x64\tcc.exe'
    let console2 = '!cmd /c start C:\Marslo\Tools\Software\System\CommandLine\Console2\Console.exe'

    if 'java' == &filetype
      let com = console2 . ' -d "' . expand('%:p:h') . '"'
    else
      let com = "shell"
    endif
  else
    let com = '!/usr/bin/gnome-terminal --working-directory=' . expand('%:p:h')
  endif
  let saveit = ':w!'
  echo 'Goto "' . expand('%:p:h') . '" in command line'
  silent execute saveit
  silent execute com
endfunction

command! cmd :call OpenCMD()<CR>