Archive

Archive for the ‘linux’ Category

VIM的各种配置,让它变得更好使

December 9th, 2010 No comments

虽然软件维持默认配置也是不错的一种做法,不过vim的话如果不配置自动对齐什么的,默认还是会有一点麻烦,至少我就不习惯一个tab要8个空格的。下面是我的配置文件,都是我看了网上几个技术博之后汇总了写的,还是有一些漏的,比方说没有根据文件名判断是否需要设置行号以及针对各种语言的语法提示之类的。

配置文件路径:~/.vimrc

“去除一致性
set nocompatible
“显示行号
set nu
“检测文件类型
filetype on
“记录历史的行数
set history=1000
“自动对齐
set autoindent
“只能选择对齐方式
set smartindent
“设置tab为四个空格
set tabstop=2
“设置行间交错为4个空格
set shiftwidth=2
“关闭报错响声
“set vt_vb=
“设置搜索匹配高亮
set hls
“快速查找,一边匹配一边显示结果
set incsearch
“搜索不分大小写
set confirm
“不要用空格代替制表符
set ignorecase
“处理未保存或者只读文件时弹出确认
set noexpandtab
“在行和段起始时使用制表符
set smarttab
“禁止生成临时文件
set nobackup
set noswapfile
“行内替换
set gdefault
“设置编码
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
“语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn
“载入文件类型插件
filetype plugin on
“为特定文件类型载入相关缩进文件
filetype indent on
“保存全局变量
set viminfo+=!
“带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
“允许backspace和光标键跨越行界
set whichwrap+=<,>,h,l
“通过使用:command命令来查看改变过哪一行
set report=0
“光标与顶部底部保持3行间距
set scrolloff=3
“F5编译运行C,F6编译运行C++
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec “w”
exec “!gcc % -o %<”
exec “!./%<”
endfunc

map <F6> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec “w”
exec “!g++ % -o %<”
exec “!./%<”
endfunc
“设置最多能打开的标签页
“set tabpagemax=
“设置保存快捷键
map <C-s>:w <CR>

Categories: linux, 技术 Tags:

这两天玩ubuntu的几点笔记

November 9th, 2010 2 comments

这俩天又玩ubuntu玩得入迷了,昨晚玩到4点才睡,趁现在还记得这些apps的名字,整理一份笔记出来以备以后不时之需,也给初玩ubuntu的童鞋一点参考。另外,“永远的潮男”童鞋说现在玩3D桌面已经OUTL了,所以我就不介绍这OUT的东西了,截图里面的效果有些就是桌面特效来得,想要用这些特效的童鞋可以去ubuntu中文论坛看置顶贴。

1elemetary主题

这应该是ubuntu上最受欢迎的主题了,额,加个之一吧。

仿mac,但是相比macbuntu之类的要更清新,更细致。知道这个主题和这些icons是来自于ubuntu中文论坛mayue617童鞋的这篇文章:《[教程] 不模仿.Ubuntu 要走出自己的特色mac 道路

》。

里面还推荐了gloobus preview等几个不错的软件,后面会讲到。

该文里还推荐了burg这样一个修改过的grub,以图形界面代替了之前的黑白界面,但是枫影自己的grub有点问题所以没敢去试。google一下也有因为装了burg而导致无法grub的情况,所以请各位童鞋慎用之。下面讲一些该文没有提到的东西。

a)怎么安装elementary

可以添加elemetaryppa安装,也可以在ubuntu tweak里面打开elementary的源然后添加之。

这里WangYan童鞋的博文:《Ubuntu 主题 Elementary 安装方法》已经写得很清楚了。

b)安装后显示不正常。

如果是location bar轻微显示不正常如多出来一块之类的,那么你可以alt+F2,然后”gconf-editor”,然后在apps->nautilus->preferences里面勾选“pathbar_like_breadcrumbs”即可

如果是location bar完全就变样了那么可以能你的nautilus需要升级。一般在ubuntu tweak里面打开了elementary的源之后再更新之就会提示你有nautilus的更新可用了。

2、换上Faenza icons.

根据@mayue617童鞋的文章,下载了faenza icons的图标换上,要比elementary主题自带的精致得多。方法是在prefenrences->appearance里面选中elementary主题然后customize,然后在icon选项卡里面选种Faenza,如果你用的是elementary dark主题,建议就用dark版的faenza icons

3、使用gloobus preview

这个软件安装之后,在nautilus中你只要选中一个文件,再按空格就可以预览其内容了,快速又美观。在nautilus中按下F4键还可以看到slide show形式的图片预览。

4、使用Avant Window Navigator

Mac OS X里面很实用的一点就是它的dock了,ubuntu下也有几乎一样的工具。安装AWN之后,就可以像MAC一样使用dock了,底下那一排pannel也可以寿终正寝了。

安装方法可以google之。

此文是我临时google出来的,你如果嫌麻烦科研室照着试试:http://www.linuxdiyf.com/bbs/thread-89035-1-1.html

5、使用global menu (appmenu)

MAC里面另外一个实用的工具就是它的全局菜单了。Ubuntu 10.10里面已经自带了全局菜单的源,名称为app menu。安装后原本在程序窗口里面的菜单栏就会显示在顶部的pannel上,这就节省了一行的空间,能获得更大的浏览面积。

这个东西目前并不是兼容全部应用,比方我正在用的open officefirefox就不行。但是已经可以兼容大部分软件了,所以还是推荐之。

6、在教育网中使用搜狗代理

原本我已经基本上将自己的工作环境迁移到ubuntu下了。不过最近用了教育网就难免还得依赖于搜狗的代理,之前wine了一下搜狗2.0失败,这次算是OK了。

方法就是,先下载搜狗1.1版本,一定要1.1或者1.1以下,以为更高的版本已经不支持用-proxy启动搜狗的代理。

然后用wine安装搜狗1.1,安装完成后终端下切换目录到搜狗安装目录下,wine sougouexplorer.exe -proxy 提示有127.0.0:8081则为启动成功。之后你在firefox或者chrome里面设置代理为127.0.0.1:8081即可使用搜狗代理了~!哈哈~

7、在ubuntu下浏览“该网页无法显示”的网站

比较推荐用wallproxy,适用于教育网,只是要自己搭个GAE而已。可以到wallproxygoogle code官网上去看教程,然后自己搭建一个wallproxygapp。完了再在终端下python之即可。

关键是:1、你要有google账户;2linux装有python

Categories: linux, 开源, 技术 Tags:

shell编程笔记

November 6th, 2010 No comments

今天终于写完了shell编程的作业,作业本身很简单但是在shell里面写程序却是第一次,所以难免碰到这样那样的问题。
趁现在还记得些东西,写下来当笔记用:
1)sh命令执行.sh文件和用./执行.sh文件的区别
我是在ubuntu下写的shell文件,所以如果使用sh来执行文件,那么将调用ubuntu默认的shell来执行,这就有一个问题了,ubuntu默认的shell貌似并不是bash而是dash,而这些shell是有区别的,包括其自带的函数等玩意儿,所以我的sh文件里面写了一个if语句来匹配正则表达式,但是用sh执行则不可用用./执行则没问题。这是因为默认的shell不同的问题>造成的。
所以我在ubuntu下面写shell程序也用./来调用以免产生奇奇怪怪的问题。
2)正则表达式匹配
在if语句中匹配参数为数字的语法为:
if [[ "$x" =~ [0-9]+ ]]
这个[[]]的东西在ubuntu默认的shell下面就不能识别了,会报错,而如果使用./来执行就不会有问题。
3)#!/bin/bash这一句
我在文件头里面加了这样一句
#!/bin/bash
这个东西一开始我以为是注释语句但其实是错的,#!是一个特殊符号,其后面的路径表示该shell的根路径,表示使用该shell来执行一个子shell
所以使用./来执行shell的话系统就会默认找到该路径下的shell然后生成一个子shell来执行你的文件,所以在ubuntu这种不以bash为默认的shell的情况下,这句话是必须的。
4)变量的自增
shell编程里面变量的自增不同于C/C++里面的”++”
而实际上使用++这种东西也并不是什么值得推荐的做法,这样会降低代码的可读性,在某些复杂的语句中会产生岐义令程序员感到困惑。
在shell中变量的自增是这样写的:
VAR=0
VAR=`expr $VAR + 1`
至于为什么我还没很搞懂,尤其是反单引号的使用。额。。。好吧我承认我就是随手应付了一下作业而已。反正以后还会有更复杂的作业,还会有更多笔记的。。

Categories: linux, 技术 Tags:

这两天差点没被ubuntu搞死

October 22nd, 2010 No comments
这两天整ubuntu所得
1、grub2 -> grub1
这个是罪魁祸首,从10.04升级到10.10,grub的时候提示不能安装grub到我的系统分区,这我就纳闷了,用了这么久的ubuntu,顶多就是开机的时候提示不能找到sdax分区而已,这回倒好,给我说装不了了这次。
当时我没留意,以为顶多又来一次 grub rescue> 我再把它rescue一次就完了,怎奈此rescue非彼rescue也。
以前升级的时候是grub错了区,所以重新prefix回去也就是了,这次是连grub信息都没有写入,我了个去去。
然后用Live CD进去后mount了我的分区之后再进行修复,尝试多次仍然失败。我本本的光驱本来就不咋的,读盘慢得要死,而且每一次修复都要重启才能看到是否成功,所以浪费了我一天的时间都没有搞定。
其间经历了purge grub2,并且还一不小心grub进(hd0,0),这个悲剧可就不一般了,连rescue也没有了,只剩下一个grub了,彻底引导不了了。
又重新装回grub2,发现grub install failed,又提示XXXX unmount? 搞了半天终于mount -o bind进入之后又发现can not grub sdax…..当时我就崩溃了
最后的最后,我把grub2卸了换成0.97,我了个去去,这就好了,可以引导ubuntu了,==|||
MD,这么简单的事情浪费了我一天的时间阿阿阿。。。。
最后再把win7 的引导信息给加进menu.lst里面,总算是完美了。
2、fcitx
重新grub回ubuntu之后,我的fcitx的配置就被重置了,尝试在 ~/.fcitx/config中设置多次未果,后来才发现,原来现在的3.6.3的版本的配置文件已经不在 ~/.fcitx/config中了,而是换成了 ~/.config/fcitx/config,我倒。。。为了fcitx的配置浪费了多少时间阿阿阿阿。。。
3、引导win7
终于进入ubuntu之后发现win7不能被识别出来,OMG,于是乎又是了一下那些乱七八糟的代码没搞定。结果自己打开/boot/grub/menu.lst 一看,晕死,人家不是给了sample在里面吗,唉,于是照着sample给我的win7的分区grub了一下,OK~
所以呢,以后如果要升级,首先要慎重,其次,如果提示XXXfailed的话,就一定先不要重启,在win下或许重启能解决很多问题,但是linux下,重启只能带来更多问题。不过经过这次的灾难,我对linux的认识又增进了不少。算是因祸得福吧,悲剧的 ubuntu阿ubuntu.
Categories: linux, 开源, 技术 Tags: