为了回答超级用户的这个问题,我写了一个小的vimscript,它将检测符号链接的文件类型并改变语法高亮显示:
au BufNewFile,BufRead * if
因此,如果我打开一个没有扩展名的符号链接,它将查看它指向的文件的扩展名。
它起作用了,但一个意想不到的后果是现在我的. vimrc
文件的语法高亮显示消失了。默认情况下,我的. vimrc文件具有vim语法高亮显示(: ech
但是当我添加上面的行,
:回显
我不知道为什么会这样。不应该<代码>
当前文件为< code>~/时。vimrc,这部分代码
matchstr(resolve(@%),'.[^.]*$')
返回您的文件名:. vimrc
。
我不知道你怎么能想象/home/username/. vimrc
会产生vim
。
对于您试图解决的问题来说,这显然是一个糟糕的方法,但是没有错误:您得到的正是您想要的。使用filetype的文件名/扩展名不能可靠地工作(< code > js vs < code > JavaScript ,< code > py vs < code > python …)。
如果您希望您的代码执行您想要的操作,您可能需要一个文件名/文件类型列表或许多if/elseif
。
请参见: h语法加载
。
jszakmeister的答案准确地诊断了问题:<code>filetype。vim设置vimrc的文件类型。
不过,另一种解决方案是使用以下方法来保留. vimrc文件中包含的所有内容:
au BufNewFile,BufReadPre*如果
请注意从BufRead到BufReadPre的更改。此更改会导致此行在 filetype.vim 之前执行。语法将更改为 vimrc
,但随后更改为 vim
。结果是脚本按预期工作,但保留了 vimrc 的语法突出显示。
匿名用户
在Vim的运行时区域中查找filetype.Vim
。您可以通过以下方式在vim中提起:
:e $VIMRUNTIME/filetype.vim
在我的版本中,看起来这条线可以解决问题:
" Vim script
au BufNewFile,BufRead *vimrc* call s:StarSetf('vim')
也许您想将< code>autocmd放在< code>~/中。vim/after/filetype.vim。我相信这会导致它在系统之后被注册,然后< code >
问题内容: 我想用继承自JFrame icon的icon创建我自己的文件,并在java中对其进行设置,而我自己的文件使用FileOutputStream和ObjectOutputStream Thank you in advance 问题答案: @David是对的,因为主机平台拥有这些装饰,但是您可以使用这些图标,这些图标通常可以 概括该平台的图标。例如, 其他装饰默认列举 here. SSCCE
如何在这里设置我自己的消息,在我自己的语言上 无论设置为得到的消息是
在继续学习Vimscript之前,我们先找个添加新映射到~/.vimrc文件中的更方便的方法。 有时你正在疯狂的编码,突然发现加个映射会加速你的进度。你要立即将其加到~/.vimrc 文件中以防止忘记,但是你 不想 退出当前的文件,因为灵感稍纵即逝。 本章的主题是你想使编辑文件更为方便变得更为方便。 有点绕,但我没有拼错。再读一次。 本章的主题是你想使(((编辑文件)更为方便)变得更为方便)。 编
exVim 为用户提供4种不同的 .vimrc: .vimrc, .vimrc.plugins, .vimrc.plugins.local,.vimrc.local. 首先被载入的文件是 .vimrc,我们都熟悉它。在 .vimrc 配置你的 vim 之前,它会在同一个目录检查是否存在 .vimrc.plugins 然后载入它。这是 exVim 插件的默认设置。在 .vimrc.plugins 被
问题内容: 假设我们需要使用一个名为“ BaseNode”的类来实现不同类型的树,从该类派生其他类型的Node,并且它假定具有一个自己类型的实例变量,通常看起来像这样: 现在,如果我要为具有更多成员的AVL树派生Node: 原始(&)节点成员仍然会类型我实施AVL树,其防止。谁能告诉我如何解决这一继承问题?谢谢! 问题答案: 解决方案1- 每次访问时,都将其转换为。您可以在其中编写访问器以使其更加
我已经用这个方法在选择之前查看照片了。请注意照片。