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

3

我在vim中打开了一个文件,我想要打开命令提示符到该文件所在的目录。以下是我的尝试:

:!start cmd /k

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

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

这个失败是因为%被转义了。

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

我不确定为什么这样不起作用,但无论如何,它的输入量超出了我的想象。肯定有更简单的方法来完成这个任务。

2个回答

5
我找到了一个很好的方法来做这件事。
:!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>

0
我已经写了一个function来在cmd中打开当前目录。只需输入cmd,命令行就会显示并进入到当前文件夹。
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>

它说命令应该以大写字母开头。我把它改成了 Cmd,但它仍然无法正常工作。 - NotepadPlusPlus PRO

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