Archive

Archive for the ‘未分类’ Category

为什么说 zsh 是 shell 中的极品?

March 7th, 2018 1 comment

(这是之前我在知乎上回答的一个可能对大家有点用处的答案,关于 zsh 的一些演示)

色彩高亮

并不是传统基于正则表达式的色彩高亮,而是真的会判断你输入的是啥的色彩高亮:

白色代表普通命令或者程序,红色代表错误命令,这个很管用,你再一个个字母的敲命令,前面都是红色的,如果敲对了最后一个字母的话,你会看到整条命令连着前面的都变成了白色,代表你敲对了。以前无高亮的时候敲错了都不知道,还要往上翻着左右检查。下面青色的代表内建命令或者 alias (echo 和 ls ),这些都不是正则判断出来的,是真的去检查的。

细心的人会发现非零的错误码,也会高亮显示在最右边(上一条 data命令错误,返回127)。

命令提示

注意,命令提示和补全是两个完全不同的系统,很多时候提示比补全更有用:

你才输入完 “tar”命令,后面就用灰色给你提示 tar 命令的参数,而且是随着你动态输入完每一个字母不断修正变化:

比如你输入到 – 后,没有跟着它上面的提示,而是输入了一个c字母,它马上明白你是要压缩,不是解压,然后随即给出你压缩对应的命令提示。

这个命令提示是基于你的历史命令数据库进行分析的,随着你输入的命令越来越多,提示将会越来越准确和顺手,某些不常输入的命令特别管用,比如偶尔查看下网卡配置:

刚输入完:cat /etc/n 它后面已经猜出你可能要查看网卡配置了,然后马上给出你提示,用不着你 tab 补全半天,你才敲 gc ,它就猜测出你可能想运行 gcc,然后马上给出完整建议:

Read more…

Categories: 未分类 Tags:

用vim被人说装逼,怎么办?

May 31st, 2017 No comments

从没见过 Vim 的用户神经病跑到 IDE / 大JB / sublime / vscode / atom … 话题下去砸场,让他们来用 Vim;反而天天看到 IDE / 大JB / sublime / vscode / atom 的用户天天跑到 Vim 话题板块下来劝退,骂装逼,骂程序写不好用编辑器找存在感,我就有点奇怪了。

究竟是谁在这里找存在啊?为何哪些板块下有些人天生就有那么大的优越感,觉得用 Vim 的人都是程序写的差的,不如他们的人呢?甚至因为写程序主要实在思考,其次才是在编辑,所以就觉得程序写的好的人编辑速度或者打字速度很慢居然是一种光荣。

按这种神逻辑, 写中文文章大部分也是思考,是不是要建议大家把联想输入法关闭,倒退到全拼时代才满意啊?不是还有文学大师至今不会打字全靠手写么,想学吗?这就叫反智,vim提高效率以后正是帮你解放大脑去思考,编辑工作直接小脑加脊柱反射就完成了,根本不需要把大脑费在编辑上。

我看很多 IDE 重度用户也很喜欢用 vscode / sublime 的嘛,为何不准别人 Vim 了呢? vscode / sublime 出来前觉得 IDE天下第一,vscode / sublime 出来后又觉得快速开发真方便;觉得 vscode/ sublime 配置性强,扩展丰富跨平台,集成 git 方便。我就奇怪了,这是在夸 Vim 么?这些点上 Vim 可以甩前两者十条街啊,只不过上手难点而已。

再说 IDE 板块有些用户,过来砸场也就砸了,根本砸不到点上,什么 Vim 不支持带上下文语义的智能补全的说法都出来了。jedi / deoplete / YCM / clang completor 等插件,都被吃了?

Categories: 未分类 Tags:

《新水浒传》为维稳出了一份大力

September 15th, 2011 2 comments

中心思想就是两个字“忠义”,哪怕这个制度已经腐朽了,哪怕让自己和兄弟被害死,但仍要忠于皇上,这种“大忠大义”被导演讴歌的无处不在,大结还被局命名为“忠义参天”。

导演真是煞费苦心呀,为了表现宋江的英雄气概,强行加了很多原著上没有的台词,什么“犯我中华者虽远必诛”来突出他的气概,很多吴用说的经典台词也挪给宋江来突出他的智谋。让宋江这个机会主义者和投降主义者摇身一变成为一个忠义英雄,打着替天行道大旗骗民心,跟皇帝搞统一战线维稳,打农民起义军。

鲁迅说过:“一部《水浒》,说得很分明:因为不反对天子,所以大军一到,便受招安,替国家打别的强盗—不‘替天行道,的强盗去了。终于是奴才。”

宋江的问题不是他“是否英雄”,“是否有勇有谋”,而是他搞错了一个根本问题:就是“为谁而战?”,应该是为老百姓而战,而不是为皇帝而战。搞错了“替天行道”的这个天是谁这个基本道理,天应该是民意而不是封建统治阶级。他压根没搞明白“爱国”和“爱朝廷”是两码事。

毛主席说过:“《水浒》这部书,好就好在投降。做反面教材,使人民都知道投降派。《水浒》只反贪官,不反皇帝。”

导演一厢情愿的歪曲原著讴歌忠义,要替宋江平反不惜添油加醋,是导演想相谁献媚呢?还是想为为谁维稳?我觉得实在是该记导演一大功劳呀!!

Categories: 未分类 Tags:

测试了一下:TT达到64

August 18th, 2011 4 comments

image

记录一下。

Categories: 未分类 Tags:

CYGWIN 环境搭建记录

August 12th, 2011 No comments

[sshd]

ssh-host-config

/var/empty目录的拥有者必须是sshd进程的拥有者, 而且权限必须是700; 如果sshd进程的拥有者不是SYSTEM, 则只有这个拥有者可以通过ssh登录系统, 因为sshd需要执行seteuid, 非系统账户执行seteuid将自己有效id设为其他用户时会被拒绝。

如果是在 Win7下面需要建立一个独立的用户,这时CYGWIN终端需要以管理员权限运行,否则用户设置失败,无法安装sshd服务。

[svnserve]

cygrunsrv -I svnserve -d “CYGWIN svnserve” –chdir /data/svnroot –path /usr/bin/svnserve –args “–foreground –daemon –root=/data/svnroot –listen-port=3690″ –neverexits –type auto -o

如果发现svnserve.exe无法监听在相应端口, 需要添加额外参数(–args中): –listen-host=0.0.0.0 (或监听在特定的ip或主机名上).

[passwd]

如果在cygwin中发现自己所在的组变成了”mkpaswd”, 这说明/etc/passwd或者/etc/group需要重建了, 运行:
mkpasswd -l >/etc/passwd; mkgroup -l >/etc/group

[httpd]

启动httpd服务时可能会报告”Bad system call”错误, 这是由于apache2需要cygserver, 运行:
cygserver-config

而且环境变量$CYGWIN中包含server, 参见[he CYGWIN environment variable].

[init]

配置启动 systemv 的 init 服务,管理员启动cygwin,并运行:

init-config

然后查看 /etc/inittab 和 /etc/rc.d/rc 两个文件,根据需要编辑,首先是   /etc/inittab:

# id:runlevels:action:process
id:3:initdefault:
rc::bootwait:/etc/rc
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
#S0:2345:respawn:/sbin/agetty -L -T vt100 -n ttyS0 9600 ttyS0

 

接下来是 /etc/rc.d/rc:

#! /bin/bash
# Now find out what the current and what the previous runlevel are.
argv1="$1"
set `/sbin/runlevel`
runlevel=$2
previous=$1
export runlevel previous

# Source function library.
. /etc/rc.d/init.d/functions

# Get first argument. Set new runlevel to this argument.
[ -n "$argv1" ] && runlevel="$argv1"

# echo "rc $runlevel" >> /tmp/rc.log

# Is there an rc directory for this new runlevel?
if [ -d /etc/rc.d/rc$runlevel.d ]; then
        # First, run the KILL scripts.
        for i in /etc/rc.d/rc$runlevel.d/K*; do
                # Check if the script is there.
                [ ! -f $i ] && continue

                # stop script
                $i stop
        done

        # Now run the START scripts.
        for i in /etc/rc.d/rc$runlevel.d/S*; do
                # Check if the script is there.
                [ ! -f $i ] && continue

                # start script
                $i start
        done
fi

 

不要直接复制上面的代码,最好照着用手敲,页面上 copy/paste 经常会把 indent 搞乱,bash脚本的缩进一乱就没法运行了。使用时把启动停止脚本放到 /etc/rc/init.d 下面,然后启动时候做软连接:

/etc/rc.d/rc0.d/K*     # 停止脚本
/etc/rc.d/rc3.d/S*     # 启动脚本
别忘记 init-config 时候把 init 安装成 windows 服务,如此,可以自由的增加自动启动脚本了。
 

[supervisor]

 
安装 python2-setuptools 然后:
easy_install_2.7 pip
pip install supervisor
mkdir /etc/supervisor
mkdir /etc/supervisor/conf.d
mkdir /var/log/supervisor
编辑 /etc/supervisor/supervisord.conf :
[unix_http_server]
file=/var/run/supervisord.sock
chmod=666

[supervisord]
logfile=/var/log/supervisor/supervisord.log
logfile_maxbytes=50000000
logfile_backup=10
loglevel=info
pidfile=/var/run/supervisord.pid
nodaemon=false
minfds=2048
minprocs=200
childlogdir=/var/log/supervisor

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisord.sock

[include]
files=/etc/supervisor/conf.d/*.conf

然后就可以使用了

Categories: 未分类 Tags:

山寨的GameLoft

August 5th, 2011 1 comment

既山寨又垃圾的GameLoft游戏,吃过亏后,我也长记性了,下游戏之前先看是不是有GameLoft字样,有的话,立马跳过。但前两天,我居然忘了看厂商,花了若干美刀下了个封面漂亮的游戏,打开游戏一看,我立马傻了,下意识的觉得不好!GameLoft!,仔细一看,果不其然。所以说好了伤疤忘了疼,吸取教训呀。

Categories: 未分类 Tags:

测试Live Writer 发布日志

April 13th, 2011 No comments

真方便呀,可以方便帖图片。

image

还可以粘贴代码

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("Hello, world\n");
    return 0;
}

Categories: 未分类 Tags:

今天要上课

April 10th, 2011 3 comments

周日周一要参加《绩效管理》培训,周二要给新人讲《服务端开发》,现在新版本的讲义还没有改好,累呀。

Categories: 未分类 Tags:
Wordpress Social Share Plugin powered by Ultimatelysocial