Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VIM open YAML,语法突出显示来自STDIN_Vim_Syntax Highlighting - Fatal编程技术网

VIM open YAML,语法突出显示来自STDIN

VIM open YAML,语法突出显示来自STDIN,vim,syntax-highlighting,Vim,Syntax Highlighting,在将内容输送到vim-R时,您将如何指定语法类型 因为vim有一个vim.yalm插件,所以这个hi会正确地显示文件的内容 vim -R foo.yaml 但是,在使用管道时不会检测语法 cat foo.yaml | vim -R - 一种解决方法是在文件打开后键入:set syntax=yaml 我希望能够做到以下几点: cat foo.yaml | vim -R - --syntax=yaml 有没有一种方法可以通过语法hi lighting将文件的内容传递到vim-R 推理 在将k

在将内容输送到vim-R时,您将如何指定语法类型

因为vim有一个vim.yalm插件,所以这个hi会正确地显示文件的内容

vim -R foo.yaml
但是,在使用管道时不会检测语法

cat foo.yaml | vim -R - 
一种解决方法是在文件打开后键入:set syntax=yaml

我希望能够做到以下几点:

cat foo.yaml | vim -R - --syntax=yaml
有没有一种方法可以通过语法hi lighting将文件的内容传递到vim-R

推理

在将kubernetes配置文件应用到集群之前,我希望能够预览这些文件。我希望预览有颜色

helm template foo | vim -R -


如另一个堆栈溢出站点上所示,可以使用-c访问vim

e、 g vim-R-c“set syntax=yaml”-

将其包装在bash函数中可以提供我想要的东西

function vaml() {
  vim -R -c 'set syntax=yaml' -;
}
所以现在我可以做了

cat foo.yaml | vaml

如另一个堆栈溢出站点上所示,可以使用-c访问vim

e、 g vim-R-c“set syntax=yaml”-

将其包装在bash函数中可以提供我想要的东西

function vaml() {
  vim -R -c 'set syntax=yaml' -;
}
所以现在我可以做了

cat foo.yaml | vaml
是的,有一种方法:

cat foo.yml | vim -c "doautocmd BufRead x.yml" -R -
这告诉Vim,它应该像加载了名为x.yml的文件一样执行autocmd。这包括文件类型检测和语法。名称x.yml仅用于标识要运行的命令,不用于其他任何用途

也可能:

cat foo.yml | vim -c "doautocmd Filetype yaml" -R -
这会告诉Vim执行在检测到文件类型yaml时运行的autocmd。

是的,有一种方法:

cat foo.yml | vim -c "doautocmd BufRead x.yml" -R -
这告诉Vim,它应该像加载了名为x.yml的文件一样执行autocmd。这包括文件类型检测和语法。名称x.yml仅用于标识要运行的命令,不用于其他任何用途

也可能:

cat foo.yml | vim -c "doautocmd Filetype yaml" -R -

这会告诉Vim执行检测到文件类型yaml时运行的autocmd。

基于上面的autocmd答案:将以下内容添加到.vimrc或.Vim/ftdetect/k8s-yaml.Vim中:


通过这种方式,您可以直接将输出导入vim-。检测是针对Kuberntes和helm Yaml文件定制的,这些文件以--helm或apiVersion:kubectl开头。在autocmd上构建回答:将以下内容添加到.vimrc或.vim/ftdetect/k8s-Yaml.vim中:


通过这种方式,您可以直接将输出导入vim-。检测是针对Kuberntes&helm Yaml文件定制的,这些文件以--helm或apiVersion:kubectl开头

问了这个问题后,我在不同的站点上发现了可能的重复。问了这个问题后,我在不同的站点上发现了可能的重复:set syntax仅包含语法突出显示;最好使用setfiletype yaml,这样您还可以获得任何缓冲区本地选项、压头、映射以及可能为yaml文件定义的其他自定义设置。set syntax仅包括语法突出显示;最好使用setfiletype yaml,这样您还可以获得任何缓冲区本地选项、压头、映射以及可能为yaml文件定义的其他自定义设置。