Just a dump of handy live templates I use with IntelliJ. They should also work with WebStorm.
- Go to
settings
. - Search for
live templates
. - Under the javascript section you should be able to manage your templates.
let g:NERDTreeCustomReuseWindows = '1' | |
call NERDTreeAddKeyMap({ | |
\ 'key': 'w', | |
\ 'scope': 'all', | |
\ 'callback': 'NERDTreeCustomToggleReuse', | |
\ 'quickhelpText': 'Toggle use existing windows' }) | |
function! NERDTreeCustomToggleReuse() | |
let g:NERDTreeCustomReuseWindows = g:NERDTreeCustomReuseWindows ? 0 : 1 |
set nocompatible " 非兼容模式 | |
filetype off " required! | |
set rtp+=~/.vim/bundle/vundle/ | |
call vundle#rc() | |
Bundle 'gmarik/vundle' | |
Bundle "MarcWeber/vim-addon-mw-utils" | |
Bundle "tomtom/tlib_vim" | |
Bundle "honza/snipmate-snippets" | |
Bundle "garbas/vim-snipmate" |
When the directory structure of your Node.js application (not library!) has some depth, you end up with a lot of annoying relative paths in your require calls like:
const Article = require('../../../../app/models/article');
Those suck for maintenance and they're ugly.
function get(uri) { | |
return http(uri,'GET'); | |
} | |
function post(uri,data) { | |
if(typeof data === 'object' && !(data instanceof String || (FormData && data instanceof FormData))) { | |
var params = []; | |
for(var p in data) { | |
if(data[p] instanceof Array) { | |
for(var i = 0; i < data[p].length; i++) { | |
params.push( encodeURIComponenet(p) + '[]=' + encodeURIComponenet(data[p][i]); |
我一直很佩服能坚持写作的人。我自己写东西的时候八成都是这样的三部曲:产生强烈的表达冲动——越写越觉得自己的想法和表达有缺失——把半成品忘在草稿箱里。
今年我下决心无论如何都要把年终总结写出来,因为在生活的方方面面都发生了太多重要的事了。但是写着写着又开始自我怀疑:说了这么多事,好像每个都有点感悟,又每个都没写清楚,这算个什么哪门子的文章?正这么想的时候在推特上看到了 Rick Rubin 的一个视频叫作《How to deal with a creative block》。他鼓励内容创作者写东西就当作写日记,只为自己一个人写,认真写,不用为别人负责。
谢谢 Rubin,谢谢宇宙。这篇总结我就为了自己写。