linux 下 repl 乱码

Heroin 发表于 2013-06-14

有时候在repl下按键会出现乱码

例如退格的时候出现的是 ^H

方向键则出现的是 ^[[A, ^[[B, ^[[C, ^[[D

退格键

如果是退格键的话最简单的解决方式就是 通过 stty

# stty erase ^H

把这句放到/etc/profile 里面即可. 全局有效. 或者放到每个用户下的 profile 文件

方向键

方向键的话需要通过安装 rlwrap 来支持

rlwrap 需要通过 readline 库支持

可以采用编译 readline 方式

或者直接安装二进制包

# Debian
# apt-get install libreadline5-dev

# ReadHat
# yum install readline-devel

编译 readline

如果采用了安装二进制包, 请无视

wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
tar zxvf readline-6.2.tar.gz
cd readline-6.2
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001.sig
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-002
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-002.sig
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-003
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-003.sig
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-004
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-004.sig
patch -p0 < readline62-001
patch -p0 < readline62-002
patch -p0 < readline62-003
patch -p0 < readline62-004
./configure
make
make install

安装了二进制包后直接安装 rlwrap

wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz
tar zxvf rlwrap-0.37.tar.gz
cd rlwrap-0.37
./configure
make
make install

安装完毕后. 直接在需要repl前加上rlwrap执行就行了

例如:

进入 sbcl repl

rlwrap sbcl

还可以采用 设置别名的方式注册到 profile

alias sbcl='rlwrap sbcl'

lein 设置 repo 地址

Heroin 发表于 2013-06-08

全局设置

如果配置了$LEIN_HOME 那存在 $LEIN_HOME/profiles.clj

没有配置的话, 那就是存在 $HOME/.lein/profiles.clj

编辑 profiles.clj

{:user {:repositories {"snapshots" "http://maven.open-ns.org/libs-snapshot/"
                       "central" {:url "http://maven.open-ns.org/libs-release/"
                                  :snapshots false}
                       "clojars" "http://maven.open-ns.org/clojars/"}}}

其中地址可以设置成最近的一个地址

设置了repositories lein执行的时候会出现一个提示. 不过不碍事

配置了全局配置后, 所有的库都将从该配置的地址里面去获取

普通配置

进入项目目录, 编辑 projuect.clj

(defproject xxxx "1.0.0-SNAPSHOT"
  :repositories {"snapshots" "http://maven.open-ns.org/libs-snapshot/"
                 "central" {:url "http://maven.open-ns.org/libs-release/"
                            :snapshots false}
                 "clojars" "http://maven.open-ns.org/clojars/"})

添加 repositories 节点即可

debian 下 bind9 dns服务器

Heroin 发表于 2013-06-06

安装 bind9

比较懒, 直接通过 apt-get 方式安装

apt-get install bind9

安装完毕后主要的配置文件都在 /etc/bind/ 目录下

配置bind9

添加一个 正向解析

cd /etc/bind
touch db.open-ns.org

添加一个 反向解析

cd /etc/bind
touch db.12.168.192

配置正向解析

编辑 db.open-ns.org

$TTL    604800
@ IN SOA ns.open-ns.org. root.open-ns.org. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@                       IN  NS      ns.open-ns.org.
open-ns.org.            IN  NS      ns.open-ns.org.

ns.open-ns.org.         IN  A       192.168.12.5
dns.open-ns.org.        IN  A       192.168.12.5
version.open-ns.org.    IN  A       192.168.12.10
ci.open-ns.org.         IN  A       192.168.12.15
maven.open-ns.org.      IN  A       192.168.12.20
debian.open-ns.org.     IN  A       192.168.12.25
store.open-ns.org.      IN  A       192.168.12.30
zk-001.open-ns.org.     IN  A       192.168.12.121
zk-002.open-ns.org.     IN  A       192.168.12.122
zk-003.open-ns.org.     IN  A       192.168.12.123

以上我都是做的A记录, 可以根据需要做其他的解析MX CNAME

配置反向解析

编辑 db.12.168.192

$TTL    604800
@ IN SOA ns.open-ns.org. root.open-ns.org. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@       IN  NS      ns.open-ns.org.
5       IN  PTR     ns.open-ns.org.
10      IN  PTR     version.open-ns.org.
15      IN  PTR     ci.open-ns.org.
20      IN  PTR     maven.open-ns.org.
25      IN  PTR     debian.open-ns.org.
30      IN  PTR     store.open-ns.org.

全局配置

编辑 /etc/bind/named.conf 将 正向解析 和 反向解析 的配置文件加入

zone "open-ns.org" {
    type master;
    file "/etc/bind/db.open-ns.org";
};

zone "12.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.12.168.192";
};

编辑 /etc/bind/named.conf.options

forwarders {
    114.114.114.114;
    8.8.8.8;
};

最后在客户端上将dns服务器设置到当前服务器即可

编辑 /etc/resolv.conf

nameserver 192.168.12.5

C# 自定义 下拉框

Heroin 发表于 2013-05-08
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace Custom
{
    public class CustomComBoBox : ComboBox
    {
        private Color borderColor;

        /// &lt;summary&gt;
        /// 边框颜色
        /// &lt;/summary&gt;
        public Color BorderColor
        {
            get { return borderColor; }
            set { borderColor = value; }
        }

        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
            ControlPaint.DrawBorder(this.CreateGraphics(), this.ClientRectangle, this.BorderColor, ButtonBorderStyle.Solid);
        } 
    }
}

编译 vim

Heroin 发表于 2013-04-21

##下载vim

下载地址: ftp://ftp.vim.org/pub/vim/unix/

随便选择一个版本

##解压

tar jxvf vim–.tar.bz2

##编译vim

首先需要安装ncurses支持

###debian

apt-get install libncurses5-dev

###redhat

yum install ncurses-devel

进入vim解压后的目录, 执行configure

./configure --enable-multibyte --with-features=huge --prefix=/usr/local/vim

执行完毕后, 然后make

make VIMRCLOC=/usr/local/vim VIMRUNTIMEDIR=/usr/local/vim/runtime MAKE="make -e"
make install

make完毕后将runtime文件拷贝到编译后的目录

cp -R runtime /usr/local/vim/runtime

##配置vim

新增一个全局配置文件

touch /usr/local/vim/vimrc

可以将自己常用的一些配置拷贝进去

最后做一个软链, 将编译后的链接到path中去

ln -s /usr/local/vim/bin/vim /usr/local/bin/vim