Command-T不在当前工作目录中搜索

时间:2014-11-06 02:38:08

标签: vim

我认为标题说的只是为了给出一些背景,我在.vimrc上设置了这个 set wildignore+=*.o,*.obj,**/.git/*,**/.svn/*,**/node_modules/**,node_modules/**,.git/*,svn/*

从自述文件中: -

:CommandT

A prompt will appear at the bottom of the screen along with a file window
showing all of the files in the current directory (as returned by the
|:pwd| command).

它提到它应该显示当前目录中的所有文件,但即使我cd进入任何目录,Command-T仍然会一直到我的桌面和列出不是我想要的所有文件和文件夹。我只想在自述文件中搜索当前的工作目录。

我还尝试通过:pwd检查我是否确实在正确的目录中,并且它显示我在正确的目录中并且仍然列出了所有内容。但是,如果我的根目录中有.git文件夹,那么它似乎可以正常工作。

我错过了什么吗?如果有帮助,我的.vimrc文件中也有这个: -

imap <C-t> <C-c>:CommandT<CR>
vmap <C-t> <C-c>:CommandT<CR>
nmap <C-t> :CommandT<CR>

2 个答案:

答案 0 :(得分:1)

警告:这是您的问题的非答案答案。

请接受@ romainl的建议并查看插件的issue tracker

文档

Command T和所有优秀的Vim插件都带有文档。在提问之前,请先阅读所有。见:h command-t。你可能已经注意到的事情:

  • g:CommandTScanDotDirectories - 基本上默认配置意味着CommandT不会搜索点目录。这意味着您的'wildignore'可能不需要.git / .svn / ...条目。

  • 有关CommandT和:h command-t-wildignore

  • 的更多信息,请参阅'wildignore'
  • g:CommandTTraverseSCM指示CommandT如何找到其根目录。默认查找SCM根标记,例如.git。如果找不到它,它将回退到当前目录。请查看此选项以获取更多选项。您可能需要使用let g:CommandTTraverseSCM = 'pwd'

映射

我有一些顾虑:

  • 您应该使用*noremap样式映射,除非您要映射到<Plug>(something)或者您真的想要递归映射(提示:通常不会)。
  • 请使用<esc>代替<c-c>,因为它们不相同。当然它们很相似,但它们不一样。
  • 在弹出标记堆栈的正常模式下遮盖<c-t>命令。
  • 在插入模式下遮盖<c-t>命令会增加缩进。
  • 可能甚至不用担心为普通模式以外的任何模式创建映射,因为这是Vim方式。

我的建议是使用<leader>t<leader>b的默认CommandT映射(请参阅:h command-t-mappings)。 <leader>默认为\但是如果更改了mapleader则会发生变化。请参阅:h mapleader

答案 1 :(得分:1)

将此行添加到.vimrc文件

let g:CommandTTraverseSCM='pwd'

它将在当前目录而不是SCM根目录中搜索。