首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让Vim在启动时在特定文件中运行命令

让Vim在启动时在特定文件中运行命令
EN

Stack Overflow用户
提问于 2020-05-01 01:45:47
回答 1查看 90关注 0票数 0

我想我可能在这里看到过一些类似的问题,但我真的没有任何东西来回答这个问题,以我理解的方式。我对Vim的使用有些陌生,所以我对它的真正潜力并没有太多的了解(除了知道它几乎是无限的)。基本上,当我在Vim中打开一个特定的文件时,我想启用一些自定义语法。为了确保我不会把答案的实现搞得一团糟,我将在这里发布命令。

代码语言:javascript
运行
复制
:syntax region Topic start="{==" end="==}"
:syntax region Symbol start="<" end=">"
:highlight Topic guifg=#abcdef
:highlight Symbol guifg=#fedcba

我可能会猜到,给人们提供指导,让他们通过一两个短的跳跃来找出确切的答案是最好的,但我对每次启动有问题的文件时都不得不运行这个特定的命令感到有点沮丧。如果可能,我可以放什么,我应该放在哪里,我应该放在哪里,这样我就不必在每次打开它时都键入这些命令了?

抱歉,如果这是一个骗局,我只是没有找到任何我理解为答案的答案。

EN

回答 1

Stack Overflow用户

发布于 2020-05-01 05:19:48

我认为将vim命令放在一个函数中并使用augroup调用该函数可能会起作用。

.vimrc中的函数定义为:

代码语言:javascript
运行
复制
function! Syntax_Highlighter()
    syntax region Topic start="{==" end="==}"
    syntax region Symbol start="<" end=">"
    highlight Topic guifg=#abcdef
    highlight Symbol guifg=#fedcba
endfunction

然后在您的.vimrc中,使用augroup命令调用上述函数:

代码语言:javascript
运行
复制
augroup highlighter
    au!
    au BufNewFile *.html call Syntax_Highlighter()
augroup END

在上面的代码片段中,将*.html更改为您想要的任何文件扩展名。

编辑:

方法2 :

如果您想自定义映射一个组合键来执行这些命令,那么您可以使用autocmd,而不是使用augroup

代码语言:javascript
运行
复制
autocmd FileType html map ,l :call Syntax_Highlighter()<cr>

这会将后跟l的组合键,映射到仅当当前文件具有html扩展名时才调用Syntax_Highlighter函数

同样,在这里,用所需的文件扩展名替换html

在第一种方法中,每当您打开具有适当扩展名的新文件时,都会调用该函数。在第二种方法中,当您在文件中按下具有适当扩展名的组合键时,该函数将被称为only。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61529607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档