【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 脚本和动态命令。
相关文章:
【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 这个配…...
[备忘]WindowsLinux上查看端口被什么进程占用|端口占用
Windows上 查看端口占用: netstat -aon|findstr <端口号> 通过进程ID查询进程信息 tasklist | findstr <上一步查出来的进程号> 图例: Linux 上 查看端口占用: netstat -tuln | grep <端口号> lsof -i:<端口号&…...
函数的扩展
文章目录 函数的扩展1.函数参数的默认值1.1 基本用法-- 参数变量是默认声明的,所以不能用 let或const 再次声明-- 使用参数默认值时,函数不能有同名参数1.2 与解构赋值默认值结合使用☆☆☆ 函数参数的默认值生效以后,参数解构赋值依然会进行…...
Cypress安装使用
node.js 安装使用Cypress总是会看见node.js,那就先看看node.js是什么。JavaScript以前运行需要在浏览器中(浏览器内置解释器),通过node.js框架内置v8引擎(也就是可以执行js脚本所需的工具),这样…...
怎么把图片改成jpg格式?
怎么把图片改成jpg格式?大家都知道,随着计算机被发明到现在已经存在了很多年,在这么多的的技术发展过程中,也形成了种类非常多的图片文件格式,例如平时我们能接触到的图片格式有jpg、png、gif、bmp、heic、tiff、jfif、…...
[一带一路金砖 2023 CTF]Crypto
题1 题目描述: from Crypto.Util.number import * from flag import flag import gmpy2 assert(len(flag)38) flag bytes_to_long(flag)p getPrime(512) q getPrime(512)e 304 enc pow(flag,e,p*q) print(p) print(q) print(enc) #9794998439882070838464987…...
FPGA【Verilog语法】
关键字: and always assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endprimitive endmodule endspecify endtable …...
Flume 整合 Kafka
1.背景 先说一下,为什么要使用 Flume + Kafka? 以实时流处理项目为例,由于采集的数据量可能存在峰值和峰谷,假设是一个电商项目,那么峰值通常出现在秒杀时,这时如果直接将 Flume 聚合后的数据输入到 Storm 等分布式计算框架中,可能就会超过集群的处理能力,这时采用 Kaf…...
VUE:侧边弹出栏组件,组件中有树状图,搜索框可筛选树状图节点,可收缩
作者:CSDN @ _乐多_ 本文记录了一个侧边弹出栏组件代码。代码即插即用。 弹出栏中有树状图,搜索框,可收缩。 其中,搜索框可筛选树状图节点。点击右侧小按钮可以收缩弹出框,点击X号也可以收缩弹出框。 文章目录 一、组件代码代码依赖element-plus库。且需要下载几个svg图…...
如何使用pytorch定义一个多层感知神经网络模型——拓展到所有模型知识
# 导入必要的库 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, random_split import torchvision.transforms as transforms import torchvision.datasets as datasets# 定义MLP模型 class MLP(nn.Module):def __…...
为什么引入SVG文件,给它定义属性不生效原理分析
背景: 我使用antd 的Icon组件引入SVG图片,但给svg图片定义styles样式时,不生效,为什么呢? 我们平时用antd组件库的 < ArrowRightOutlined style{{color: red }}>时为什么会生效呢,但我图一这样定义就…...
Integer包装类常用方法和属性
包装类 什么是包装类Integer包装类常用方法和属性 什么是包装类 Java 包装类是指为了方便处理基本数据类型而提供的对应的引用类型。Java 提供了八个基本数据类型(boolean、byte、short、int、long、float、double、char),每个基本数据类型对…...
基于Spring boot轻松实现一个多数据源框架
Spring Boot 提供了 Data JPA 的包,允许你使用类似 ORM 的接口连接到 RDMS。它很容易使用和实现,只需要在 pom.xml 中添加一个条目(如果使用的是 Maven,Gradle 则是在 build.gradle 文件中)。 <dependencies>&l…...
vue前端实现打印功能并约束纸张大小---调用浏览器打印功能打印页面部分元素并固定纸张大小
需求是打印指定div实现小票打印功能。调用浏览器的自带打印功能只能实现打印可视区域,所以这里采用截图新窗口打开打印去实现此需求。 1.安装html2canvas库实现截图功能 npm install html2canvas --save2.在需要进行截图和打印的组件中,引入html2canvas…...
音乐播放器蜂鸣器ROM存储歌曲verilog,代码/视频
名称:音乐播放器蜂鸣器ROM存储歌曲 软件:Quartus 语言:Verilog 代码功能: 设计音乐播放器,要求至少包含2首歌曲,使用按键切换歌曲,使用开发板的蜂鸣器播放音乐,使用Quartus内的RO…...
Arduino Nano 引脚复用分析
近期开发的项目为气体传感器采集仪,综合需求,选取NANO作为主控,附属设备有 oled、旋转编码器、H桥板、蠕动泵、开关、航插等,主要是用现有接口怎么合理配置实现功能。 不管stm32 还是 Arduino 都要看清引脚图 D2 D3 引脚是两个外…...
Go 函数多返回值错误处理与error 类型介绍
Go 函数多返回值错误处理与error 类型介绍 文章目录 Go 函数多返回值错误处理与error 类型介绍一、error 类型与错误值构造1.1 Error 接口介绍1.2 构造错误值的方法1.2.1 使用errors包1.2.2 自定义错误类型 二、error 类型的好处2.1 第一点:统一了错误类型2.2 第二点…...
数论分块
本质就是利用取整分数值的块状分布。 UVA11526 H(n) 题意: 求 ∑ i 1 n n i \sum_{i1}^{n} \frac {n}{i} ∑i1nin。 解析: ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor ⌊in⌋ 只有 O ( n ) O(\sqrt n) O(n ) 种取值,考虑将相同值同…...
宏任务与微任务,代码执行顺序
js引擎工作进程是同步的。事件循环机制,事件队列。 脚本代码执行顺序,是先执行同步代码,遇到微任务,就把它推进任务队列中。每个宏任务完成后,再执行下一个宏任务。 宏任务有哪些: i/o读写 定时器setTi…...
正方形(Squares, ACM/ICPC World Finals 1990, UVa201)rust解法
有n行n列(2≤n≤9)的小黑点,还有m条线段连接其中的一些黑点。统计这些线段连成了多少个正方形(每种边长分别统计)。 行从上到下编号为1~n,列从左到右编号为1~n。边用H i j和V i j表示…...
告别演唱会抢票焦虑:大麦网Python自动化抢票脚本终极指南
告别演唱会抢票焦虑:大麦网Python自动化抢票脚本终极指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为心仪歌手的演唱会门票秒光而烦恼吗?还在为黄牛高价票而心痛…...
Python数据库操作优化:从原理到实践
Python数据库操作优化:从原理到实践 1. 背景与动机 数据库操作是Web应用和数据处理系统的核心环节。优化数据库操作可以显著提升应用性能。本文将介绍Python数据库操作的优化技巧和最佳实践。 2. 核心原理 2.1 数据库性能瓶颈 网络延迟:应用与数据库的通…...
实战配置指南:5步完成Mermaid图表工具高效部署与调优
实战配置指南:5步完成Mermaid图表工具高效部署与调优 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程…...
智能家居集成终极指南:海尔设备互联互通的完整解决方案
智能家居集成终极指南:海尔设备互联互通的完整解决方案 【免费下载链接】haier 项目地址: https://gitcode.com/gh_mirrors/ha/haier 在智能家居快速发展的今天,设备互联互通已成为提升用户体验的关键。本文将详细介绍如何通过开源项目实现海尔智…...
告别官方驱动:深入解读ES7210寄存器,打造你自己的ESP32音频采集库
告别官方驱动:深入解读ES7210寄存器,打造你自己的ESP32音频采集库 在嵌入式音频开发领域,ES7210作为一款高性能多通道麦克风ADC芯片,因其出色的信噪比和灵活的配置选项,成为ESP32平台上音频采集的热门选择。然而&#…...
别再到处找教程了!Ubuntu 18.04 + Carla 0.9.13 + ROS Melodic 联合仿真环境保姆级搭建实录
Ubuntu 18.04 Carla 0.9.13 ROS Melodic 联合仿真环境实战指南 自动驾驶仿真环境的搭建往往充满挑战,特别是当多个复杂系统需要协同工作时。本文将带你一步步完成Ubuntu 18.04系统下Carla 0.9.13与ROS Melodic的联合仿真环境搭建,避开那些令人头疼的&…...
Qwen3-0.6B快速调用:LangChain助力,轻松玩转大模型
Qwen3-0.6B快速调用:LangChain助力,轻松玩转大模型 1. 快速了解Qwen3-0.6B Qwen3-0.6B是阿里巴巴开源的通义千问系列最新一代语言模型,拥有6亿参数规模。相比前代模型,它在推理能力、指令遵循和多语言支持方面都有显著提升。这个…...
ngx_queue_sort
1 定义 ngx_queue_sort 函数 定义在 ./nginx-1.24.0/src/core/ngx_queue.cvoid ngx_queue_sort(ngx_queue_t *queue,ngx_int_t (*cmp)(const ngx_queue_t *, const ngx_queue_t *)) {ngx_queue_t *q, *prev, *next;q ngx_queue_head(queue);if (q ngx_queue_last(queue)) {r…...
告别C盘爆满!Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略
告别C盘爆满!Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略 你是否经历过C盘空间告急的恐慌?当红色进度条填满磁盘图标时,那种窒息感堪比程序员面对满屏报错。对于嵌入式开发者而言,ESP-IDF环境安装往往成为C盘的"隐形…...
科研党必备:PSCAD+MATLAB联合仿真环境搭建全流程(从软件下载到Example测试成功)
科研党必备:PSCADMATLAB联合仿真环境搭建全流程(从软件下载到Example测试成功) 当一台崭新的Win11系统电脑摆在面前,电力电子与新能源领域的研究者往往面临第一个挑战:如何快速搭建可靠的PSCAD与MATLAB联合仿真环境&a…...
