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

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2