LittleQ

爱好:写代码

首先在终端中安装

1
sudo apt-get install mysql-server

安装中途会要求输入密码,直接输入就可以了。
等待安装完成就可以登录了

1
~$ mysql -uroot -p+yourpassword

NOTE: 假设你的密码是123456,那么最后就是-p123456

在IDEA中配置MySQL

View->Tool Windows->DataBase,打开数据库配置窗口
数据库配置窗口
+号,Data Source选择MySQL配置添加,填上自己的用户名和密码,注意第一次添加需要下载驱动
数据库连接配置Driver files里会提示你下载。
0 tables 0 procedures下面有红色的提示,点击download就可以下载了,下载好了,点Test Connection
测试数据库连接
出现这个就说明成功了,记得上面没有配置Database
数据库控制台
最终效果就是这样,可以直接写SQL语句,然后执行。

目前常用的Linux系统和OS X系统的默认Shell都是bash,但是真正强大的Shell 是深藏不露的zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』,但是由于配置过于复杂,所以初期无人问津,很多人跑过来看看 zsh 的配置指南,什么都不说转身就走了。直到有一天,国外有个穷极无聊的程序员开发出了一个能够让你快速上手的zsh项目,叫做「oh my zsh」,Github网址

好,下面我们以Ubuntu 14.04为例看看如何安装、配置和使用 zsh。

安装oh my zsh

首先确保你安装了git, zsh,如果没有安装,按下面的命令来安装:

1
2
sudo apt-get install -y git
sudo apt-get install -y zsh

装好了zsh还不够,还需要设置一下系统默认的shell环境:

1
chsh -s $(which zsh)

然后重启,或者注销系统重新登陆。
然后就可以安装oh-my-zsh了:

1
2
git clone git@github.com:robbyrussell/oh-my-zsh.git
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

NOTE: 有个地方要特别注意,之前的Java开发等环境变量都配置在了.bashrc文件里,如下图所示:

1
2
3
4
5
6
7
8
export JAVA_HOME=/usr/dev/jdk1.7.0_40
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export M2_HOME=/usr/dev/apache-maven
export PATH=$PATH:${M2_HOME}/bin
export M2_HOME=/usr/dev/apache-maven
export PATH=$PATH:${M2_HOME}/bin

当我安装好oh my zsh之后,这些环境变量都失效了,研究一番才明白,我已经把默认的shell换成.zshrc了。所以需要把所有的环境变量重新配置到zshrc里,把你需要的这些内容拷贝到.zshrc里即可。

配置

zsh的配置主要集中在用户当前目录的.zshrc里,用vim或你喜欢的其他编辑器打开.zshrc

配置快捷命令

可以在此处定义自己的环境变量和别名,当然,oh my zsh在安装时已经自动读取当前的环境变量并进行了设置,你可以继续追加其他环境变量。

接下来进行别名的设置,我自己的部分配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'
alias javac="javac -J-Dfile.encoding=utf8"
alias grep="grep --color=auto"
alias -s html=mate # 在命令行直接输入后缀为 html 的文件名,会在 TextMate 中打开
alias -s rb=mate # 在命令行直接输入 ruby 文件,会在 TextMate 中打开
alias -s py=vi # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
alias -s js=vi
alias -s c=vi
alias -s java=vi
alias -s txt=vi
alias -s gz='tar -xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'

NOTE: zsh的牛逼之处在于不仅可以设置通用别名,还能针对文件类型设置对应的打开程序,比如:

1
2
3
alias -s html=mate,意思就是你在命令行输入 hello.html,zsh会为你自动打开 TextMat 并读取  
hello.html
alias -s gz='tar -xzvf',表示自动解压后缀为gz的压缩包。

总之,只有想不到,木有做不到。

配置主题

设置完环境变量和别名之后,基本上就可以用了,如果你是个主题控,还可以玩玩zsh的主题。在.zshrc里找到ZSH_THEME,就可以设置主题了,默认主题是:

1
ZSH_THEME=”robbyrussell”

oh my zsh提供了数十种主题,相关文件在~/.oh-my-zsh/themes目录下,你可以随意选择。

插件

oh my zsh项目提供了完善的插件体系,相关的文件在~/.oh-my-zsh/plugins目录下,默认提供了100多种,大家可以根据自己的实际学习和工作环境采用,想了解每个插件的功能,只要打开相关目录下的 zsh 文件看一下就知道了。插件也是在.zshrc里配置,找到plugins关键字,你就可以加载自己的插件了,系统默认加载 git ,你可以在后面追加内容,如下:

1
plugins=(git textmate ruby autojump osx mvn gradle)

下面简单介绍几个:

  • git

当你处于一个git受控的目录下时,`Shell 会明确显示 「git」和 branch,如下图所示:
zsh-git 插件效果

另外对git很多命令进行了简化,例如gco=’git checkout’、gd=’git diff’、gst=’git status’、g=’git’等等,熟练使用可以大大减少git的命令长度,命令内容可以参考~/.oh-my-zshplugins/git/git.plugin.zsh

  • textmate

mr可以创建 ruby 的框架项目,tm finename 可以用 textmate 打开指定文件。

  • osx

tab 增强,quick-look filename 可以直接预览文件,man-preview grep 可以生成 grep手册 的pdf 版本等。

  • autojump

zsh 和 autojump 的组合形成了 zsh 下最强悍的插件,今天我们主要说说这货。

首先安装autojump,如果你用 Mac,可以使用 brew 安装:

1
brew install autojump

如果是 Linux,去下载 autojump 的最新版本,比如:

1
wget https://github.com/downloads/joelthelion/autojump/autojump_v21.1.2.tar.gz

解压缩后进入目录,执行

1
./install.sh

最后把以下代码加入.zshrc:

1
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

至此,安装、配置、插件三位一体,终极Shell全面登场。退出终端会话重新登录,开始感受 zsh 的训疾如风!

使用 zsh

1、兼容 bash,原来使用 bash 的兄弟切换过来毫无压力,该咋用咋用。

2、强大的历史纪录功能,输入 grep 然后用上下箭头可以翻阅你执行的所有 grep 命令。

3、智能拼写纠正,输入gtep mactalk * -R,系统会提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]? 比妹纸贴心吧,她们向来都是让你猜的……

4、各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。比如你想杀掉 java 的进程,只需要输入 kill java + tab键,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全

5、智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。

6、目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。

7、在当前目录下输入 .. 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。

8、通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find,文件太多就歇菜了。

为了搭建博客,需要安装hexo,但是在Ubuntu 14.04下怎么都装不上,最后改用了淘宝的源

首先确保你安装了node.js

开始安装:

1
npm install hexo -g

NOTE: 不过这样一直装不上,最后没办法改用了taobao的npm源
使用教程也很简单,有介绍:

1
2
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install [name]

所以如果安不上,试试上面的命令,然后接着安装:

1
2
3
npm install hexo -g  #-g表示全局安装, npm默认为当前项目安装
cnpm install hexo-cli -g
cnpm install hexo --save

创建Hexo文件夹

1
2
3
4
#安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
hexo init <folder>
cd <folder>
cnpm install

最后的目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
➜  hexo  tree -L 2
.
├── _config.yml
├── node_modules
│ ├── hexo
│ ├── hexo-generator-archive
│ ├── hexo-generator-category
│ ├── hexo-generator-index
│ ├── hexo-generator-tag
│ ├── hexo-renderer-ejs
│ ├── hexo-renderer-marked
│ ├── hexo-renderer-stylus
│ └── hexo-server
├── package.json
├── scaffolds
│ ├── draft.md
│ ├── page.md
│ └── post.md
├── source
│ └── _posts
└── themes
└── landscape

15 directories, 5 files

启动服务看效果

1
hexo server

然后访问http://localhost:4000/就可以打开网站了。

Hexo发布到github

这里踩了很多坑,特别注意一下,因为大多数教程都是以2.x.x版本为例的,问题就在这里,3.x.
x的版本很不一样。所以很多教程根本不对,先看看我的环境:

1
2
3
4
5
6
7
8
9
10
11
➜  $  hexo -v
hexo: 3.1.1
os: Linux 3.13.0-32-generic linux x64
http_parser: 2.5.0
node: 4.1.1
v8: 4.5.103.33
uv: 1.7.4
zlib: 1.2.8
ares: 1.10.1-DEV
modules: 46
openssl: 1.0.2d

现在我们来重新看看如何发布一个项目到之前你的github博客仓库里,并且直接在github上显示

  • 初始化一个项目
1
2
3
4
5
➜  hexo init note    # 初始化一个文件夹
cd note # 进入到note文件夹执行生成命令
➜ note hexo generate
ERROR Local hexo not found in ~/docments/note
ERROR Try running: 'npm install hexo --save'

忘了执行install命令了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
➜  note  npm install
npm WARN optional dep failed, continuing fsevents@1.0.0
npm WARN optional dep failed, continuing fsevents@0.3.8

> dtrace-provider@0.6.0 install /home/junqiangshen/docments/note/node_modules/hexo/node_modules/bunyan/node_modules/dtrace-provider
> node scripts/install.js

hexo-renderer-ejs@0.1.0 node_modules/hexo-renderer-ejs
├── lodash@2.4.2
└── ejs@1.0.0

hexo-generator-index@0.1.3 node_modules/hexo-generator-index
├── object-assign@2.1.1
└── hexo-pagination@0.0.2 (utils-merge@1.0.0)

hexo-generator-tag@0.1.2 node_modules/hexo-generator-tag
├── object-assign@2.1.1
└── hexo-pagination@0.0.2 (utils-merge@1.0.0)

hexo-generator-category@0.1.3 node_modules/hexo-generator-category
├── object-assign@2.1.1
└── hexo-pagination@0.0.2 (utils-merge@1.0.0)

hexo-generator-archive@0.1.3 node_modules/hexo-generator-archive
├── object-assign@2.1.1
└── hexo-pagination@0.0.2 (utils-merge@1.0.0)

hexo-renderer-marked@0.2.5 node_modules/hexo-renderer-marked
├── object-assign@2.1.1
├── marked@0.3.5
├── strip-indent@1.0.1 (get-stdin@4.0.1)
└── hexo-util@0.1.7 (ent@2.2.0, bluebird@2.10.1, highlight.js@8.8.0)

hexo-renderer-stylus@0.3.0 node_modules/hexo-renderer-stylus
├── stylus@0.52.4 (css-parse@1.7.0, debug@2.2.0, sax@0.5.8, source-map@0.1.43, mkdirp@0.5.1, glob@3.2.11)
└── nib@1.1.0 (stylus@0.49.3)

hexo-server@0.1.2 node_modules/hexo-server
├── object-assign@2.1.1
├── open@0.0.5
├── mime@1.3.4
├── bluebird@2.10.1
├── morgan@1.6.1 (basic-auth@1.0.3, on-headers@1.0.0, depd@1.0.1, on-finished@2.3.0, debug@2.2.0)
├── connect@3.4.0 (utils-merge@1.0.0, parseurl@1.3.0, debug@2.2.0, finalhandler@0.4.0)
├── serve-static@1.10.0 (escape-html@1.0.2, parseurl@1.3.0, send@0.13.0)
├── compression@1.5.2 (vary@1.0.1, bytes@2.1.0, on-headers@1.0.0, debug@2.2.0, compressible@2.0.5, accepts@1.2.13)
└── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.3, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)

hexo@3.1.1 node_modules/hexo
├── hexo-front-matter@0.2.2
├── pretty-hrtime@1.0.0
├── abbrev@1.0.7
├── titlecase@1.0.2
├── archy@1.0.0
├── text-table@0.2.0
├── tildify@1.1.1 (os-homedir@1.0.1)
├── strip-indent@1.0.1 (get-stdin@4.0.1)
├── hexo-i18n@0.2.1 (sprintf-js@1.0.3)
├── moment-timezone@0.3.1
├── bluebird@2.10.1
├── minimatch@2.0.10 (brace-expansion@1.1.1)
├── through2@1.1.1 (xtend@4.0.0, readable-stream@1.1.13)
├── swig-extras@0.0.1 (markdown@0.5.0)
├── chalk@1.1.1 (escape-string-regexp@1.0.3, ansi-styles@2.1.0, supports-color@2.0.0, has-ansi@2.0.0, strip-ansi@3.0.0)
├── warehouse@1.0.3 (graceful-fs@4.1.2, cuid@1.2.5, JSONStream@1.0.6)
├── js-yaml@3.4.2 (esprima@2.2.0, argparse@1.0.2)
├── hexo-cli@0.1.8 (minimist@1.2.0)
├── moment@2.10.6
├── nunjucks@1.3.4 (optimist@0.6.1, chokidar@0.12.6)
├── cheerio@0.19.0 (entities@1.1.1, dom-serializer@0.1.0, css-select@1.0.0, htmlparser2@3.8.3)
├── bunyan@1.5.1 (safe-json-stringify@1.0.3, mv@2.1.1, dtrace-provider@0.6.0)
├── swig@1.4.2 (optimist@0.6.1, uglify-js@2.4.24)
├── hexo-util@0.1.7 (ent@2.2.0, highlight.js@8.8.0)
├── hexo-fs@0.1.4 (escape-string-regexp@1.0.3, graceful-fs@4.1.2, chokidar@1.1.0)
└── lodash@3.10.1

再来执行一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
➜  note  hexo g            
INFO Files loaded in 325 ms
INFO Generated: js/script.js
INFO Generated: fancybox/jquery.fancybox.pack.js
INFO Generated: fancybox/jquery.fancybox.js
INFO Generated: fancybox/jquery.fancybox.css
INFO Generated: fancybox/helpers/jquery.fancybox-thumbs.js
INFO Generated: fancybox/helpers/jquery.fancybox-thumbs.css
INFO Generated: fancybox/helpers/jquery.fancybox-media.js
INFO Generated: fancybox/helpers/jquery.fancybox-buttons.js
INFO Generated: fancybox/helpers/jquery.fancybox-buttons.css
INFO Generated: fancybox/helpers/fancybox_buttons.png
INFO Generated: fancybox/fancybox_sprite@2x.png
INFO Generated: fancybox/fancybox_sprite.png
INFO Generated: fancybox/fancybox_overlay.png
INFO Generated: fancybox/fancybox_loading@2x.gif
INFO Generated: fancybox/fancybox_loading.gif
INFO Generated: fancybox/blank.gif
INFO Generated: css/style.css
INFO Generated: css/images/banner.jpg
INFO Generated: css/fonts/fontawesome-webfont.woff
INFO Generated: css/fonts/fontawesome-webfont.ttf
INFO Generated: css/fonts/fontawesome-webfont.svg
INFO Generated: css/fonts/fontawesome-webfont.eot
INFO Generated: css/fonts/FontAwesome.otf
INFO Generated: 2015/09/29/hello-world/index.html
INFO Generated: archives/index.html
INFO Generated: archives/2015/index.html
INFO Generated: archives/2015/09/index.html
INFO Generated: index.html
INFO 28 files generated in 1.01 s

看一下文件目录结构:

1
2
3
➜  note  ls
_config.yml node_modules public source
db.json package.json scaffolds themes
  • 修改配置文件_config.yml
1
2
3
4
5
6
7
8
9
10
11
# Hexo Configuration
## Docs: http://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: LittleQ
subtitle: 笔记分类整理
description: Java Web
author: LittleQ
language: zh-CN
timezone: Asia/Chongqing

NOTE: 主要解释一下这个时区timezone,我选的是重庆,具体想选择可以去这里维基百科时区列表

1
2
3
4
5
6
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://sjq597.github.io/
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

NOTE: url就填你的github博客地址就行,其他的不要改。

1
2
3
4
5
6
# Deployment
## Docs: http://hexo.io/docs/deployment.html
deploy:
type: git
repository: http://github.com/sjq597/sjq597.github.io.git
branch: master

NOTE: typegit,不要填github,网上的教程都是填github,但是这是hexo 2.x.x的方法,对于3.x.x的版本,必须填gitrepository也不要填ssh地址,要填https地址,并且把https改为http,分支都是master

发布到github

发布到github之前还必须要安装一个东西:

1
2
3
4
5
6
7
8
➜  note  npm install hexo-deployer-git --save
npm WARN optional dep failed, continuing fsevents@1.0.0
hexo-deployer-git@0.0.4 node_modules/hexo-deployer-git
├── moment@2.10.6
├── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.3, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── hexo-util@0.1.7 (ent@2.2.0, bluebird@2.10.1, highlight.js@8.8.0)
├── swig@1.4.2 (optimist@0.6.1, uglify-js@2.4.24)
└── hexo-fs@0.1.4 (escape-string-regexp@1.0.3, graceful-fs@4.1.2, bluebird@2.10.1, chokidar@1.1.0)

然后就可已发布了。

1
2
3
4
5
6
7
8
9
10
11
12
➜  note  hexo d                              
INFO Deploying: git
INFO Clearing .deploy folder...
INFO Copying files from public folder...
On branch master
nothing to commit, working directory clean
Username for 'https://github.com': sjq597
Password for 'https://sjq597@github.com':
To http://github.com/sjq597/sjq597.github.io.git
+ 5183f8b...aef1a55 master -> master (forced update)
Branch master set up to track remote branch master from http://github.com/sjq597/sjq597.github.io.git.
INFO Deploy done: git

常见问题

  • YAMLException
1
2
3
4
FATAL Something\'s wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
YAMLException: can not read a block mapping entry; a multiline key may not be an implicit key at line 13, column 1:
# URL
^

NOTE: YML语法校验比较严格,冒号后面必须要有个空格,切记。配置文件里所有的修改地方都要记得在冒号后空格一下。

  • Deployer not found: github
1
2
➜  note  hexo d           
ERROR Deployer not found: github

NOTE: 参见前面说的,3.x.x版本需要把type设置为git而不是github,并且仓库地址要写githttps地址,并且要改为http开头。

然后再去访问你在github上的博客地址,就会发现变成了hexoindex.html

  • Error: watch ENOSPC

在终端输入:

1
➜  npm dedupe

如果还不管用,试试下面的命令:

1
➜  echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Ubuntu 14.04 Sublime Text 3 手动安装插件

首先声明,这种方式只针对于在线安装失败的情况下,例如公司封端口,或者远端仓库不稳定的情况,github在国内有时候确实不太稳定。

先安装Package Control

  • Sublime Text 3 终端安装
    先按ctrl+`调出终端,或者直接 View > Show Console
    然后在终端中输入下面的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import urllib.request,os,hashlib; 
    h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88';
    pf = 'Package Control.sublime-package';
    ipp = sublime.installed_packages_path();
    urllib.request.install_opener(
    urllib.request.build_opener(
    urllib.request.ProxyHandler()
    )
    );
    by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read();
    dh = hashlib.sha256(by).hexdigest();
    print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

    NOTE: 如果在线安装失败,可以离线安装,具体方法是:

  • 下载Package Control安装包Package Control.sublime-package

  • 找到Preferences > Browse Packages,打开的主目录为Packages,到上一级目录sublime-text-3,目录结构如下:

    1
    2
    3
    4
    5
    6
    ➜  sublime-text-3  tree -L 1
    .
    ├── Cache
    ├── Installed Packages
    ├── Local
    └── Packages
  • 把下载的Package Control.sublime-package离线压缩包拷到Installed Packages目录下(不用解压),然后重启sublime text 3,然后在Preferences菜单下就可以看到多了两个选项Package SettingsPackage Control,这就说明安装成功了。

安装MarkdownEditing插件

  • 首先下载插件安装包,并将安装包拷贝到Sublime Text 3的安装目录下对应的目录
    1
    2
    git clone https://github.com/SublimeText-Markdown/MarkdownEditing.git
    sudo cp -r MarkdownEditing/ ~/.config/sublime-text-3/Packages
    打开一个.md文件就可以看到效果了。

安装Markdown Preview插件

安装上面的插件看到的当然看到的不是最终效果,如果需要预览,还可以装一个Markdown Preview的插件,同样的我的还是不能通过包控制器安装,还是说说如何手动安装吧。
NOTE: 以下方法来自Markdown Previewgithub官方地址

  • 首先下载插件安装包,并将安装包拷贝到Sublime Text 3的安装目录下对应的目录
    1
    2
    git clone git@github.com:revolunet/sublimetext-markdown-preview.git
    sudo cp -r sublimetext-markdown-preview ~/.config/sublime-text-3/Packages
  • 如果需要预览,可以按输入Shift+Ctrl+p,输入Markdown Preview,可以选择以下几个选项
  • Markdown Preview: Preview in Browser
  • Markdown Preview: Export HTML in Sublime Text
  • Markdown Preview: Copy to Clipboard
  • Markdown Preview: Open Markdown Cheat sheet

默认就选第一个了,最后选github或者markdown然后就可以在浏览器中查看预览内容了。
NOTE: 但是这样太麻烦,可以设置一个快捷键,点击Preferences->选择Key Bindings User,将其内容改为如下代码,以后直接按alt+m就可以在浏览器中预览了。

1
2
3
[
{"keys":["alt+m"], "command": "markdown_preview", "args": { "target": "browser"} }
]

Ubuntu 14.04 Sublime Text 3 不能输入中文

sublime这个编辑器很好用,小巧,比IDE要轻,主要是想用来写markdown。但是ubuntu下不能输入中文,这是一个很大的问题。

测试环境

Ubuntu 14.04 64bits
sougou pingyin v1.2.0.0056
Sublime Text 3

解决方法

  • 1.打开终端,下载所需要的库
1
➜  ~  git clone git@github.com:lyfeyaj/sublime-text-imfix.git

NOTE: 如果你没有装git,直接去项目github地址下载也行。下载下来的项目的目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
➜  sublime-text-imfix git:(master) tree -L 3
.
├── image
│   └── fcitx.png
├── lib
│   └── libsublime-imfix.so
├── README.md
├── src
│   ├── anran.tar.gz
│   ├── subl
│   └── sublime-imfix.c
└── sublime-imfix

3 directories, 7 files
  • 2.将subl移动到/usr/bin/,并且将sublime-imfix.so移动到/opt/sublime_text/(sublime的安装目录)
1
2
3
➜  ~  cd sublime-text-imfix
➜ ~ sudo cp ./lib/libsublime-imfix.so /opt/sublime_text
➜ ~ sudo cp ./src/subl /usr/bin/
  • 3.用subl命令试试能不能启动sublime,如果成功启动的话,应该就可以输入中文了。
1
➜  ~  subl

首先去官网下载Node.js

我的是Ubuntu 14.04,所以下载的是node-v4.1.1-linux-x64.tar.gz

解压缩:

1
2
3
4
5
tar -xvf node-v4.1.1-linux-x64.tar.gz -C /usr/xxx/
cd /usr/xxx
sudo mv node-v4.1.1-linux-x64 node
export PATH=/usr/xxx/node/bin/:$PATH
node -v

NOTE: 记住$PATH前面是冒号,不是分号,之前搞错了,结果环境变量都被搞坏了,害得我又得去重新恢复环境变量,恢复方式:

1
2
3
4
5
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export JAVA_HOME=/usr/java/jdk1.7.0_40
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

测试运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#--------------------测试----------------------------
#创建nodejs项目目录
mkdir -p /usr/xxx/nodejs/
#创建hello.js文件
vi /usr/xxx/nodejs/hello.js
#内容如下:
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {
"Content-Type" : "text/plain" // 输出类型
});
response.write("Hello World");// 页面输出
response.end();}).listen(8100); // 监听端口号
console.log("nodejs start listen 8100 port!");
#后台运行
node /usr/local/nodejs/hello.js &
#浏览器访问
http://localhost:8100/

如果看到浏览器界面输出Hello World!就表示成功了。

0%