如何在 Vim 中配置 ctrlp 插件以实现类似 Sublime 的文件搜索功能?

新手上路,请多包涵

怎么设置vim 的ctrlp 插件让其像sublime 一些搜索文件?

比如一个rail项目中,怎么用app con rb 搜出app/controllers/application.rb 这个文件来呢

阅读 1.2k
2 个回答

使用 CtrlP 插件通过输入 app con rb 搜索到 app/controllers/application.rb 文件,可以进行以下配置:

1.安装 CtrlP 插件: 确保你已经安装了 CtrlP 插件。如果没有,可以使用插件管理器(如 Vundle 或 vim-plug)来安装:

" 使用 Vundle 安装
Plugin 'ctrlpvim/ctrlp.vim'

" 或使用 vim-plug 安装
Plug 'ctrlpvim/ctrlp.vim'

2.配置 CtrlP 插件: 在 .vimrc 文件中添加以下配置:

" 设置 CtrlP 的工作路径模式为递归搜索
let g:ctrlp_working_path_mode = 'ra'

" 忽略特定目录和文件
let g:ctrlp_custom_ignore = {
    \ 'dir':  '\v[\/]\.(git|hg|svn|rvm|node_modules)$',
    \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc|class)$',
    \ }

" 设置 CtrlP 的快捷键
nnoremap <silent> <C-p> :CtrlP<CR>

" 设置 CtrlP 的模糊搜索模式
let g:ctrlp_match_func = { 'match': 'pymatcher#PyMatch' }

" 设置 CtrlP 的最大高度
let g:ctrlp_max_height = 15

" 设置 CtrlP 的窗口位置
let g:ctrlp_match_window = 'bottom,order:ttb,min:1,max:10,results:20'

3.使用 CtrlP 搜索文件: 按下 Ctrl + P 打开 CtrlP 窗口,然后输入 app con rb。CtrlP 会根据你输入的字符进行模糊匹配,找到 app/controllers/application.rb 文件。
4.优化搜索体验:

  • 刷新文件缓存: 按 F5 刷新当前操作路径下的文件缓存。
  • 切换搜索模式: 使用 Ctrl + f 和 Ctrl + b 在查找文件模式、查找缓冲区模式、查找 MRU 文件几种模式间进行切换。
  • 路径匹配和文件名匹配切换: 使用 Ctrl + d 在路径匹配和文件名匹配之间切换。
  • 正则表达式搜索: 使用 Ctrl + r 在字符串模式和正则表达式模式之间切换。

要在 Vim 中配置 CtrlP 插件以实现类似 Sublime 的文件搜索功能,你可以按照以下步骤进行:

  1. 安装 CtrlP 插件

    • 如果你使用 Vundle 作为 Vim 插件管理器,可以在你的 .vimrc 文件中添加以下行:

      Plugin 'ctrlpvim/ctrlp.vim'
    • 如果你使用 vim-plug,可以在你的 .vimrc 文件中添加:

      Plug 'ctrlpvim/ctrlp.vim'
    • 然后运行 :source %:PluginInstall(对于 Vundle)或 :PlugInstall(对于 vim-plug)来安装插件 。
  2. 配置 CtrlP 插件

    • 你可以设置 CtrlP 的快捷键映射,例如将 <Leader>p 设置为打开 CtrlP 的快捷键:

      let g:ctrlp_map = '<Leader>p'
    • 设置 CtrlP 的命令,以便在命令模式下使用:

      let g:ctrlp_cmd = 'CtrlP'
    • 配置 CtrlP 忽略某些文件和目录,例如:

      let g:ctrlp_custom_ignore = {
        \ 'dir':  '\v[\/]\.(git|hg|svn)$',
        \ 'file': '\v\.(exe|so|dll)$',
        \ }
    • 设置 CtrlP 的工作路径模式,例如设置为 'r',这样 CtrlP 会从包含版本控制目录(如 .git)的最近祖先目录开始搜索:

      let g:ctrlp_working_path_mode = 'r'
    • 如果你的项目中使用了特定的文件作为根目录标志,可以设置 g:ctrlp_root_markers

      let g:ctrlp_root_markers = ['pom.xml', '.p4ignore']
  3. 使用 CtrlP 搜索文件

    • 在普通模式下,使用 <Leader>p(或你设置的其他快捷键)打开 CtrlP 搜索框。
    • 输入你想要搜索的文件名,例如 app con rb,CtrlP 会模糊匹配并显示结果。
    • 使用 <Ctrl-j><Ctrl-k> 在结果中导航,然后按 <Enter> 打开选中的文件 。

通过上述配置,你可以在 Vim 中使用 CtrlP 插件实现类似 Sublime 的文件搜索功能,快速找到项目中的文件,如 app/controllers/application.rb

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏