热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vimFILETYPE

FILETYPE*filetype.txt*ForVimversion6.4.文件类型*filetype**file-type*1.文件类型|filetypes|2.文件类型插

FILETYPE

*filetype.txt* For Vim version 6.4. 文件类型 *filetype* *file-type*1. 文件类型 |filetypes|
2. 文件类型插件 |filetype-plugins|
3. 缺省文件类型插件的文档 |ftplugin-docs|另见 |autocmd.txt|。{Vi 没有这些命令}


1. 文件类型 *filetypes* *file-types*Vim 可以检测要编辑的文件类型。这是通过检查文件名完成的,有的时候也检查文本里是
否包含特定的文本。*:filetype* *:filet*
要打开文件类型的检测,在你的 vimrc 里加入以下命令:
:filetype on
每次一个新的或者已经存在的文件被编辑时,Vim 会试图识别文件的类型,并设置
'filetype' 选项。同时,也触发 FileType 事件。该事件可以设置语法高亮,特定选
项,等等。注意: 文件类型和 'compatibile' 不能很好的一起工作。因为 Vi 兼容意味着所有的选
项都是全局的。如果你还那么做,建议复位 'compatible' 选项。详情: ":filetype on" 命令会加载以下文件中的一个:Amiga $VIMRUNTIME/filetype.vimMac $VIMRUNTIME:filetype.vimMS-DOS $VIMRUNTIME\filetype.vimRiscOS Vim:FiletypeUnix $VIMRUNTIME/filetype.vimVMS $VIMRUNTIME/filetype.vim该文件是一个 Vim 脚本,其中定义了 BufNewFile 和 BufRead 事件的自动命令。如果根据文件名不能检测到文件类型,则使用 $VIMRUNTIME/scripts.vim来根据文件内容检测之。要加入你自己的文件类型,见下面的 |new-filetype|。如果文件类型没有被自动识别,或者找到的是错误的类型,你可以手动设置 'filetype'
选项,或者在文件里加入模式行。例如,对于 IDL 文件,可以使用
:set filetype=idl
或者在文件中加入模式行:
/* vim: set filetype=idl : */*:filetype-plugin-on*
你可以为特定的文件类型允许插件文件的载入:
:filetype plugin on
如果文件类型检测以前尚未打开,载入该文件后就被打开了。该命令实际上载入了
'runtimepath' 里的 "ftplugin.vim" 文件。其结果是,在文件编辑时,相应的插件文件
也会载入 (如果文件类型能检测到)。|filetype-plugin|*:filetype-plugin-off*
你可以如此关闭之:
:filetype plugin off
文件类型检测此时没有关闭。但如果你关闭了,相应的插件就不会被自动载入。该命令实
际上载入了 'runtimepath' 里的 "ftplugof.vim" 文件。*:filetype-indent-on*
你可以为特定的文件类型载入缩进文件:
:filetype indent on
如果文件类型检测以前尚未打开,载入该文件后就被打开了。该命令实际上载入了
'runtimepath' 里的 "indent.vim" 文件。其结果是,在文件编辑时,相应的缩进文件
也会载入 (如果文件类型能检测到)。|indent-expression|*:filetype-indent-off*
你可以如此关闭之:
:filetype indent off
文件类型检测此时没有关闭。但如果你关闭了,相应的缩进文件就不会被自动载入。该命
令实际上载入了 'runtimepath' 里的 "indoff.vim" 文件。*:filetype-off*
要关闭文件类型检测,使用如下命令:
:filetype off
"plugin" 和 "indent" 的标志位还会保持,但是因为没有文件类型被检测到,直到下次
":filetype on" 为止,它们不会真的工作。总览: *:filetype-overview*命令 检测 plugin indent
:filetype on 打开 未改变 未改变
:filetype off 关闭 未改变 未改变
:filetype plugin on 打开 打开 未改变
:filetype plugin off 未改变 关闭 未改变
:filetype indent on 打开 未改变 打开
:filetype indent off 未改变 未改变 关闭
:filetype plugin indent on 打开 打开 打开
:filetype plugin indent off 未改变 关闭 关闭要查看当前的状态,只需输入:
:filetype
输出结果看起来大概如此:
filetype detection:ON plugin:ON indent:OFF

文件类型也用于语法高亮。如果使用 ":syntax on" 命令,文件类型检测也被安装。所
以,没有必要在 ":syntax on" 之后再执行 ":filetype on"。要关闭某种文件类型,在你的文件类型文件里加入一行。见 |remove-filetype|。*filetype-detect*
要再次检测文件类型:
:filetype detect
使用这个命令可以使你先编辑一个空白文件,任何输入足够的文本,使得文件类型能够被
识别。例如,你以此开始输入一个新的外壳脚本: "#!/bin/csh"。如果文件类型检测被关闭,它会先被打开。就像用了 "on" 参数那样。*filetype-overrule*
如果两个不同的文件类型使用了相同的扩展名,Vim 试图猜测到底该文件属于那个类型。
这并不总行。一些全局变量可以用来为某些特定的扩展名决定具体的文件类型: 文件名 变量 *.asa g:filetype_asa |aspvbs-syntax| |aspperl-syntax|*.asp g:filetype_asp |aspvbs-syntax| |aspperl-syntax|*.asm g:asmsyntax |asm-syntax|*.prg g:filetype_prg*.pl g:filetype_pl*.inc g:filetype_inc*.w g:filetype_w |cweb-syntax|*.i g:filetype_i |progress-syntax|*.p g:filetype_p |pascal-syntax|*.sh g:bash_is_sh |sh-syntax|*filetype-ignore*
要避免检测某些文件,用 g:ft_ignore_pat 变量。缺省值是:
:let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
这意味着压缩文件的内容不会被检测。*new-filetype*
如果你想使用的文件没检测到文件类型,有三种方法。不管如何,最好不要修改
$VIMRUNTIME/filetype.vim 文件。再安装新的 Vim 版本的时候它会被覆盖。A. 如果你想否决所有的缺省文件类型检查。这里,每种文件类型需要写一个文件。缺点就是,你需要很多文件。优点就是,你只需要把文件放到合适的目录就可以了。1. 建立你自己的运行时目录。通常,你会用 'runtimepath' 选项的第一项。然后,在其中建立 "ftdetect" 目录。Unix 上的例子:
:!mkdir ~/.vim
:!mkdir ~/.vim/ftdetect2. 建立包含检测文件类型的自动命令的文件。例如:
au BufRead,BufNewFile *.mine set filetype=mine注意 这里没有 "augroup" 命令。在执行你的文件的时候这点已经做好了。你可以使用 "*" 模式,然后分析文件内容来检测其类型。把该文件叫做 "mine.vim",并把它放在用户运行时目录的 "ftdetect" 目录里。例如,在 Unix 上:
:w ~/.vim/ftdetect/mine.vim
3. 要使用新的文件类型检测,你需要重新启动 Vim。"ftdetect" 目录的文件在所有的缺省检查之后进行,这样它们就能否决之前进行的文件类型检测。B. 如果你想在缺省文件类型检查之后检测自己的文件。和上述的 A 类似。但不是无条件的设置 'filetype',而是使用 ":setfiletype"。该命令只有在没有文件类型被监测到的前提下才会设置 'filetype'。例如:
au BufRead,BufNewFile *.txt setfiletype text在你的命令里,你可以使用已经检测到的文件类型。例如,在 "pascal" 类型已经被检测到的前提下,要使用文件类型 "mypascal":
au BufRead,BufNewFile * if &ft == 'pascal' | set ft=mypascal
| endif

C. 如果你的文件类型可以通过文件名检测。1. 建立你自己的运行时目录。通常,你会用 'runtimepath' 选项的第一项。Unix 上的例子:
:!mkdir ~/.vim2. 创建包含自动命令的文件用于检测文件类型。示例:
" my filetype file
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
au! BufRead,BufNewFile *.mine setfiletype mine
au! BufRead,BufNewFile *.xyz setfiletype drawing
augroup END
<在用户运行时目录下&#xff0c;把该文件存为 "filetype.vim"。例如&#xff0c;在 Unix 上:
:w ~/.vim/filetype.vim
3. 要使用新的文件类型检测&#xff0c;你需要重新启动 Vim。这里&#xff0c;你的 filetype.vim 会在缺省的 FileType 自动命令安装前被执行。所以&#xff0c;你的自动命令会先被匹配&#xff0c;而 ":setfiletype" 命令的时候保证了其后没有其他的自动命令会改变 &#39;filetype&#39;。*new-filetype-scripts*
D. 如果你的文件类型只能通过分析文件内容来检测。1. 建立你的用户运行时目录。通常&#xff0c;你会用 &#39;runtimepath&#39; 选项的第一项。Unix 上的例子:
:!mkdir ~/.vim2. 创立一个 vim 脚本&#xff0c;来实现需要的功能。示例:
if did_filetype() " filetype 已经设立..
finish " ..不需要这些检测
endif
if getline(1) &#61;~ &#39;^#!.*\&#39;
setfiletype mine
elseif getline(1) &#61;~? &#39;\&#39;
setfiletype drawing
endif更多的例子可以参见 $VIMRUNTIME/scripts.vim。把该文件命名为 "scripts.vim"&#xff0c;并保存在你的用户运行时目录。例如&#xff0c;在 Unix上:
:w ~/.vim/scripts.vim3. 检测会立即生效&#xff0c;无须重新启动 Vim。你的 scripts.vim 在文件类型的缺省之前被载入&#xff0c;这意味着你的规则会覆盖$VIMRUNTIME/scripts.vim 的缺省规则。*remove-filetype*
如果某个文件类型检测有问题&#xff0c;安装一个 filetype.vim 或者 scripts.vim 去捕获这个
问题 (见上)。你可以把 &#39;filetype&#39; 设成一个不存在的名字&#xff0c;使得以后不会被设置:
:set filetype&#61;ignored

如果你为许多用户设置系统&#xff0c;而不想为每个用户分别增加/删除相同的为件类型&#xff0c;考虑把
filetype.vim 和 scripts.vim 写到一个大家都能用的运行时目录里。查看
&#39;runtimepath&#39; 里有没有能用的目录。如果没有&#xff0c;在 |system-vimrc| 里设置
&#39;runtimepath&#39;。切记要保存缺省的目录。*autocmd-osfiletypes*
如果操作系统支持在文件里存储文件类型&#xff0c;你可以指定某一文件类型专用的自动命令。实际的类型检查决定于你运行 Vim 所处的平台&#xff1b;详情参见你的系统文档。要在自动命令里使用 osfiletype 检查&#xff0c;你应该把待匹配类型的模式串用尖括号括起来&#xff0c;
就像这样:

:au BufRead *.html,<&faf;HTML> runtime! syntax/html.vim

这会匹配:- 任何名字以 &#39;.html&#39; 结尾的文件
- 任何类型为 &#96;&faf&#39; 或者 &#39;HTML&#39; 的文件&#xff0c;这些类型的具体含义取决于你使用的 Vim的版本。未知的类型被认为是_不_匹配。你可以同时自动指定类型和模式 (这时两者必须都匹配):

:au BufRead <&fff>diff*

这个例子会匹配类型为 &#39;&fff&#39; 而且文件名以 &#96;diff&#39; 开始的文件。注意 osfiletype 的检查只有在 Vim 以 |&#43;osfiletype| 特性编译的时候才有效。*plugin-details*
"plugin" 目录可以在 &#39;runtimepath&#39; 选项里的任何一个目录里。所有这些目录都会被搜
索&#xff0c;查找到的插件会被全部调入。例如&#xff0c;如果命令:

set runtimepath

产生这样的输出:

runtimepath&#61;/etc/vim,~/.vim,/usr/local/share/vim/vim60

那么 Vim 会调入以下目录的所有插件:

/etc/vim/plugin/
~/.vim/plugin/
/usr/local/share/vim/vim60/plugin/

注意 最后一项是 $VIMRUNTIME 被扩展的值。有没有可能你的插件好像没有被调入呢&#xff1f;通过 |-V| 参数&#xff0c;你可以看看 Vim 启动的时候
发生了什么:
vim -V1
你会看到很多信息。其中有关于调入插件的一行注释。它这样开始:
Searching for "plugin/*.vim" in
这样&#xff0c;你就能看到 Vim 在哪里查找你的插件脚本了。


2. 文件类型插件 *filetype-plugins*如果允许载入文件类型插件 |:filetype-plugin-on|&#xff0c;相应的选项会被设置&#xff0c;映射会被定
义。它们都局部于缓冲区&#xff0c;不会影响其他的文件。定义文件类型的映射可能会影响你自己定义的映射。有一些方法可以避免这一点:
1. 设置 "maplocalleader" 变量为你想映射开始的键序列。例如:
:let maplocalleader &#61; ","所有的映射现在都以逗号开始&#xff0c;而不是缺省的反斜杠。另见 ||。2. 定义你自己的映射。例如:
:map ,p MailQuote你需要检查下面给出的插件文件的描述&#xff0c;以了解它们的功能和映射到的字符串。你需要在插件载入之前定义自己的映射。 (在编辑该类型的文件之前)。该插件就可以跳过缺省映射的安装了。3. 屏蔽特定文件类型的映射可以通过设置一个变量进行。该变量包含文件类型的名字。对于 "mail" 文件类型它可能是:
:let no_mail_maps &#61; 1

4. 通过设置变量屏蔽所有文件类型的映射:
:let no_plugin_maps &#61; 1*ftplugin-overrule*
如果某个全局文件类型插件不完全符合你的期待&#xff0c;有三个办法可以改变:1. 增加一些设置。你必须在 &#39;runtimepath&#39; 靠前的一个目录里建立一个新的文件类型插件。Unix 上&#xff0c;你可以使用这个文件:
vim ~/.vim/ftplugin/fortran.vim你可以设置你希望有的选项和映射。注意&#xff0c;全局插件会在其后进行。它可能会否决你做的那些设置。如果发生了&#xff0c;你有以下两种方法。2. 建立一个插件的备份&#xff0c;并改变之。你需要把该备份放在 &#39;runtimepath&#39; 靠前的位置。Unix 上&#xff0c;你可以这么做:
cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim这样你可以自由的编辑你的备份文件。因为 b:did_ftplugin 会被设置&#xff0c;全局的插件就不会载入自身。这样做的一个缺点是&#xff0c;如果发行的插件版本更新&#xff0c;你需要重新复制并再次进行修改。3. 在载入全局插件以后否决一些设置。你需要在 &#39;runtimepath&#39; 的尾部建立一个新的文件类型插件。Unix 上&#xff0c;你可以使用这个文件:
vim ~/.vim/after/ftplugin/fortran.vim在这个文件里&#xff0c;你可以对需要的设置进行改变。


3. 缺省文件类型插件的文档 *ftplugin-docs*CHANGELOG *changelog-plugin*允许方便的输入 Changlog 文件的 Changelog 段 (entry)。有些命令&#xff0c;映射和变量值得
探索一下:选项:
&#39;comments&#39; 置为空&#xff0c;以免影响排版。
&#39;textwidth&#39; 设为 78&#xff0c;这是标准。
&#39;formatoptions&#39; 增加 &#39;t&#39; 标志位&#xff0c;使得插入文本时能进行回绕。命令:
NewChangelogEntry 智能地增加新的 Changelog 段 (见下)。局部映射:
o 同样智能地开始一个新的 Changlog 段 (见下)。全局映射:注意: 全局设置是通过先执行 ftplugin/changelog.vim 文件设置的。例如在你的 |.vimrc| 里加上:
runtime ftplugin/man.vimo 切换到为当前目录打开的 ChangeLog 缓冲区。如果当前目录已存在该文件&#xff0c;在新的缓冲区打开之。然后执行上述局部o 的功能。变量:
g:changelog_timeformat Changelog 段使用的日期 (和时间) 格式。该格式和|strftime()| 函数使用的语法相同。缺省值是 "%Y-%m-%d"&#xff0c;这是许多 ChangeLog 排版所使用的标准格式。
g:changelog_username 用户的名字和 email 地址。缺省值从环境变量和系统文件里推得。它先搜索当前用户 /etc/passwd 的注释部分。非正式的&#xff0c;该项在第一个分隔的逗号之前的部分包含了用户的实际名字。然后它再检查 $NAME 环境变量&#xff0c;最后运行 &#96;whoami&#39; 和&#96;hostname&#39; 来构造一个 email 地址。最终形式是
Full Name g:changelog_new_date_format建立新的日期项目时所用的格式。下表描述字符串中的特殊记号:%% 插入单个 &#39;%&#39; 号%d 插入上述的日期%u 插入上述的用户%c 完成时光标的位置缺省值是 "%d %u\n\n\t* %c\n\n"&#xff0c;它会产生如下的结果(| 是光标键要到的位置&#xff0c;除非出现在行首。那里它就是意味着一行的开始)
|2003-01-14 Full Name
|
| * |g:changelog_new_entry_format建立新段所用的格式。下表描述字符串里的特殊记号:%c 完成时光标的位置缺省值是 "\t*%c"&#xff0c;产生的结果如下
| * |g:changelog_date_entry_search搜索日期项所用的搜索模式。g:changelog_new_date_format 所使用的特殊记号这里也可以使用。缺省值是 &#39;^\s*%d\_s*%u&#39;&#xff0c;它能找到匹配如下形式的行
|2003-01-14 Full Name 和一些类似的格式。Changelog 段插入时&#xff0c;只需要输入最少量的文本。在确定当前日期和用户后&#xff0c;在该文件里
会搜索以当前日期和用户开头的一段&#xff0c;如果找到了&#xff0c;则在其后添加一个新项。如果没有&#xff0c;
则从 Changelog 文件开始处添加新的段和项目 (item)。FORTRAN *fortran-plugin*选项:
&#39;expandtab&#39; 被打开&#xff0c;按照 Fortran 标准的要求&#xff0c;不应出现制表字符。用户在.vimrc 文件里设置 fortran_have_tabs 除外。
&#39;textwidth&#39; 按照 Fortrean 标准要求&#xff0c; 固定宽度源文件格式设为 72&#xff0c;自由格式的源代码设为 80。
&#39;formatoptions&#39; 设为能断开代码和注释行&#xff0c;并保留长行。你可以用 |gq| 排版注释。
更多的关于 fortran_have_tabs 和检测源代码格式的方法的讨论&#xff0c;可见
|fortran-syntax|。MAIL *mail-plugin*选项:
&#39;modeline&#39; 被关闭&#xff0c;以防特洛伊木马。也防止含有 "Vim:" 字样的标题会引起错误信息。
&#39;textwidth&#39; 设为 72。这是 e-mail 推荐的格式。
&#39;formatoptions&#39; 设为能断开文本行&#xff0c;并且在新行里重复注释的前导符&#xff0c;这样引用开头的">" 就可以重复了。你也可以用 |gq| 排版引用文本。局部映射:
q 或者 \\MailQuote引用可视模式下的选择文本&#xff0c;或者在普通模式下从光标位置到文件末的文本。这意味着 "> " 会插入到每行的开始。MAN *man-plugin* *:Man*较好的显示手册页。另见用户手册中的 |find-manpage|。在能在调入任何手册页之前使用 ":Man" 命令&#xff0c;你需要在启动的 vimrc 文件里先执行以
下脚本:

runtime ftplugin/man.vim

选项:
&#39;iskeyword&#39; 加入 &#39;.&#39; 字符&#xff0c;以便能在手册页名字上使用 CTRL-]。命令:
Man {name} 在窗口里显示 {name} 的手册页
Man {number} {name}在第 {number} 节里显示 {name} 的手册页。全局映射:
K 显示当前光标下的单词的相应手册页。局部映射:
CTRL-] 跳到当前光标下的单词的相应手册页。
CTRL-T 跳回前一次的手册页。RPM SPEC *spec-plugin*因为这个插件的文本相当长&#xff0c;它被单独列出: |pi_spec.txt|。vim:tw&#61;78:ts&#61;8:ft&#61;help:norl:

Generated by vim2html on Tue Mar 21 11:57:55 CST 2006



推荐阅读
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 本文讨论了在dva中引入antd组件table时没有显示样式的问题。提供了.roadhogrc文件的配置,包括环境和import的设置。同时介绍了extraBabelPlugins和transform-runtime的使用方法,并解释了libraryName和css的含义。 ... [详细]
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
  • xhci规范中整体软件模型如下图所示:这里描述的主要是上图中xhci部分,包括软件和硬件。1.接口架构这里主要分为三部分:1)HostConfigurationSpace.每个xH ... [详细]
author-avatar
灵绾绾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有