BetterSnapTool Mac 下窗口尺寸设置 双击最大化

Mac App Store 上的收费软件,¥12,有点小贵,但确实很好用。

在 Windows 下习惯了双击标题栏,让窗口最大化。

但 Mac 下窗口尺寸和位置的管理方式让我很难理解,默认的绿色按钮总是不能满足我的需求。

后来找到了这个软件,看到是收费的,犹豫了好久要不要买。

小冲动之下买了,实际上每天都会用到几十次,感觉太值了!

MacAppStore地址

MacVim 显示函数列表 插件 function list

习惯了图形界面 IDE 下开发,切换到 VIM 时没有函数列表真不习惯。

有用 ctags 和 taglist 的,但是要预先在本地环境建立 tag 索引。

我是用 SCP 软件连到服务器,用 SCP 软件调用本机 VIM 编辑文件,保存的时候 SCP 自动从本地覆盖到服务器。

这样的好处是,服务器死机、文件被覆盖,我自己正在编辑的代码不会丢失,我只要一保存,要么提示我另存到本地,要么直接覆盖服务器上的文件,对我来说都很安全。

但没有找到适合我的在 VIM 下显示函数列表的插件。

今天找了很久,偶然发现一个 functionlist.vim ,非常适合我。

官方地址

下载的 functionlist.vim 放到 ~/.vim/plugin/ 下即可。

然后打开任何一个代码文件,输入 :Flisttoggle 即可切换函数列表窗口。

想快捷操作,只要在 ~/.vimrc 中添加一个快捷键映射即可:

# 把切换函数列表的功能绑定到 F2 功能键上
map <F2> : Flisttoggle <CR>

完成!

 

Tags:

Mac 休眠文件 清理 删除 释放空间

Mac 上也有休眠功能,可以快速把内存数据保存到磁盘上,以便下次开机时可以迅速恢复到工作状态。

但代价是要占用跟内存同样大小的磁盘空间,比如内存是 4G,那么休眠数据文件就是 4G。

这对普通硬盘来说不算多大,但对 SSD 来说这 4G 空间就很宝贵。

而且,MacBook 最引以为豪的是超长时间睡眠,注意是睡眠,有功耗极低的电流保证内存数据不丢失,因此不太需要启用休眠功能。

这里找到了一个释放休眠文件空间的方法:

#首先切换为 root 帐号,这里会要求你输入密码
sudo -s
#清理休眠文件,把数据清空,文件仍然保留
echo "" > /var/vm/sleepimage
#设置系统关闭休眠
pmset hibernatemode 0
#退出 root 帐号
exit

完成!

MacVim

Mac 版 Vim 即 MacVim 已经迁移到 GitHub 下面:

https://github.com/b4winckler/macvim

 

主题列表

下载的 *.vim 主题文件,复制到 ~/.vim/colors/ 目录下,然后在 vim 中,通过

:colorscheme [TAB] 可以切换所有已安装的颜色主题。

 

我使用的 ~/.vimrc 内容

"语法高亮
syntax on
"颜色主题
colorscheme molokai
"不兼容vi模式
set nocompatible
"显示行号
set number
"按照C语法自动缩进
"set cindent
"设置缩进长度
set tabstop=4
set shiftwidth=4
set softtabstop=4
set noexpandtab
"显示括号对应
set showmatch
"实时显示搜索结果
set incsearch
"编码设置
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,utf-16,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"设置字体
set guifont=Menlo:h14
"设置透明度
"set transparency=15
set nocompatible
set history=500
set helplang=cn " 帮助文档设置中文
set number " 显示行号
set ruler " 状态行显示光标位置
set foldmethod=indent " 语法折叠为缩进
set autoindent " 自动缩进
set smartindent " 智能缩进
set tabstop=4 " 设定 tab 长度为 4
set shiftwidth=4 " 设定 &lt;&lt; 和 &gt;&gt; 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set textwidth=80 " 行宽度字符限制
set linebreak " 使英文单词在换行时不被截断
set wrap " 自动换行
set hlsearch " 高亮显示搜索结果
set incsearch " 输入搜索内容时就显示搜索结果
set ignorecase " 搜索忽略大小写
set smartcase " 有一个或以上大写字母时仍保持对大小写敏感
" 下面两条设置并不在终端下执行,原因是终端下会报错
if has('gui_running')
set autochdir " 自动切换当前目录为当前文件所在的目录
set autoread " 当文件在外部被修改,自动更新该文件
endif
" 配置vim文件目录变量$VIMFILES
if has('unix')
let $VIMFILES=$HOME.'/.vim'
else
let $VIMFILES=$VIM.'/vimfiles'
endif
" 显示Tab符
set listchars=tab:\|\ ,extends:&gt;,precedes:&lt;
autocmd filetype python set list
" python 中使用空格替换tab
autocmd filetype python set expandtab
" 设置各文件的补全字典文件
set complete+=k " 记住,这句非常重要,我就卡在这,不设置这句,下面的dictionary是不会生效的
autocmd filetype python set dictionary=$VIMFILES/dict/python.dict
autocmd filetype css set dictionary=$VIMFILES/dict/css.dict
autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict

这个配置暂时已满足我的需要了。
如果有更高要求的配置,可以查看这篇博文:http://nootn.com/blog/Tool/22/

 

在 ~/.vim/ 下建立需要的文件夹如 autoload, plugin, dict….

如果是前端,可以再添加一个插件 zencoding,可直接到 http:// github.com/mattn/zencoding-vim 下载 zencoding.vim 文件,一共两个,分别放在 autoload 和 plugin 下。

 

Windows ThinPC 中文语言

Windows ThinPC 中文语言 安装与设置

(1)下载链接

(2)把 lp.cab 放到 D:\lp.cab

(3)以管理员身份运行 CMD (在“开始”->“所有程序”->“附件”中,右键点击“命令提示符”,选择“以管理员身份运行”)

(4)dism /online /add-package /packagepath:D:\lp.cab

(5)bcdedit /set {current} locale zh-cn

(6)bcdboot %WinDir% /l zh-cn

完成后重启计算机。

 

到这里,都是网上的教程,但显示中文还是有问题。

比如,GBK 字符集的 TXT 文本文件,还有招商银行专业版的登录界面,中文都是以 ??? 显示。

 

彻底支持中文字符集的设置

进入控制面板,选择“区域和语言”设置,

(1)在“格式”标签,选择“中文(简体,中国)”

(2)在“位置”标签,选择“中国”

(3)在“管理”标签,下部有区域“非 Unicode 程序的语言”,点击“更改系统区域设置”,选择“中文(简体,中国)”

然后重启即可。

 

 

 

Tags:

Parallels Desktop Local IP HTTP Mac OS X

在 Mac 系统下的 Parallels Desktop 下运行 Windows,如果需要在其中的浏览器上访问 Mac 提供的 HTTP 服务,应该用什么 IP?

答案是 Gateway IP + 1。

在 Windows 上运行 CMD,然后命令行输入 ipconfig,找到 Default Gateway 那一项的 IP 地址。

我本机的例子是 10.211.55.1 ,那我的 Mac 的 IP 就是 10.211.55.2。

Tags:

arrayobject 帮助 json_encode 生成数字下标的对象

有个需求,我想得到一个 JSON 对象,key 是数字,比如:

{"0":"first","1":"second"}

第一个想法是用字符串做索引,看代码:

$arr = array();
$key = '0';
$arr[$key] = 'first';
$key = '1';
$arr[$key] = 'second';
$json = json_encode($arr);
echo $json;

得到的结果不是我想要的,而是作为 Array 类型的对象:

["first","second"]

如何得到 Object 类型的对象?

今天找到一个方法:

$arr = new arrayobject($arr);

在做 json_encode 之前把 $arr 转换成对象即可。

再次执行,得到想要的结果:

{"0":"first","1":"second"}

Tags:

zip 去掉包含的目录层次

zip 默认压缩文件时,会保持源文件地址的目录层次结构。

比如,压缩 apache 日志:

zip dest.zip /usr/local/apache/logs/access_log.20120808

unzip dest.zip

解压文件,会在当前目录下建立

./usr/local/apache/logs/access_log.20120808

这样的目录层次。

我不想要层次,只要 access_log.20120808 这个文件,咋办?

只需加一个

-j

参数(-j junk (don’t record) directory names)

zip -j dest.zip /usr/local/apache/logs/access_log.20120808