分类目录归档:电脑网络

Mac ssh key

Mac 下创建了 ssh 密钥,但可能会发现不生效,原因是没有添加到列表中,可以用 ssh-add the_private_key_path 来添加,然后用 ssh-add -l 来列出列表确认已经添加。

但是可能会发现 mac 下重启后丢失所有 key, 需要重新用 ssh-add 添加,可以把密钥添加仅 keyChain 中来保存。

$ ssh-add -K the_private_key_path

Mac 自带 VNC 客户端

Mac 自带了 VNC 客户端,只是路径有点深,其路径为 /System/Library/CoreServices/Applications/Screen Sharing.app

使用 spotlight 或 alfred 的搜索 Screen Sharing 即可。

Git 文件名大小写问题

由于 Mac 下文件名大小写不敏感,造成 git 下如果改了名字,譬如小写改大些,推送到 linux 服务器的时候会没有效果,Github 上的也是小写。
所以,如果在 Mac 上改文件名,需要用下面的命令

$ git mv --force myfile MyFile

ZSH历史命令自动补全

oh-my-zsh 的默认配置在碰到历史命令替换时需要先替换出来确认一遍才会执行,不会默认执行。

如原本下面的命令会直接进入新建的目录

$ mkdir dir
$ cd !$
$

但在 zsh(oh-my-zsh 默认配置) 中,会变成

$ mkdir dir
$ cd !$
$ cd dir

移除这个的默认配置,只需在配置文件终稿添加 unsetopt hist_verify 即可。

终端进入目录自动运行 shell 脚本

利用 prompt 钩子,可以在终端进入目录时执行特定的 shell 代码。如:

Call function 'foo'
PROMPT_COMMAND=foo

# The function
foo() {
    pwd
}

对于使用 oh-my-zsh 的情况,可以直接做成插件形式,如:

# ~/.oh-my-zsh/plugins/puglin-xx

setopt PROMPT_SUBST

typeset -ga chpwd_functions

chpwd_functions+='foo'

function foo() {
    # whatever code
    pwd
}

利用这个特性可以做一些特殊的需求,比如检测 git 仓库的用户名是否是合适的(使用多家 git 托管服务且用户名不一致的情况下有用),分支是否 ok 等。

win8 升级到 8.1 卡住

把 win8 升级到 8.1 的过程中,在最后阶段一直卡在「应用更改」界面。

解决方法是:断网。

估计是更新相应的 modern 版应用,但由于国内网络环境问题,从而导致久久没法下载完成。

话说,进入了高速互联网年代后,各家软件都开始了只提供在线更新机制而很少提供完整离线安装升级包了。一旦处于网络稍差的环境或者涉及到跨国的情况下,通常就会出问题了,尤其是在不支持断点续传的功能的情况下。

集中管理与精简入口

vim 是个优秀工具,其自由强大的插件是一个很重要的因素。不过一直插件都是手动管理的,搜索下载插件,然后放到指定的目录。如果要升级的话,重新走一边流程(其实很少升级,一般没什么问题,都不会留意是否有新版本不会去升级)。迁移到别的系统中则是把 vimrc.vim 目录一起复制过去。

但手动的管理插件总感觉有些什么问题,更希望能有一个地方来集中管理,包括安装、升级和移除。把分散的维护工具放在一个统一的入口来做感觉会更好。

Vbundle 是出于这个目的的一个工具,我没有直接用这个工具,而是使用其一个衍生版本 NeoBundle ,基本思路是在 vimrc 中写上相应插件的列表即可做到自动安装、可选升级和移除等。

具体使用参照 文档 ,这里简单记录一下。
继续阅读