vim - vimrc 设置不是在开始时应用,而是在采购之后应用
问题描述
我的 vimrc 文件中有这些行:
set concealcursor=n
set conceallevel=3
hi AsteriskBold ctermfg=Green cterm=bold
syn match Asterisks contained "**" conceal
syn match AsteriskBold "\*\*[^*]\+\*\*" contains=Asterisks
如果我在 vim 中打开一个新文件,它们适用,但是如果我打开一个已经存在的文件,它在我运行之前不起作用:source ~/.vimrc
但是其他设置可以正确应用,我不必获取它们:
set directory=~/.vim/swapfiles//
colo torte
set tabstop=2
set autoindent
set number
我不明白为什么?我想它们被其他vim设置覆盖了,但如果它是一个新文件,我不知道如何找到设置覆盖它们的位置?
例如,如果我运行
touch test.txt
echo hello > test.txt
echo \*\*world\*\* >> test.txt
vim test.txt
我得到
1 你好
2 * * 世界 * *
~
~
~
现在如果我运行:verbose set conceallevel
它输出conceallevel=3
last modification in ~/.vimrc
如果然后我跑:source ~/.vimrc
我得到
1 你好
2世界
~
~
~
如果我再次运行:verbose set conceallevel
它仍然输出conceallevel=3
last modification in ~/.vimrc
所有这些都是在 .txt 文件上完成的,但如果我尝试 .js 文件,它的工作原理完全相同。但是,我的设置似乎不适用于 .html 文件,但我不在乎
解决方案
最后是这样的:
set concealcursor=n
set conceallevel=3
hi AsteriskBold ctermfg=Green cterm=bold
autocmd BufEnter * syn match Asterisks contained "**" conceal
autocmd BufEnter * syn match AsteriskBold "\*\*[^*]\+\*\*" contains=Asterisks
因为如果我在获取文件后编写autocmd ColorScheme * hi AsteriskBold ctermfg=Green cterm=bold
它不起作用事件;不知道为什么...
推荐阅读
- elasticsearch - ES_dsl.Q() 中“路径”的功能是什么?
- sql - 有没有办法从 SQL 中的一组列中获取所有非空值?
- python - 在 Jupyter 笔记本中重新加载 Python 模块(不自动重新加载)
- android - 快速启动状态选择后模拟器关闭
- javascript - 在单文件组件方法中使用 vue-styled-components
- ios - 与文本字段的用户默认值比较
- angular - 然后如何以角度2返回Promise的数据
- php - 教义 - 实体侦听器中注入实体之间的区别
- python - 加快python图像颜色阈值/过滤
- javascript - Babel 7 Jest Core JS “TypeError:wks 不是函数”