在vim中,如何将针对文件类型的自动命令应用于文件的区域?

j

我有一种可以在其中嵌入C,python,ruby等的多语言文件类型(如果有帮助,请考虑“ wiki页面”)。有没有一种方法可以对文件区域中的已知文件类型执行自动命令?

例如,我可能有:

#!bash
if [ a = b ]; then
   echo 'equal'
fi

#!python
if a = b:
    print('equal')

我想将bash文件类型自动命令应用于第一部分,并将python文件类型自动命令应用于后半部分。

通过使用方法定义区域,我只能得到语法提示,但是我对自动命令的理解不够,无法以类似的方式应用它们。

英戈·卡卡特(Ingo Karkat)

自动执行此操作具有挑战性,因为文件类型设置是本地缓冲区。Vim没有区域的概念,因此:autocmds需要正确使用。

快捷方便

使用类似Emacs的NrrwRgn-A Narrow Region Plugin之类的插件,您可以克隆区域以分隔暂存缓冲区。插件会自动将其同步回写状态。可以通过为每个缓冲区指定单独的文件类型:setf

甚至更简单的方法是定义一些映射以快速切换文件类型:

:nnoremap <Leader>fp :setf python<CR>
:nnoremap <Leader>fs :setf sh<CR>

单个缓冲区中真正分开的区域

这个草图很简单:

:autocmd CursorMoved,CursorMovedI <buffer> if line('.') >= 6 | setf python | else | setf sh | endif

这依赖于每个文件类型插件进行适当的清理(或覆盖所有相关选项)。

如何确定地区

您当然不希望像上面的草图中那样显式指定行号。如果您拥有/可以为每个块定义适当的语法区域,那么我的OnSyntaxChange插件可能会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将标签应用于Ansible任务文件中的每个命令?

来自分类Dev

如何将cat(UNIX)命令分别应用于文件夹中的所有文件?

来自分类Dev

如何将CDB调试器命令应用于文件中的每一行?

来自分类Dev

如何将命令应用于带空格的$ PATH上的文件?

来自分类Dev

如何将 aviglitch 脚本应用于文件夹中的每个文件?

来自分类Dev

将命令应用于目录中的所有文件

来自分类Dev

如何将.patch文件应用于项目?

来自分类Dev

如何将意图应用于整个文件

来自分类Dev

如何将.patch文件应用于项目?

来自分类Dev

如何将browserify应用于gulp文件?

来自分类Dev

如何将节点包中的功能应用于目录中的所有文件?

来自分类Dev

在elisp中,如何将反引号应用于从文件读取的列表

来自分类Dev

在elisp中,如何将反引号应用于从文件读取的列表

来自分类Dev

如何将元数据应用于内容目录中的所有文件

来自分类Dev

如何将正则表达式 sub 应用于 python 中的 csv 文件

来自分类Dev

如何将引导程序类应用于 css 文件中的每个相同的 HTML 元素?

来自分类Dev

以递归方式将Linux命令应用于单一(.sh)类型目录中的所有文件

来自分类Dev

如何将文件权限应用于新创建的文件?

来自分类Dev

如何将自动消息过滤器也应用于子文件夹?

来自分类Dev

如何将jquery命令应用于多个div?

来自分类Dev

如何将命令应用于第n列?

来自分类Dev

如何在vim中对文件类型使用保存操作?

来自分类Dev

PowerShell:将命令应用于多个文件

来自分类Dev

php脚本,无法将命令应用于生成的文件

来自分类Dev

如何将休眠验证应用于字符类型?

来自分类Dev

从配方构建时,如何将更改日志文件应用于PPA中的软件包?

来自分类Dev

从配方构建时,如何将更改日志文件应用于PPA中的软件包?

来自分类Dev

如何将MVC方法应用于Node.js中的app.js文件-Express Application

来自分类Dev

您如何将样式应用于 Gatsby 构建网站的降价文件中的数组?

Related 相关文章

  1. 1

    如何将标签应用于Ansible任务文件中的每个命令?

  2. 2

    如何将cat(UNIX)命令分别应用于文件夹中的所有文件?

  3. 3

    如何将CDB调试器命令应用于文件中的每一行?

  4. 4

    如何将命令应用于带空格的$ PATH上的文件?

  5. 5

    如何将 aviglitch 脚本应用于文件夹中的每个文件?

  6. 6

    将命令应用于目录中的所有文件

  7. 7

    如何将.patch文件应用于项目?

  8. 8

    如何将意图应用于整个文件

  9. 9

    如何将.patch文件应用于项目?

  10. 10

    如何将browserify应用于gulp文件?

  11. 11

    如何将节点包中的功能应用于目录中的所有文件?

  12. 12

    在elisp中,如何将反引号应用于从文件读取的列表

  13. 13

    在elisp中,如何将反引号应用于从文件读取的列表

  14. 14

    如何将元数据应用于内容目录中的所有文件

  15. 15

    如何将正则表达式 sub 应用于 python 中的 csv 文件

  16. 16

    如何将引导程序类应用于 css 文件中的每个相同的 HTML 元素?

  17. 17

    以递归方式将Linux命令应用于单一(.sh)类型目录中的所有文件

  18. 18

    如何将文件权限应用于新创建的文件?

  19. 19

    如何将自动消息过滤器也应用于子文件夹?

  20. 20

    如何将jquery命令应用于多个div?

  21. 21

    如何将命令应用于第n列?

  22. 22

    如何在vim中对文件类型使用保存操作?

  23. 23

    PowerShell:将命令应用于多个文件

  24. 24

    php脚本,无法将命令应用于生成的文件

  25. 25

    如何将休眠验证应用于字符类型?

  26. 26

    从配方构建时,如何将更改日志文件应用于PPA中的软件包?

  27. 27

    从配方构建时,如何将更改日志文件应用于PPA中的软件包?

  28. 28

    如何将MVC方法应用于Node.js中的app.js文件-Express Application

  29. 29

    您如何将样式应用于 Gatsby 构建网站的降价文件中的数组?

热门标签

归档