gpt4 book ai didi

vim - Vim 中如何调用特定于编程语言的设置以及如何检测 + 覆盖它们?

转载 作者:行者123 更新时间:2023-12-03 23:40:09 24 4
gpt4 key购买 nike

编辑器 Vim 带有许多不同编程语言的语法高亮。
问题:

  • 在 Emacs 中,特定于语言的设置称为“模式”。然而,在 Vim 中,术语“模式”指的是命令或插入模式。那么什么是 Vim 编程语言特定设置的术语呢?
  • 文档的编程语言是由其文件扩展名决定的,还是由其内容决定的?
  • 如何找出 Vim 处于哪种编程语言特定模式?
  • 我怎样才能一劳永逸地覆盖某类文档?
  • 最佳答案

    根据要求发布答案。

    (1) In Emacs, language-specific settings are called "modes". In vim, however, the term "mode" refers to command vs insert mode. So what is the vim term for programming language specific settings?



    等效的 Vim 术语是 filetype . Vim 使用 filetype s 应用特定于语言的选项、缩进、语法高亮、键映射等。这在帮助中有详细描述,参见 :h filetype .

    启用自动 filetype检测和处理,您通常会在 vimrc 中添加类似的内容:
    filetype plugin indent on
    syntax on

    要覆盖 Vim 以这种方式提供的设置,您需要将覆盖添加到文件 ~/.vim/after/ftplugin/<filetype>.vim (或等效的)。见 :h ftplugin更多细节。

    (2) Is the programming language of a document determined from its file name extension, or from its contents?



    两种方法都使用。 Vim 做得最多 filetype文件中的检测 filetype.vim在它的运行时目录中。要找出此文件的确切位置:
    :echo $VIMRUNTIME.'/filetype.vim'

    插件可以添加更多 filetype s,和/或覆盖标准检测和处理。

    (3) How can I find out which programming language specific mode vim is in?



    来自 Vim:
    set ft?

    (4) How can I overwrite that once and for all for a certain class of documents?



    更改 filetype当前文件的:
    :setf <new_filetype>

    或者
    :setl ft=<new_filetype>

    要使更改永久化:从 modeline 执行此操作(参见 :h modeline)。例如:
    # vim: filetype=python

    您也可以使用 autocmd s 达到相同的效果:
    autocmd BufRead,BufNewFile *.py setlocal filetype=python

    请阅读 :h filetype ,其中详细描述了所有这些。

    关于vim - Vim 中如何调用特定于编程语言的设置以及如何检测 + 覆盖它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40147462/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com