Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何在VIM中快速更改directores?_Shell_Vim - Fatal编程技术网

Shell 如何在VIM中快速更改directores?

Shell 如何在VIM中快速更改directores?,shell,vim,Shell,Vim,可以让vim与另一个执行该操作的util一起工作吗?CtrlP对目录搜索有限制。我唯一能找到的就是像wcd这样的util 然而,当我试图将vim集成到where Change目录(Norton Change目录克隆)时,我遇到了一些基本问题 wcd是一个简单的实用程序,它接受一个输入,并在找到一个名称中包含输入的匹配目录时更改目录。如果有多个目录,它将提供一个简单的选择菜单,您可以从中选择所需的目录。它还可以使用-o选项将目录作为管道输出 Example $wcd foo : Changes t

可以让vim与另一个执行该操作的util一起工作吗?CtrlP对目录搜索有限制。我唯一能找到的就是像wcd这样的util

然而,当我试图将vim集成到where Change目录(Norton Change目录克隆)时,我遇到了一些基本问题

wcd是一个简单的实用程序,它接受一个输入,并在找到一个名称中包含输入的匹配目录时更改目录。如果有多个目录,它将提供一个简单的选择菜单,您可以从中选择所需的目录。它还可以使用-o选项将目录作为管道输出

Example $wcd foo : Changes to /home/me/foo . [Since only 1 foo exists]
        $wcd bar : 1./home/me/bar/
                  2./home/me/simplebar/
                  Enter You Choice: 
它在航站楼运行良好。想知道如何使vim使用此实用程序

如果我给出的话,有两种情况:cd
wcdfoo

  • 如果我的目录中只有
    foo
    ,并且vim发生了变化,那么它可以为
    foo
    提供一个单一的结果

  • 它可以提供多种选择,我必须从中选择一种。维姆会允许吗

  • 棘手的是,vim必须允许该程序运行并完成,然后获得输出——即使这意味着打开该程序等待用户输入。vim应该像这样进入后台!命令将显示一个控制台


    有人知道是否可以做
    :cd!wcd foo
    ?还是同等的

    如果您希望在shell checkout的模糊路径上运行vim,那么页面上会解释vim的用法

    如果您只想将vim用作输入管道,请使用破折号:

    tail -1000 /some/file | vim -
    

    如果您在页面上的shell checkout中寻找在模糊路径上运行vim的选项,那么将解释vim的用法

    如果您只想将vim用作输入管道,请使用破折号:

    tail -1000 /some/file | vim -
    

    既然你编辑了你的问题,我有另一个选择给你,看看

    let g:ctrlp_working_path_mode = 0
    
    编辑:


    因此,您为任务选择了一个非常容易引起误解的问题:)您可以将ctrlp与args一起使用,为什么不将其绑定到映射?还是使用fuzzyfinder

    您可以并且应该在处理项目时设置“working dir”,当然,但是您不需要在vim中打开特定的目录,您可以编辑具体的文件。 也许您可以获取从fasd生成的文件(当然是Automaticali),并为最常用的目录自动生成一些映射,但我认为这是一个坏主意

    我个人在很长一段时间内成功地使用了fasd+ctrlp,除了设置工作目录外,我从不需要在vim中打开特定的目录,ctrlp会自动为我做这些。但我只是一个小开发者,也许你的用例是不同的

    编辑第二部分:

    你的选择是

    :h inputlist
    
    看看这个:

    :echo inputlist(range(20))
    

    您需要用命令替换range20,并在其中传递带有args的wcd。

    由于您编辑了您的问题,我有另一个选项供您选择,请查看

    let g:ctrlp_working_path_mode = 0
    
    编辑:


    因此,您为任务选择了一个非常容易引起误解的问题:)您可以将ctrlp与args一起使用,为什么不将其绑定到映射?还是使用fuzzyfinder

    您可以并且应该在处理项目时设置“working dir”,当然,但是您不需要在vim中打开特定的目录,您可以编辑具体的文件。 也许您可以获取从fasd生成的文件(当然是Automaticali),并为最常用的目录自动生成一些映射,但我认为这是一个坏主意

    我个人在很长一段时间内成功地使用了fasd+ctrlp,除了设置工作目录外,我从不需要在vim中打开特定的目录,ctrlp会自动为我做这些。但我只是一个小开发者,也许你的用例是不同的

    编辑第二部分:

    你的选择是

    :h inputlist
    
    看看这个:

    :echo inputlist(range(20))
    

    您需要用命令替换range20,并在其中传递带有参数的wcd。

    命令行完成和“wildmenu”是您的朋友

    您可以使用像
    *
    **
    这样的glob:

    :cd **/foo<tab>
    :cd **/*bar<tab>
    
    这是尝试将
    :cd
    发送到我的
    ~/.vim
    目录下包含
    dete
    的目录时的样子:

    :cd **/*dete<Tab>
    
    :cd**/*dete
    
    “>


    你并不需要一个插件或一个外部实用程序来实现这一点。

    命令行完成和“wildmenu”是你的朋友

    您可以使用像
    *
    **
    这样的glob:

    :cd **/foo<tab>
    :cd **/*bar<tab>
    
    这是尝试将
    :cd
    发送到我的
    ~/.vim
    目录下包含
    dete
    的目录时的样子:

    :cd **/*dete<Tab>
    
    :cd**/*dete
    
    “>


    你并不需要一个插件或一个外部实用程序来实现这一点。

    有一个用于Wcd的Vim插件。请参阅:

    有一个用于Wcd的Vim插件。请参阅:

    您应该更明确地说明该程序的功能以及如何与之交互。您应该更明确地说明该程序的功能以及如何与之交互。CtrlP是用于文件的,对吗?它允许模糊搜索目录吗?我只想要目录导航的CtrlP概念。问题是CtrlP有根目录的概念,因此除非您更改到该目录,否则无法在其他位置检查文件。更改到该目录是我试图解决的问题:-)我看了一下让g:ctrlp_working_path_mode=0,但这不意味着ctrlp会非常慢吗?因此,您为您的任务选择了一个非常误导人的问题:)这是真的,我的意思是我只想在vim中快速更改目录,我有一个名为wcd的util!更正了标题:-)CtrlP是用于文件的,对吗?它允许模糊搜索目录吗?我只想要目录导航的CtrlP概念。问题是CtrlP有根目录的概念,因此除非您更改到该目录,否则无法在其他位置检查文件。更改到该目录是我试图解决的问题:-)我看了一下g:ctrlp_working_path_mode=0,但这不意味着ctrlp会非常慢吗?所以您选择了一个非常容易误导的问题