最近一直在折腾 sublime text2 这款编辑器,终于是用顺起来了。这里写篇 blog 记下如何快速的配置好一个易用的 sublime text,并分享一些技巧和资源。
以前有用过 vim ,用过 vim 的人都知道,这,是神奇,难以替代。但是要知道,不是每个人都可以驾驭神器的,而且神器也是有适用场景的。比如在 linux 环境下,配合 terminal 的一些命令使用 vim 真的是酣畅淋漓。但是换了 windows 就没有那么顺了。那么,可否有一个替代品呢,当然有很多,但是 sublime text2 作为 editor 里面的新宠当然有它的过人之处。我今天就主要写一下我使用 sublime 的经验。不过,有篇文章 Sublime Text 2 Tips and Tricks 已经算是 sublime 的 get started 了,我想,如果你没有用过 sublime 还是先看那篇比较好,这里会跟多的讲到配置的选择以及插件的推荐。
当然,一开始有一个非常重要的问题要谈,那就是为什么要用 sublime text2。额...这个问题吧,其实这是个人爱好问题。每种 editor 或者 ide 都有它们各自的优势和劣势,我不想在这上面吐太多口水。我主要列出来这么几点吧。
好吧,和 vim 类似,虽然安装好了的 sublime 就差不多可以用了,但是作为一个长期使用 editor 混饭吃的人,这当然是不够的。
sublime 有自己的 config 文件,我们可以设定一些喜好,让它更顺手。Preferences - Settings 有两个,一个是 settings - default 一个是 settings - User。我们大可以在 settings - user 里面大做文章。废话不多说,直接附上我觉得还不错的配置。
{
"color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
"detect_slow_plugins": false,
"rulers": [80],
"tab_size": 4,
"translate_tabs_to_spaces": true,
"ignored_packages": [],
"indent_to_bracket": true,
"use_tab_stops": true
}
对,就是这么简单,这样差不多就够了。这个配置会兼容 vim 模式,按下 esc 就会回到 vim 的普通模式了哦。虽然 sublime 下支持的 vim 的功能比较有限,但是用惯了 vim 的同学应该还是会比较亲切的。这个配置我做了一个 gist 在 https://gist.github.com/3617664。
然后这里要说一点,对于每种编程语言,其实都可以有一个新的配置文件来覆盖默认的配置的。点击 Preferences - Browse Packages 就会看到各种语言的收藏夹。在相应的文件夹下,新建并编辑 *.sublime-settings 文件即可。这里 https://stackoverflow.com/questions/9712113/can-i-set-tab-with-to-2-spaces-in-ruby-and-4-spaces-in-javascript-with-sublime-t 有介绍哦。
sublime 有个 package control 可以让你像 apt-get 那样轻松的安装文件。具体安装这个 package controll 移步这里 ===> https://wbond.net/sublime_packages/package_control/installation。安装了这个东西之后,就可以很爽的安装各种插件了啊!!!!下面就列几个我觉得很给力的插件吧!
这些插件当然不能满足我们的需求,其实很简单,在 ctrl_shift_p 之后 输入 install package 然后在新框框里面输入个比如 ruby 就看到各种 ruby 相关的包了,找个需要的安装之后立即就可以用了。
最后附上一个快捷键的列表,https://gist.github.com/3618541。多多使用快捷键确实可以大大简化我们的操作的。比如 ctrl_enter 可以不用走到行尾就可以在当前行下添加新的一行,ctrl_d 选中当前的单词等等。
整体来说就是这样了,sublime 没那么复杂,很好入手,推荐一试。
又好久没有写过什么东西了,八月马上就要过去了。这两天努力刷一下数据,让这个月的博客数目翻倍~( ̄▽ ̄)~。
感觉很久没有好好看书了,看的差不多都是技术类的 什么 professional advanced 或者 tutorial 或者 get started... 结网这本书虽然还是和技术脱不开干系,但我觉得对我来说起码是一个不小的进步了。以后在发展先去可以看看设计类的,然后就可以偏文艺类的 0_o...我的我自己都快不信了。
看这本书的最初原因就是因为它极好的口碑。我虽然没有看过,但是如果有人让我推荐产品类的书籍,我就会推荐给他这本书(我能有多不靠谱,不懂装懂),为了以后不被人识破,我决定把看这本书的优先级排的更前一些...过,看完这本书确实觉得受益匪浅,差不多改变了我对产品经理的印象。
之前由于工作的缘故,我也有接触过一些产品经理,但是一直都没有搞清楚他们的核心工作到底是什么内容。与我看来,他们的工作像是用户体验师与项目经理的综合体:一方面要控制项目的进度,保证项目如期完成;另一方面,要保证产品有很好的界面和体验。他们所做的实际工作让我认为 product manager 就是这个样子的。可是看了这本书,感觉就不一样了。产品经理在我心目中的印象得到了彻底的升华。
书中所说的产品经理是一个产品的倡导者与管理者。TA 负责这个产品从无到有,用户量从少到多的整个过程。书中以作者自己的网站糗事百科作为主要案例,谈及了自己切身体会到的不错的实践方法。非常的有说服力的论证了自己的一些观点。内容涉及了一个产品经理,甚至是一个互联网从业人员所遇的问题的方方面面,从产品设计到产品开发再到产品推广甚至是用户分析都有所涉及。书的页数虽然不多,但我感觉起到了领路人的效果,让像我这种半调子的人一下子上了道。如果在产品方面的知识积累上有个二八原理的话,那可以说,这本书让我花了 20% 的时间了解到了 80% 的关键知识。它给我构建了一个大的概念,为我以后的知识积累铺平了道路。
书中有很多很不错的例子。我一直认为样例是一个非常强大的东西,当你一个东西描述不清楚的时候,你举个例子给你的听众,让他们把抽象的概念与自己熟知的事物联系起来,可以大大降低理解的难度。写文档的时候也是这样,一坨注释不及一个 example snippet。在结网中,讲了很多有关用户体验的非常细节的东西,这些东西在很多情景感觉都不值得一提,甚至是很难描述出使用的场景。但是在一般将产品的书籍中,有了足够的讲解这些细节的环境,可以让作者在合适的地方娓娓道来。作者用非常有说服力的例子讲解了很多细节的重要性,也让我们这些做程序的人知道了这些东西并不是所有人都忽视的内容,相反,这些东西正是一个产品真正的价值所在。
为什么会有一个这样的透明边框,仅仅是为了好看么,有没有别的意义呢?在结网中就告诉我们,与那种覆盖整个页面的方式相比这样的边框的形式的侵入性更弱一些,但同时也可以让弹出框与其他的噪音很好的隔开来。这种细致的例子一方面说明了问题,另一方面也是对我们实际工作的一种极大的鼓舞:我们平时所关注的东西也是上得了台面的。其实,很厉害的产品就是这样的细节堆叠起来的。不是说这样的一个改动微不足道,不是说所谓的产品设计与用户体验多么的高深莫测。这些东西的存在都有他们简单而关键的道理的。了解了这些东西,让我们平时做东西的时候底气更足了,兴致更高了。
书中虽然告诉大家一个不懂技术的人也是可以做产品经理的,但是很明显的一个懂技术的人做产品经理可以有更多的优势。了解技术才能对产品的整个成长过程有更好的控制权。想想看,没有技术功底,你在开发阶段怎么敢胡乱插手研发中的细节。没有一些技术功底,很多概念不清楚,怎么去利用一些工具去做产品的分析。而且,其实对产品经理的技术要求也没有那么的高,就像是书中所说,知道概念,了解术语,知道一些开发的限制就差不多了,又没有人逼着产品经理去写代码。
我一直认为技术和产品是不分家的。技术是服务于产品的,你是为了做东西而做技术的。没有纯粹的技术,很多技术看起来很 geek 和实际产品接不上茬,但我觉得其实那些技术只是没有直接和大众所使用的产品衔接起来,而是服务于产品背后的产品的。比如对服务器的检测,负责均衡等等,这些都是为大众产品背后的产品服务的技术。书中提到的对产品的设计与技术方面的架构是有很多共同之处的。良好的设计在产品方面的效益在技术实现方面的效益也是有映射关系的。尤其是不要重复造轮子这方面的描述在技术方面也是经常提及的。而且,前面也说了,技术产品不分家。做技术是为了做好的产品,如果产品设计者给出的设计不让开发人员满意,那么开发人员怎么会全心全意的去打造这款产品呢。这样基本的道理就是有很多人不懂。人非机器,不是技术人员只关心技术。他们对产品有感觉,也有态度。他们对于产品的信心很大程度上决定了产品的质量。所以,一定要让技术人员也有一定的产品感,千万不要让技术人员把好的产品认为是不好的产品。
这本书其实泛化了产品经理的工作。与其说人人都是产品经理,不如说书中的很多道理都可以应用在其他的地方。整体来说,我觉得还是那么一句话,设计和计划是不能少的。偷懒和感性的乱来其实自己都会觉得不靠谱。
理性的记下的点滴,并逐一筛选,最后把筛选出来的结果付诸实践,通过自己的设计与开发将产品上线,然后把自己的产品推广开来并最大化自己的收益,这挺起来就让人很有兴致,值得一试。
css3 的 transition 真的是个非常好用的东西,但是之前一直有一个疑惑就是比如我让一个元素通过修改opacity
作出渐隐的效果,但是 opacity 变化成为 0 了之后要怎么办?我需要一个 callback 把它从 dom 中删除,但是 css 哪里来的 callback。一直都有这么一个疑惑,但是自己从来没有去用心的解决过这个问题,于是这个想法就一直搁置在那里 [1]。
最近实习遇到一下工作就是作一个 photo 的弹出展示的功能,功能类似于lightbox。但是由于项目的需求,不能添加非常庞大的额外的类库,需要手写个简化版本。在完成了基本的功能之后,我想要给这个控件添加一个fadeIn
fadeOut
的效果。按照通常的情景,我就直接上 jQuery 了,但是这次不行,要自己去作 [2]。于是我就想到了用 css 作这个工作了,这样是最简单的办法了。
查了一下资料,其实还是挺好实现的。https://www.greywyvern.com/?post=337#对这个技术有非常详细的讲解 [3]。我就把主要的东西再讲解一下吧。
首先上代码
/*part one*/
#image-box, #image-mask {
opacity: 0;
-webkit-transition:
opacity 0.3s 0,
visibility 0 0.3s;
}
#image-box.active {
opacity: 1;
}
#image-mask.active {
opacity: 0.3;
}
/*part two*/
#image-box.active,
#image-mask.active {
visibility: visible;
-webkit-transition-delay: 0;
}
part one 中,定义了元素的transition
以及最终的opacity
样式。这里有两个关键点:
display
而是采用visibility
。visibility
为hidden
时是对事件透明的。transition
设置delay
实现的。part two 中,通过修改delay
的时间实现了 visibility 在 active 时立即显示的效果。那么,这里我们可以看到,实现这样的动作需要加标志 active。
最后,上demo[4]。
其实有了 [3] 所说的东西,其实不需要我在这里累述的。但是其实我是来写感言的,以下才是本文的主题。
[1] 很多想法本身的优先级就不高,低的低于看动漫,上点评。所以几乎不会去作的。那么,需要一些机会或者是工具来帮助自己去实现这些看似优先级不高,但是积累 [5] 起来是非常有意义的东西。
[2] 实习就是一个非常不错的给自己提供机会的方式,任务驱动确实可以让自己去有很多机会作新的尝试的,而更重要的是自己作出这个选择。
[4] 利用更好的工具也是一个让自己更快的去做的好办法。jsbin 可以让自己用更快的速度去进行核心功能的开发而不需要关心其他琐碎的建立 html template,繁琐的打开浏览器不断的 F5。而且,目前的 jsbin 已经提供了 less 以及各种 js 类库的添加,这些都已经大大的节省了程序员的时间。
[5] "积累"是个很难完成的任务,它需要持之以恒,需要持续的迭代。所有的想法以及不错的技术都应该用一种便于检索的形式保留下来,以便自己之后可以更快的索取。
那么,之后我可能会去写一篇有关知识管理,时间管理以及项目控制的东西,来更好的给自己的发展提供一些指导意见。