我是VIM公司的新手,用它作为IDE。我试图弄清楚如何在我的“项目”中以一种简单的方式打开文件。
在我的.vimrc文件中有这样的配置:
colorscheme Tomorrow-Night
" nocompatible has to be the first of all ( use the real vimpower )
set nocompatible
" backup rules
set backup " enable backup files (.txt~)
set undofile " enable persistent undo
silent execute '!mkdir -p $HOME/.vim/tmp/backup'
set backupdir=$HOME/.vim/tmp/backup " where to store backup
silent execute '!mkdir -p $HOME/.vim/tmp/swap'
set directory=$HOME/.vim/tmp/swap " where to store swap
silent execute '!mkdir -p $HOME/.vim/tmp/views'
set viewdir=$HOME/.vim/tmp/views " where to store view
silent execute '!mkdir -p $HOME/.vim/tmp/undo'
set undodir=$HOME/.vim/tmp/undo " where to store undo
" syntax
syntax on " enable syntax highlighting
" filetype
filetype on " enable filetype detection
filetype plugin on " enable filetype plugins
filetype indent on " enable filetype indentation
" tabstop settings
set tabstop=4 " a tab found in a file will be represented with 4 columns
set softtabstop=4 " when in insert mode <tab> is pressed move 4 columns
set shiftwidth=4 " indentation is 4 columns
" show linenumbers
set number
" Documentation configuration
let g:pdv_cfg_Author = 'Abraham Cruz <abrahamsustaita@gmail.com>'
" Autocompletition
" Complete options (disable preview scratch window)
set completeopt = menu,menuone,longest
" Limit popup menu height
set pumheight = 15
" SuperTab option for context aware completion
let g:SuperTabDefaultCompletionType = "context"
let g:SuperTabNoCompleteAfter = ['^', ',', '\s']
let g:SuperTabMappingForward = '<c-space>'
let g:SuperTabMappingBackward = '<s-c-space>'
" Disable auto popup, use <Tab> to autocomplete
" let g:clang_complete_auto = 0
" Show clang errors in the quickfix window
let g:clang_complete_copen = 1
" TagBar Lint
let g:tagbar_phpctags_memory_limit = '512M'
" Upload on save if the project is configured to do so
autocmd BufWritePost * :call SyncUploadFile()
" Open each buffer in its own tab
:au BufAdd,BufNewFile * nested tab sball因此,每个新缓冲区都在一个新选项卡中打开。
我知道如果我知道:
:e libra*/Core/Sess*/Ob*例如,它将打开文件library/Core/Session/Object.php,但问题是,如果我犯了一个错误,它将打开一个名为libra*/Core/Sess*/Ob*的新缓冲区,而不是打开该文件(假设该文件不存在)。而且,我不喜欢每次都写/,所以最好这样做:
:e libr*Cor*Sess*Obj*.php但是它将打开一个名为(libr*Cor*Sess*Obj*.php)的新缓冲区,而不是打开文件.
我也知道我能做到:
:fin libra(press tab here) 它会自动完成..。但这里的问题是,它将显示(在本例中) :find libexslt/,并且我肯定知道文件夹不在我所在的文件夹中。实际上,这里有一个文件夹的截图:

所以正如你所看到的,我在那里没有脂肪.所以我不知道这些信息是从哪来的.
有什么容易打开文件的方法吗?在本例中,我知道文件是Session/Object.php,所以我可以这样做:
:fin *Sessi*Obj*php?此外,我知道该文件包含在声明中:
<?php
class Core_Session_Object或者,另一个例子,
<?php
namespace Core\Session;
class Object 我可以做这样的事:
:vimgrep /class*Core_Session_Object/ *.php
:vimgrep /name*Core*Sess*Obj/ *.php发布于 2014-09-27 09:56:09
您可以为:edit和:find使用选项卡完成,但是默认机制并不是非常适合用户使用。“通配符”是一个非常好的特性,它使整个过程更加容易。使其具有以下功能:
:set wildmenu并查看文档的以下部分:
:help wildmenu
:help wildmode
:help wildignore
:help wildignorecase**通配符允许您通过子目录递归,以便您可以:
:e **/obj*ph<Tab>:find的行为取决于path选项的值,如果不编写C,该选项的默认值并不十分有用。
将其设置为这个更有用的泛型值,以便通过子目录递归:
:set path=.,**使用上面的设置,您应该能够使用以下内容打开您的文件:
:e **/obj*ph<Tab>或者:
:find obj*ph<Tab>请注意,无论是否使用巧妙的命令/映射,打开文件以访问方法或其他符号都不是很有效。跳标签是一种更有效的方法。不过,你需要一个符号“数据库”,通常是在搜索之前装上箱子。
请参阅这些文件的以下部分:
:help tags
:help ctags
:help cscope以及轻量级变体的:h include-search。
使用:vimgrep或:grep也可以满足您的需要,但我建议您看看更快的确认和ag。
下面是您的vimrc的清理版本,并添加了相关选项:
filetype plugin indent on
syntax on
colorscheme Tomorrow-Night
set wildmenu
set path=./**
set backup
set undofile
silent execute '!mkdir -p $HOME/.vim/tmp/backup'
set backupdir=$HOME/.vim/tmp/backup " where to store backup
silent execute '!mkdir -p $HOME/.vim/tmp/swap'
set directory=$HOME/.vim/tmp/swap " where to store swap
silent execute '!mkdir -p $HOME/.vim/tmp/views'
set viewdir=$HOME/.vim/tmp/views " where to store view
silent execute '!mkdir -p $HOME/.vim/tmp/undo'
set undodir=$HOME/.vim/tmp/undo " where to store undo
set tabstop=4
set softtabstop=4
set shiftwidth=4
set number
set completeopt = menu,menuone,longest
set pumheight = 15
augroup VIMRC
autocmd!
autocmd BufWritePost * :call SyncUploadFile()
autocmd BufAdd,BufNewFile * nested tab sball
augroup END
let g:pdv_cfg_Author = 'Abraham Cruz <abrahamsustaita@gmail.com>'
let g:SuperTabDefaultCompletionType = "context"
let g:SuperTabNoCompleteAfter = ['^', ',', '\s']
let g:SuperTabMappingForward = '<c-space>'
let g:SuperTabMappingBackward = '<s-c-space>'
let g:clang_complete_copen = 1
let g:tagbar_phpctags_memory_limit = '512M'发布于 2014-09-29 14:18:39
学习用于导航文件的纯Vim方法总是很好的,这使得romainl的答案非常好。
还有几个插件提供了模糊查找功能.
尽管如此,我安装Ctrl已经很长时间了,但是我很少使用它,因为我只是不需要它。
https://stackoverflow.com/questions/26070909
复制相似问题