标签: ftplugin

在.vim和.vimrc中组织文件类型设置的最佳方法?

我正在浏览我的vim dotfiles来整理它们.我注意到,随着时间的推移,我以各种不一致的方式添加了各种文件类型特定的设置.让我们假设我正在为Python定制:

  • au BufRead,BufNewFile *.py (do something).我不喜欢这个,因为一些Python文件可能没有.py终止.

  • au FileType python (do something).这似乎是一个更好的选择,因为它不依赖于具有.py终止的文件.缺点是Vim不知道某些文件类型.我可以让Vim识别其他文件类型,但我也有各种不一致的方法:.vim/filetype.vim文件,另一个in .vim/after/filetype.vim和各种set filetype命令.vimrc.

  • 添加.vim/ftplugin/python.vim具有特定于文件类型设置的文件.我知道$VIMRUNTIME/ftplugin/python.vim可以覆盖我在这里设置的任何设置.一个问题是,我不知道该如何与交互.vim/filetype.vim.vim/after/filetype.vim.

  • 添加一个.vim/after/ftplugin/python.vim.我知道这是在之后加载的,$VIMRUNTIME/ftplugin/python.vim所以它可以从那里覆盖设置.和前面的方法一样,我不确定它是如何与filetype.vim文件交互的.

所以我至少有四种方法可以做到这一点,不提及语法文件和特定于文件类型的插件.在我看来,这样做是为了把我的文件类型的特定设置的最佳途径after/ftplugin,使他们不被覆盖,并filetypes.vimafter出于同样的原因.

但是,在我继续之前,我想询问是否有人有关于处理文件类型特定设置的最佳方法的建议.

vim file-type ftplugin

45
推荐指数
1
解决办法
2万
查看次数

如何在Vim启动后手动加载ftplugin?

假设我将.txt文件加载到Vim中.然后我想改变filetype=html但我也想要一个相关的ftplugin加载.我怎样才能做到这一点?

我已经尝试了类似的东西::set filetype plugin on:set filtype plugin_nameon :filetype plugin_name等等,但我似乎无法手动加载ftplugin.有什么建议?

我试过:filetype=html,然后:filetype plugin on和其他组合无济于事.

编辑:我无法用任何答案"完全"解决这个问题(但它可能与我的配置有关).然而,皮埃尔的答案非常好,所以我给了他绿色的复选标记.

vim plugins ftplugin

14
推荐指数
1
解决办法
1万
查看次数

如何在Vim中编辑HTML?

我是Vim的新手,我正试着习惯它.我刚刚创建了一个.vimrc文件,让Vim显示行号并进行增量搜索.我还启用了语法高亮.现在我想启用一些东西来简化HTML编写.我在/ usr/share/vim中搜索了html.vim,发现了这个:

/usr/share/vim/vim72/syntax/html.vim
/usr/share/vim/vim72/ftplugin/html.vim
/usr/share/vim/vim72/indent/html.vim
Run Code Online (Sandbox Code Playgroud)

现在,我需要做些什么来启用HTML自动缩进?将这些文件复制到〜/ .vim?符号链接他们?或者Vim是否自动从/ ​​usr/share/vim /加载它们?(它已经有HTML语法高亮,所以我认为这是可能的 - 但它不会做HTML自动缩进)我听说set autoindent.vimrc会做的伎俩,但是.c文件是什么?我认为他们需要set cindent,但确实使用HTML?

html vim indentation ftplugin

11
推荐指数
2
解决办法
1万
查看次数

禁用所有文件类型的自动更新

filetype plugin为一些我添加的rails vim插件打开了,但是这样的副作用似乎是现在所有文件类型都启用了自动更新(例如,如果我#在下一行开始一行,或者Enter在插入模式下或者O等进入插入模式,也会得到a #).

我找到了禁用自动注释的指南formatoptions,并将以下内容添加到我的.vimrc中:

au FileType * setlocal formatoptions-=cro
Run Code Online (Sandbox Code Playgroud)

但是,我仍然遇到问题 - 除非我明确地:source .vimrc(或setlocal ...直接输入),否则它不会生效.我确定是这种情况,因为vim的ftplugins正在用自己的选项覆盖我的选项.

然后我找到了第二个指南,讨论在ftplugin脚本运行后使用after ftplugin脚本进行更改,但是他们的解决方案是为〜/ .vim/after/ftplugin中的每个文件类型创建一个符号链接到中心文件,并且这似乎对我来说很愚蠢.

有没有办法创建一个通用的ftplugin脚本,还是我错误地解决了这个问题?任何帮助,将不胜感激.

vim ftplugin

4
推荐指数
2
解决办法
2206
查看次数

VIM - ftplugin似乎不起作用

我正在使用spf13的vim发行版https://github.com/spf13/spf13-vim.我一直在尝试使用2个空格而不是4个空格用于.js文件,因此我创建了一个js.vimin ~/.vim/ftplugin.我做错了吗?

js.vim

    set shiftwidth=2                " Use indents of 2 spaces
    set tabstop=2                   " An indentation every two columns
    set softtabstop=2               " Use two spaces while editing
Run Code Online (Sandbox Code Playgroud)

vim ftplugin

4
推荐指数
1
解决办法
2533
查看次数

对于C++文件,Vim ftplugin执行c.vim而不是cpp.vim

我正在学习Vim,我希望通过将F5键映射到由文件类型决定的编译命令来将其设置为IDE.

我的~/.vim/ftplugin/c.vim:

map <F5> :w<CR>:!clang % -o %:r.out && ./%:r.out<CR>
Run Code Online (Sandbox Code Playgroud)

我的~/.vim/ftplugin/cpp.vim:

map <F5> :w<CR>:!clang++ -ggdb -pthread -std=c++11 % -o %:r.out && ./%:r.out<CR>
Run Code Online (Sandbox Code Playgroud)

当我打开一个C++文件(带.cpp扩展名)并点击F5时,执行命令c.vim.为什么会这样?

当我删除文件c.vim,然后Vim加载cpp.vim并按预期工作.

vim ftplugin

3
推荐指数
2
解决办法
2015
查看次数

插件是由vimrc加载还是之后加载?

我对Vim加载插件文件的顺序感到困惑,并且似乎在网上找到混合的答案。 有些答案似乎表明vimrc在插件之前已加载,而其他答案表明它们是 vimrc的采购过程中在线上加载的filetype plugin indent on。有人可以说明一下after /目录中的vimrc,插件和插件的加载顺序,导致每个加载的原因以及在vim会话期间何时可以重新加载它们(例如,再次采购vimrc时会发生什么,何时重新出现)。设置文件类型等)?

vim vim-plugin ftplugin

2
推荐指数
1
解决办法
657
查看次数

使用ftplugin文件为当前文件类型打开缓冲区吗?

在Google进行一些搜索后,我没有找到任何答案或问题,但希望其他人也能看到此用法。

我认为iabbrevs在工作时提出新的特定文件类型会很不错。然后,您可以将其快速添加到目录中的filetype.vim-file中,ftplugin而不必开始查看文件类型并花费时间来提取正确的ftplugin文件。

我还不擅长自定义vim,但是如果有人可以提供一些建议,那将很酷。

vim code-snippets ftplugin

2
推荐指数
1
解决办法
74
查看次数

Ubuntu 12.10上的Vim 7.3在任何地方都没有'ftplugin'目录

Ubuntu 12.10上的Vim 7.3

我最近从Ubuntu软件中心安装了vim.到目前为止,我已经安装了以下vim插件:NERDTree,rails和ack.

我正在学习python上的课程,另外还有Ruby on Rails上的课程.令我感到惊讶的是,就缩进而言,vim无法识别语言.在这个论坛上检查各种问题和答案,以及检查vim帮助,我看到$ VIMRUNTIME目录中应该有一个名为"ftplugin"的目录.我的$ VIMRUNTIME和$ HOME一样〜/,但我的主目录中没有'ftplugin'.在〜/ .vim中也没有类似的东西.这是否意味着我没有任何文件类型的插件?

如果我不这样做,我在哪里可以获得通常的设置?

vim ftplugin ubuntu-12.04

0
推荐指数
1
解决办法
2559
查看次数