vim进阶1.0 常用插件安装taglist+vundle+strlp+ctrlp-funky与使用

2023-12-22 14:48

本文主要是介绍vim进阶1.0 常用插件安装taglist+vundle+strlp+ctrlp-funky与使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 安装vundle

https://github.com/kaigeli/Vundle.vim/blob/master/README_ZH_CN.md

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

安装ctag:

sudo  apt  install exuberant-ctags

  • 配置vundle :

请将以下加在 .vimrc 方可使用Vundle.

我自己使用的完整的vim配置请在这里下载:https://download.csdn.net/download/sinat_29891353/12435480

下载后替换为自己的.vimrc即可。或者复制下面vim配置到自己的.vimrc皆可。

set nocompatible              " 去除VI一致性,必须
filetype off                  " 必须" 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here')" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'" 你的所有插件需要在下面这行之前
call vundle#end()            " 必须
filetype plugin indent on    " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on
"
" 简要帮助文档
" :PluginList       - 列出所有已配置的插件
" :PluginInstall    - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存
" :PluginClean      - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件
"
" 查阅 :h vundle 获取更多细节和wiki以及FAQ
" 将你自己对非插件片段放在这行之后

  • vundle安装插件方法:

运行 vim 再运行 :PluginInstall

通过命令行直接安装 vim +PluginInstall +qall

2. 安装插件

在.vimrc文件中添加如下几行,注意要放在call vundle#end()这一行之前

Bundle 'taglist.vim'
Bundle 'ctrlpvim/ctrlp.vim'
let g:ctrlp_map = '<leader>p'
let g:ctrlp_cmd = 'CtrlP'     
map <S-f> :CtrlPMRU<CR>    "缓存优先查找   
map <S-p> :CtrlP<CR>       "当前目录含子目录查找
let g:ctrlp_custom_ignore = { \ 'dir':  '\v[\/]\.(git|hg|svn|rvm)$',\ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$',\ }
let g:ctrlp_working_path_mode=0
let g:ctrlp_match_window_bottom=1
let g:ctrlp_max_height=15
let g:ctrlp_match_window_reversed=0
let g:ctrlp_mruf_max=500
let g:ctrlp_follow_symlinks=1
Bundle 'tacahiroy/ctrlp-funky'
nnoremap <S-U> :CtrlPFunky<Cr>
"narrow the list down with a word under cursor
nnoremap <C-h> :execute 'CtrlPFunky ' . expand('<cword>')<Cr>
let g:ctrlp_funky_syntax_highlight = 1let g:ctrlp_extensions = ['funky'] let Tlist_Ctags_Cmd='ctags'
let Tlist_Show_One_File=1               "不同时显示多个文件的tag,只显示当前文件的
let Tlist_WinWidt =30                   "设置taglist的宽度             
let Tlist_Exit_OnlyWindow=1             "如果taglist窗口是最后一个窗口,则退出vim
"let Tlist_Use_Right_Window=1           "在右侧窗口中显示taglist窗口
let Tlist_Use_Left_Windo =1             "在左侧窗口中显示taglist窗口   
let Tlist_Auto_Open=1
let Tlist_Process_File_Always=1         "taglist始终解析文件中的tag,不管taglist窗口有没有打开
map <silent> <F8> :TlistToggle<cr>

然后按shift+:输入PluginInstall,稍等一会儿即可完成安装。

完成安装后如下会显示如下:

ctrlp更多配置见文档

3. 使用插件:

  • taglist:

常用命令:

 ctags -R ./       ./指当前目录,可以换目录,或者换为对应文件

常用快捷键:

Ctrl+]:跳转到函数,或者变量的定义处

Ctrl+o:返回到上个位置

F8: 打开taglist,再按一下关闭taglist  //再.vimrc配置文件中有设置

Ctrl+w+w:窗口切换,如可以切到taglist窗口

另外参考:vi/vim使用进阶: vimrc初步 - 易水博客

<CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o             在一个新打开的窗口中显示光标下tag
<Space>       显示光标下tag的原型定义
u             更新taglist窗口中的tag
s             更改排序方式,在按名字排序和按出现顺序排序间切换
x             taglist窗口放大和缩小,方便查看较长的tag
+             打开一个折叠,同zo
-             将tag折叠起来,同zc
*             打开所有的折叠,同zR
=             将所有tag折叠起来,同zM
[[            跳到前一个文件
]]            跳到后一个文件
q             关闭taglist窗口
<F1>          显示帮助 

ctrlp

参考:https://github.com/ctrlpvim/ctrlp.vim#basic-usage

在.vimrc中我这边设置了两个快捷键:

shift+f:缓存优先查找文件

进入vim,normal模式下,快捷键效果如下:

shift+p:当前目录下,递归子目录查找,按快捷键即可快速查找对应文件

快捷键可以修改,在.vimrc文件中修改即可。

注意..vimrc文件中map映射时快捷键设置时:

<C-p> 指Ctrl+p

<S-p> 指shift+p

<leader>p 指\+p       

另外几个常用快捷键:参考:https://github.com/ctrlpvim/ctrlp.vim#basic-usage

Esc  退出查找ctrl + j/k 进行上下选择ctrl + x 在当前窗口水平分屏打开文件ctrl + v 同上, 垂直分屏ctrl + t 在tab中打开

ctrlp-funky

ctrlp-funky 可以模糊搜索文件内容的方法名

目前主要设置了两个快捷键:

shift+u:进入当前文件的函数列表搜索

ctrl+h:搜索当前光标下单词对应的函数。

注意:快捷键皆可在.vimrc文件中设置。

这篇关于vim进阶1.0 常用插件安装taglist+vundle+strlp+ctrlp-funky与使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524361

相关文章

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C