【vim 学习系列文章 11 -- vim filetype | execute | runtimepath 详细介绍】

文章目录

    • filetype plugin indent on 什么功能?
    • vim runtimepath 详细介绍
    • vim 中 execute 命令详细介绍
      • execute pathogen#infect() 详细介绍

filetype plugin indent on 什么功能?

在网上我们经常可以看到vimrc配置中有 filetype plugin indent on 这个配置,那么这个配置的功能是什么呢?
filetype plugin indent on 是 Vim 中一个用于启动文件类型特定的插件和缩进的命令。

这个命令可以分为三个部分来理解:

  • filetype:这个命令是用来设置或者检测当前文件的类型;
  • plugin:这表示启动与文件类型相关的插件。这些插件会提供和特定文件类型相关的额外功能,比如对特定编程语言的补全、编译等;
  • indent:这表示启动与文件类型相关的自动缩进。Vim 会根据文件类型的规则来自动调整缩进,以达到更好的代码排版效果。

on 表示启动上述的功能。如果你想关闭这些功能,可以使用 off

所以,filetype plugin indent on 命令的作用就是启动与当前文件类型相关的插件以及自动缩进功能。

这个命令通常会放在 Vim 的配置文件(比如 .vimrc)中,以便每次启动 Vim 时都能自动执行。这样可以让 Vim 更好地支持各种类型的文件,提高编程效率。

vim runtimepath 详细介绍

runtimepath 在 Vim 中是一个非常重要的设置,它决定了 Vim 在什么地方查找运行时文件,如插件、帮助文件、语法文件等。

其默认设置通常包括 Vim 的系统文件夹、用户的配置文件夹,以及插件的文件夹。你可以使用 set runtimepath? 命令查看它的当前设置。

如果你要添加一个新的路径到 runtimepath,你可以使用以下命令:

set runtimepath+=/path/to/your/directory

例如,假设你的插件位于 ~/.vim/bundle/myplugin,你可以使用以下命令添加它到 runtimepath:

set runtimepath+=~/.vim/bundle/myplugin

这样,Vim 就会在这个路径下查找运行时文件。

需要注意的是,当你使用某些插件管理器(如 Pathogen、Vundle、vim-plug 等)时,它们会自动管理 runtimepath 的设置,你不需要手动修改它。

另外,runtimepath 的设置是可以包含多个路径的,各个路径之间使用逗号分隔。例如:

set runtimepath=/path/to/dir1,/path/to/dir2

这样设置后,Vim 就会在 dir1 和 dir2 这两个目录下查找运行时文件。

vim 中 execute 命令详细介绍

Vim 的 execute 命令用于执行字符串形式的 Vim 命令或表达式。

命令的基本格式如下:

execute {expr1} ..

这里的 {expr1} 是你希望执行的字符串形式的命令或表达式。

这个命令的主要用途是执行动态生成的 Vim 命令。execute 命令会将其参数作为一个 Vim 命令来执行,而不是作为一个字面字符串。

例如,下面的命令将会跳转到文件的第 10 行:

execute "normal 10G"

在这个例子中,字符串 “normal 10G” 是一个命令,它告诉 Vim 跳转到文件的第 10 行。

execute 命令也可以和其他 Vim 命令一起使用,以生成更复杂的行为。例如,下面的命令将会在命令行窗口执行 ls 命令:

execute "!ls"

在这个例子中,! 是一个 Vim 命令,它告诉 Vim 在命令行窗口执行后面的字符串。

execute pathogen#infect() 详细介绍

pathogen#infect() 是 Vim 插件管理器 Pathogen 的一个主要函数,用于在 Vim 启动时加载所有的插件。

在 Vim 的配置文件 .vimrc 中执行 execute pathogen#infect(),会使得 Pathogen 自动搜索 Vim 的插件目录(一般是 ~/.vim/bundle/),并加载其中的所有插件。

具体来说,pathogen#infect() 会做以下两件事情:

  • ~/.vim/bundle/ 下每个插件的目录分别添加到 Vim 的 runtimepath 中,这样 Vim 就能找到并加载这些插件。
  • 在 Vim 启动时自动执行每个插件的脚本文件。

假设你的 ~/.vim/bundle/ 目录下有两个插件 plugin1 和 plugin2,那么执行 execute pathogen#infect() 就相当于手动执行了以下命令:

set runtimepath+=~/.vim/bundle/plugin1 
set runtimepath+=~/.vim/bundle/plugin2

这样,Vim 就会自动加载这两个插件。如果你不使用 Pathogen,那么你需要手动设置每个插件的 runtimepath,并且在 Vim 启动时手动执行每个插件的脚本文件,这样做非常繁琐。

总之,execute pathogen#infect() 是使用 Pathogen 管理 Vim 插件的一个重要步骤。

总的来说,execute 命令是一个非常强大的工具,它允许你创建复杂的 Vim 脚本和动态命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python进阶(更新中)

typing Python的typing模块是Python 3.5版本引入的一个标准库,它提供了一种在Python代码中显式声明类型的方式,可以帮助开发人员更好地理解和使用Python的类型系统。 使用typing模块,您可以在函数、类、变量等地方添加类型注解,以…

VR智能家居虚拟连接仿真培训系统重塑传统家居行业

家居行业基于对场景的打造及设计,拥有广阔前景,是众多行业里面成为最有可能进行元宇宙落地的应用场景之一。 家居行业十分注重场景的打造及设计,而元宇宙恰恰能通过将人工智能、虚拟现实、大数据、物联网等技术融合提升,带来身临其…

vue使用腾讯地图,实现点标记,搜索

效果图&#xff1a; 1、public文件夹下index.html添加 // public/index.html <script src"https://map.qq.com/api/js?v2.exp&key你的ksy"></script> <script src"https://map.qq.com/api/gljs?v1.exp&librariesservice&key你…

【LeetCode】26. 删除有序数组中的重复项

1 问题 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &…

spring Boot使用Mybatis实践

Mybatis作为一款优秀的持久层框架&#xff0c;具有简化SQL编写、灵活性、易于集成、等特点深受开发人员青睐&#xff0c;下文将为大家讲到在Spring Boot中如何使用Mybatis 1、依赖引入 数据库驱动 <dependency><groupId>mysql</groupId><artifactId>…

django系列之事务操作

Django 默认的事务行为是自动提交&#xff0c;除非事务正在执行&#xff0c;否则每个查询将会马上自动提交到数据库。 1. 全局开启事务 在 Web 里&#xff0c;处理事务比较常用的方式是将每个请求封装在一个事务中。 在你想启用该行为的数据库中&#xff0c;把 settings 配置…

YOLOv5-训练自己的VOC格式数据集(VOC、自建数据集)

YOLOv5&#xff1a;训练自己的 VOC 格式数据集 1. 自定义数据集 1.1 环境安装 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple注意&#xff1a; 安装 lxmlPillow 版本要低于 10.0.0&#xff0c;解释链接: module ‘PIL.Image’ has no attri…

Hadoop3教程(十六):MapReduce中的OutputFormat

文章目录 &#xff08;105&#xff09;OutputFormat概述&#xff08;106&#xff09;自定义OutputFormat案例需求分析&#xff08;107/108&#xff09;自定义OutputFormat案例实现自定义Mapper自定义Reducer自定义OutputFormatDriver 参考文献 &#xff08;105&#xff09;Outp…

Jetpack:012-Jetpack中的弹出菜单

文章目录 1. 概念介绍2. 使用方法2.1 DropdownMenu2.2 DropdownMenuItem 3. 示例代码3.1 代码和注释3.2 代码难点3.3 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack中标题栏相关的内容&#xff0c;本章回中主要 弹出菜单。闲话休提&#xff0c;让我们一起Talk Android …

AI系统ChatGPT源码+详细搭建部署教程+支持GPT4.0+支持ai绘画(Midjourney)/支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

【vSphere 8 自签名证书】企业 CA 签名证书替换 vSphere Machine SSL 证书Ⅱ—— 创建和添加证书模板

目录 博文摘要3. 使用 Microsoft 证书颁发机构创建 Machine SSL 和 Solution User 证书模板3.1 打开 Certificate Template Console3.2 复制模板3.3 修改 Compatibility 选项卡3.4 修改 General 选项卡3.5 修改 Extensions 选项卡3.6 修改 Subject Name 选项卡3.7 确认新模板 4…

软件工程与计算总结(十六)详细设计的设计模式

一.设计模式基础 某种意义上来说&#xff0c;设计模式就是设计经验的总结~ 设计模式不是简单的经验总结&#xff0c;更不是无中生有&#xff0c;它是经过实践反复检验、能解决关键技术难题、有广泛应用前景和能够显著提高软件质量的有效的经验总结。 每个模式都不是独立的&a…

Docker安装GitLab及使用图文教程

作者&#xff1a; 宋发元 GitLab安装及使用教程 官方教程 https://docs.gitlab.com/ee/install/docker.html Docker安装GitLab 宿主机创建容器持久化目录卷 mkdir -p /docker/gitlab/{config,data,logs}拉取GitLab镜像 docker pull gitlab/gitlab-ce:15.3.1-ce.0运行GitLa…

Linux性能优化--性能追踪:受CPU限制的应用程序(GIMP)

10.0 概述 本章包含了一个例子&#xff1a;如何用Linux性能工具在受CPU限制的应用程序中寻找并修复性能问题。 阅读本章后&#xff0c;你将能够&#xff1a; 在受CPU限制的应用程序中明确所有的CPU被哪些源代码行使用。用1trace和oprofile弄清楚应用程序调用各种内部与外部函…

Jmeter接口测试 —— jmeter对图片验证码的处理

jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入&#xff0c;而且每次登录时图片验证码都是随机的&#xff1b;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段&#xff0c;然后再登录接口中使用&#xff1b; 通过jmeter对图片验证码…

在启智平台上安装anconda

安装Anaconda3-5.0.1-Linux-x86_64.sh python版本是3.6 在下面的网站上找到要下载的anaconda版本&#xff0c;把对应的.sh文件下载下来 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 把sh文件压缩成.zip文件&#xff0c;拖到启智平台的调试页面 上传到平台上 un…

ndk 编译报错 find_library called with incorrect number of arguments

ndk 编译报错 C build system [configure] failed while executing: echo off "C:\Users\Administrator\AppData\Local\Android\Sdk\cmake\3.22.1\bin\cmake.exe" ^ "-HF:\jupter\jupiter_offline_cv2\libts" ^ "-DCMAKE_SYSTEM_NAMEAndroid" ^…

什么是内存泄漏?JavaScript 垃圾回收机制原理及方式有哪些?哪些操作会造成内存泄漏?

1、什么是内存泄漏&#xff1f; 内存泄漏是前端开发中的一个常见问题&#xff0c;可能导致项目变得缓慢、不稳定甚至崩溃。内存泄漏是指不再用到的内存没有及时被释放&#xff0c;从而造成内存上的浪费。 2、 JavaScript 垃圾回收机制 1&#xff09; 原理&#xff1a; JavaS…

《从菜鸟到大师之路 正则表达式 篇》

《从菜鸟到大师之路 正则表达式 篇》 正则表达式是一个强大的文本匹配工具。但是&#xff0c;对于前端初学者来说&#xff0c;众多的符号和规则可能让人难以理解。其实&#xff0c;你不需要记住所有的正则表达式语法&#xff01;本文将分享一些简单而实用的技巧&#xff0c;帮…

【C++ 学习 ㉘】- 详解 C++11 的列表初始化

目录 一、C11 简介 二、列表初始化 2.1 - 统一初始化 2.2 - 列表初始化的使用细节 2.2.1 - 聚合类型的定义 2.2.2 - 注意事项 2.3 - initializer_list 2.3.1 - 基本使用 2.3.2 - 源码剖析 一、C11 简介 1998 年&#xff0c;C 标准委员会发布了第一版 C 标准&#xff0…