我正在浏览我的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.vim在after出于同样的原因.
但是,在我继续之前,我想询问是否有人有关于处理文件类型特定设置的最佳方法的建议.
我是OCaml的新手.我正在玩"你好世界"类型的片段,并遇到了这种情况.这是与翻译的会话,并附加一些额外的评论:
# let average a b =
(a +. b) /. 2.;;
val average : float -> float -> float = <fun>
# average 1. 4.;;
- : float = 2.5
# string_of_float (average 1. 4.);;
- : string = "2.5"
(* this fails...*)
# let _ = Printf.printf (string_of_float (average 1. 4.));;
Error: This expression has type string but an expression was expected of type
('a, out_channel, unit) format =
('a, out_channel, unit, unit, unit, unit) format6
(* yet …Run Code Online (Sandbox Code Playgroud) 假设我有一个类Foo,其中bar_包含一个包含某个状态的私有变量Foo.如有必要,我可以编写公共get/set方法bar_.当然,我尽可能地避免这种情况来维持封装.
假设我有这些get/set方法,每当我必须bar_在属于的方法中访问或修改时Foo,我通常直接执行它bar_,而不是使用get/set方法,我用它来bar_从类外部进行访问.除了关于直接访问变量的速度与调用方法的关注之外,我没有任何理由,但我怀疑如果get/set方法是内联定义的(它们是),它应该没有区别.这有什么不同吗?是否const内斯在其中发挥的作用?
到目前为止,我没有遇到任何问题,但我有一种挥之不去的感觉,我做错了.没有做任何令人信服的论据吗?关于这个的任何指导?
我正在考虑在我的大学学习手机软件开发课程.该课程使用J2ME和模拟器.我对手机的软件开发很感兴趣,但我觉得J2ME与iPhone和Android等新平台相比有些陈旧和有限.我对Android最感兴趣,因为我不喜欢iPhone的封闭性.
因此,如果我参加该课程,获得的技能将如何转移到像Android这样的平台?
我有一个相关的问题.我对Java(以及其他各种编程语言)很满意,但我还没有使用过J2ME.是否有任何东西使编程特别痛苦?(不管Java是不是很令人愉快)