模糊搜索工具有很多,但是推荐装一下这个工具,这个工具是一个很好用的工具,而且如果你使用go开发中话,vim-go的跳转了依赖于这个工具,所以推荐装该插件。
安装
Plug 'ctrlpvim/ctrlp.vim'
操作
普通模式下输入
control p
直接在键盘上输入就可以进行模糊匹配,无需过多的配置。 上下选择
control j / k
查看最近使用
:CtrlPMRUFiles
一般使用的时候只需要记住常用的几个操作的,更多的操作,通过提示或者帮助来了解,我一般都用提示功能,输入:CtrlP 然后 table
查看说明
每个vim的完整功能几乎都可以在说明文档中找到完整说明。
:help ctrlp.txt
总结
到这里 vim 已经具备了搜索功能,可以在 vim 的界面中,直接搜索文档,直接打开编辑,不用先进到目录再去打开文档。对于文本编辑来说又进一步的方便了操作。
完整配置
代码语言:javascript复制"=================================
" VIM 自身配置
"=================================
" 编码设置
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030
" 启用插件
set nocompatible
filetype on
filetype plugin indent on
" Tab 转空格
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
" 列高亮
set cursorcolumn
" 记录上次光标位置
au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" | endif
" 分屏设置
" 向右分屏并把光标移动向右边
map td :set splitright<CR>:vsplit<CR>
" 向右分屏并把光标移动向左边
map ta :set nosplitright<CR>:vsplit<CR>
" 向下分屏并把光标移动向上边
map ts :set nosplitbelow<CR>:split<CR>
" 向下分屏并把光标移动向下边
map tw :set splitbelow<CR>:split<CR>
" 替换方向键为调节分屏大小
map <M-up> :res -5<CR>
map <M-down> :res 5<CR>
map <M-left> :vertical resize-5<CR>
map <M-right> :vertical resize 5<CR>
" 按键映射
map W :w<CR>
map Q :wq<CR>
map tq :q!<CR>
map te :terminal<CR>
" 设置 buff、空白字符的视觉提示
set list listchars=extends:❯,precedes:❮,tab:▸
" 这个提示在复制的时候是个问题
" set list listchars=extends:❯,precedes:❮,tab:▸,trail:˽
" 其他的一些配置
syntax on " 语法高亮
set number " 显示行号
"set relativenumber " 相对行号
set wildmenu " 让vim命令可用Tab补全
set hlsearch " 变输入搜索词边高亮
set incsearch " 光标自动跳转到搜索结果上
set t_ut= "防止vim背景颜色错误
" 复制系统到 vim
vnoremap <C-y> " y
nnoremap <C-p> "*p
"=================================
" 插件部分--开始
"=================================
" 插件
call plug#begin('~/.vim/plugged')
" NERDTree
Plug 'scrooloose/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'mhinz/vim-startify'
call plug#end()
"=================================
" 插件部分--结束
"=================================
"=================================
" NERDTree
"=================================
" 打开关闭 NERDTree
map tt :NERDTreeToggle<CR>
" 打开vim时自动打开NERDTree
autocmd vimenter * NERDTree
" r 定位当前文件所在目录,这个很有用
" 当前从左树进入,又要将当前目录定位到当前位置用这个
map <leader>r :NERDTreeFind<cr> <C-w><C-w>
"显示书签"
let NERDTreeShowBookmarks=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 忽略一下文件的显示
let NERDTreeIgnore=['.pyc','~$','.swp']
let g:NERDTreeGitStatusIndicatorMapCustom = {
"Modified" : "✹",
"Staged" : "✚",
"Untracked" : "✭",
"Renamed" : "➜",
"Unmerged" : "═",
"Deleted" : "✖",
"Dirty" : "✗",
"Clean" : "✔︎",
'Ignored' : '☒',
"Unknown" : "?"
}
" }}}
"=========================================
" Startify 设置
"=========================================
" 修改其中的内容去获得更好的体验。
"设置书签
let g:startify_bookmarks= [
'~/workspaces/',
'~/.config/nvim/init.vim',
]
"起始页显示的列表长度
let g:startify_files_number = 10
"自动加载session
let g:startify_session_autoload = 1
"过滤列表,支持正则表达式
let g:startify_skiplist = [
'^/tmp',
]
"自定义Header和Footer
let g:startify_custom_header = [
' ------------------------------ ',
'| |',
'| Still waters run deep! |',
'| |',
' ---------------- ------------- ',
]
let g:startify_custom_footer = [
' ------------------------------ ',
'| Keep an open mind! |',
' ---------------- ------------- ',
]
" 自己完成的脚本,判断打开文件是否存在。
function! SomeCheck()
if filereadable(expand("%"))
echo "SpecificFile exists"
else
autocmd VimEnter * Startify
endif
endfunction
call SomeCheck()