Who am I

我的照片
Hefei, Anhui, China
Research Fields: Satellite Geodesy

2012年10月12日星期五

将vim打造成IDE (Fortran)

更新于2012年10月12号
利用vim的插件,可以将vim打造成功能强大的IDE,这些功能主要包括文件快速跳转,变量快速跳转,变量自动补全,快速的批量注释等等。
1. ctags+taglist
主要功能:实现变量的快速跳转;
安装过程:
1> 首先安装ctags

ctags用于产生代码索引文件,建议安装exuberant ctags,下载地址:http://ctags.sourceforge.net/
将文件解压后,进入其目录后,进行安装:
  1. ./configure
  2. make
  3. sudo make install
至此,ctags安装结束。
2> 安装taglist
下载taglisthttp://sourceforge.net/projects/vim-taglist/files/,解压后将对应文件夹下的文件放到~/.vim/的对应文件夹下;进入vim,在normal模式下输入:helptags ~/.vim/doc即完成taglist的安装
3> ctags+taglist的配置和使用 (Ctags的设置待补充)
测试ctags的安装位置: which ctags,输出结果如果是:/usr/local/bin/ctags
则在~/.vimrc文件中添加如下语句:
let Tlist_Ctags_Cmd="/usr/local/bin/ctags"    
nmap <silent><F9> :TlistToggle<cr>    %定义F9快捷方式打开Taglist窗口,如果后面设置了winmanage后,可以取消该映射。

在taglist其作用之前,必须先用ctags命令生成tags文件,如:ctags -R main.f90,然后打开main.f90文件,F9即可调出taglist了。

2. winmanager
主要功能:多窗口显示和管理,可以将taglist和netrw(filelist)窗口整合起来;
首先下载:http://www.vim.org/scripts/script.php?script_id=95,然后将对应文件放到~/.vim/对应文件夹下(其中plugin下有三个.vim文件,都拷贝到对应目录下)。进入vim,在normal模式下输入:helptags ~/.vim/doc即可完成安装。
然后在~/.vimrc文件中添加如下语句:
let g:winmanagerWindowLayout='FileExplorer|Taglist'
nmap <silent><F8> :WMToggle<cr>  %定义F8为快捷方式
注:fileexplorer是netrw插件控制的(FileList),这个插件vim默认自带,所以不需要自己安装。
按下F8后可以打开FileList和TagList,再按下F8关闭该窗口。
不同窗口见的跳转:ctrl+w+w(默认)。

3. MiniBufExplorer
功能:多文件编辑时,文件存放在buffer里,并可以快速切换文件。
安装方法:同上面的Taglist和winmanager插件。
在.vimrc文件中添加以下语句进行设置:
let g:minibufexplmapwindownavvim=1    %ctrl+h/j/k/l进行窗口切换
let g:minibufexplmapwindownavArrows=1    %ctrl+箭头进行窗口切换
使用:
<Tab>移动到下一个buffer;
<Enter>打开光标所在的buffer;
d:删除光标所在的buffer;

4. nerd_commenter
主要功能:只能注释,多行注释与反注释,支持多种程序语言。
安装:方法同上,但别忘了进入vim后,在normal模式下输入:helptags ~/.vim/doc,才完成安装。
然后在.vimrc文件中加入如下语句:
let mapleader=","   
map <c-t> ,cc   %定义ctrl+t快速注释(适用与normal和visual模式下)
map <c-r> ,cu  %定义ctrl+r快速取消注释(normal和visual模式下)
注释命令:
,cc        注释当前行或者选中的文本
,cu        取消当前行或选中文本的注释
,ci         切换选中行的注释状态
,c+space   同,ci
,cA       添加注释到行尾,并进入插入模式
,cl         注释符左对齐
,cr         注释符右对齐

5. Neocomplcache
主要功能:智能自动补全
安装:解压后,将plugin和doc里面的文件放到~/.vim/对应文件夹下,但是解压后还有一个autoload文件夹,直接放到~/.vim/下;最后vim normal模式下:helptags ~/.vim/doc,完成安装。
然后,在.vimrc文件中添加语句:
let g:neocomplcache_enable_at_startup=1
重启vim后即可生效了。

最后,看看设置完的效果:

2012年10月11日星期四

gvim Fatal IO error 11

用命令行打开gvim时,出现错误,关闭gvim后不久出现gvim: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.

可以用以下方法启动gvim:
  1. gvim -f: 可以正常启动
  2. 从终端启动gvim

2012年10月4日星期四

ubuntu软件包管理命令



APT (高级软件包工具) 是一个强大的包管理系统,而那些图形化程序如 添加/删除 应用程序 和 Synaptic 都是建立 在它的基础之上的。APT 自动处理依赖关系并在系统软件包执行其他操作以便安装所要的软件包。 运行 APT 要求管理权限 。 可以被 APT 使用的一些常用命令:
 安装软件包:
 sudo apt-get install packagename 
 删除软件包:
 sudo apt-get remove packagename 
 获取新的软件包列表:
 sudo apt-get update 
 升级有可用更新的系统:
 sudo apt-get upgrade 
 列出更多命令和选项:
 apt-get help 
 2、安装/卸载 .deb 文件
 这 些是Debian 软件包。这些与 Ubuntu 相关的软件包文件使用 .deb 后缀是因 为 Ubuntu 与 Debian GNU/Linux 发行版有着紧密的关系。您将需要管理权限来安装 .deb 文件 。
 要安装 .deb 文件,简单地双击它,然后选择 安装软件包 即可。
 或者,您也可以打开一个终端并输入:
 sudo dpkg -i package_file.deb   来安装 .deb 文件。
 如需卸载 .deb 文件,在您软件包管理器中反选它,或输入:
 sudo dpkg -r package_name 
 3、将 .rpm 文件转为 .deb 文件
 另 一种软件包文件是 .rpm为后缀的 Red Hat 软件包管理器文件。我们并不建议在 Ubuntu 系统中安装它们。在绝大多数情况 下,Ubuntu 自身的 .deb 软件包是可用的。然而,如果绝对必要,可以使用程序 alien 将 .rpm 文件转化为.deb 文件。
 安装 alien 程序。
 在终端使用管理权限运行以下命令:
 sudo alien package_file.rpm 
 4、安装 tarballs
 以 .tar.gz 或 .tar.bz2 作 为后缀名的文件是在 Linux 和 Unix 中被广泛使用的 tarballs 的打包文件。 如果在任何 Ubuntu 软件库中都没 有 Ubuntu 的软件包,您可以按照软件包自带的指示使用命令行来安装和卸载 Tarball 文件。 Tarballs 通常包括程序的源代码,并 且需要 编译 才能使用。要做到这一点,一般需要其它软件 。
 5、dpkg命令
 dpkg -i /**/**/**.deb 安装软件
 dpkg -x **.deb 解开.deb文件
 dpkg -r /-p 删除并清配置
 更详细的 用dpkg --help 查询 如下:
 dpkg -i|--install <.deb 文件的文件名> ... | -R|--recursive <目录> ...
 dpkg --unpack <.deb 文件的文件名> ... | -R|--recursive <目录> ...
 dpkg -A|--record-avail <.deb 文件的文件名> ... | -R|--recursive <目录> ...
 dpkg --configure <软件包名> ... | -a|--pending
 dpkg -r|--remove | -P|--purge <软件包名> ... | -a|--pending
 dpkg --get-selections [<表达式> ...] 把已选中的软件包的列表打印到标准输出
 dpkg --set-selections 从标准输入里读出要选择的软件包列表
 dpkg --update-avail 替换现可安装的软件包信息
 dpkg --merge-avail 把文件中的信息合并到系统中
 dpkg --clear-avail 清除现有的软件包信息
 dpkg --forget-old-unavail 忘却已被删除,现在却不能安装的软件包
 dpkg -s|--status <软件包名> ... 显示软件包详尽的状态信息
 dpkg -p|--print-avail <软件包名> ... 显示软件包当前可供安装的版本的详细信 息
 dpkg -L|--listfiles <软件包名> ... 列出所有“属于”该软件包(或多个软件包)的文件
 dpkg -l|--list [<表达式> ... 简明地列出软件包的状态
 dpkg -S|--search <表达式> ... 搜寻拥有该文件(或多个文件)的软件包
 dpkg -C|--audit 检查搜寻残损的软件包
 dpkg --print-architecture 显示目标机的体系架构(借助 GCC)
 dpkg --print-gnu-build-architecture 显示目标机体系架构的 GNU 版本的表示
 dpkg --print-installation-architecture 显示本地主机的体系架构(用于安装)
 dpkg --compare-vesions <甲> <关系> <乙> 比较版本号 - 见下
 dpkg --help | --version 显示本帮助文档以及版本号
 dpkg --force-help | -Dh|--debug=help 强制操作时,有关出错方面的帮助
 dpkg --licence 显示版权和许可证的条文
 6、ubuntu下apt-get 命令参数
 常用的APT命令参数
 apt-cache search package 搜索包
 apt-cache show package 获取包的相关信息,如说明、大小、版本等
 sudo apt-get install package 安装包
 sudo apt-get install package - - reinstall 重新安装包
 sudo apt-get -f install 修复安装"-f = ――fix-missing"
 sudo apt-get remove package 删除包
 sudo apt-get remove package - - purge 删除包,包括删除配置文件等
 sudo apt-get update 更新源
 sudo apt-get upgrade 更新已安装的包
 sudo apt-get dist-upgrade 升级系统
 sudo apt-get dselect-upgrade 使用 dselect 升级
 apt-cache depends package 了解使用依赖
 apt-cache rdepends package 是查看该包被哪些包依赖
 sudo apt-get build-dep package 安装相关的编译环境
 apt-get source package 下载该包的源代码
 sudo apt-get clean && sudo apt-get autoclean 清理无用的包
 sudo apt-get check 检查是否有损坏的依赖
 其中:
 1 有SUDO的表示需要管理员特权!
 2 在UBUNTU中命令后面参数为短参数是用“-”引出,长参数用“――”引出
 3 命令帮助信息可用man 命令的方式查看或者
 命令 -H(――help)方式查看
 4 在MAN命令中需要退出命令帮助请按“q”键!!
 选项 含义 作用
 sudo -h Help 列出使用方法,退出。
 sudo -V Version 显示版本信息,并退出。
 sudo -l List 列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
 sudo -u username|#uid User 以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。
 sudo -k Kill 清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
 sudo -K Sure kill 与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。
 sudo -b command Background 在后台执行指定的命令。
 sudo -p prompt command Prompt 可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。非常人性化的设计。
 sudo -e file Edit 不是执行命令,而是修改文件,相当于命令sudoedit。
 
 7、Ubuntu软件推荐
 sudo apt-get install virtualbox#
 sudo apt-get install build-essential pkg-config xserver-xorg-dev linux-headers-`uname -r`
 sudo apt-get install libc6-dev
 sudo apt-get install apt-build #frontend to apt to build, optimize and install packages
 sudo apt-get install nautilus-open-terminal dpkg-dev
 sudo apt-get install testdisk #Partition scanner and disk recovery tool
 sudo apt-get install mkisofs # Creates ISO-9660 CD-ROM filesystem images
 sudo apt-get install cramfsswap #swap endianess of a cram filesystem (cramfs)
 sudo apt-get install cramfsprogs squashfs-tools #cramfs squashfs
 sudo apt-get install aptoncd # Installation disc creator for packages downloaded via APT
 sudo apt-get install language-support-zh language-pack-zh#安装中文语言支持
 sudo apt-get install compiz compizconfig-settings-manager compiz-corecompiz-fusion-plugins-extra compiz-fusion-plugins-unsupported emeraldemerald-themes#安装compiz/fusion 有史以来最炫的3D桌面
 sudo apt-get install stardict stardict-common stardict-cdict-gbstardict-cedict-gb stardict-hanzim stardict-langdao-ce-gbstardict-langdao-ec-gb stardict-oxford-gb stardict-xdict-ce-gbstardict-xdict-ec-gb stardict-jcedict stardict-jedictstardict-jmdict-en-ja stardict-jmdict-ja-en wyabdcrealpeopletts#安装StarDict
 sudo apt-get install kde-i18n-zhcn kde-i18n-zhtw#k程序中文支持,很讨厌kde ,但不太讨厌qt程序可以这样装
 sudo apt-get install gnome-common # common scripts and macros to develop with GNOME
 sudo apt-get install makeself #utility to generate self-extractable archives
 sudo apt-get install sun-java5-jdk #安装Java5环境
 sudo apt-get install sun-java5-plugin #安装Java5环境
 sudo apt-get install sun-java6-jre#安装JAVA6环境
 sudo apt-get install sun-java6-jdk #安装JAVA6环境#
 sudo update-alternatives --config java#设定JAVA环境
 sudo apt-get install nautilus-open-terminal #在右键菜单中加入打开终端
 sudo apt-get install qt4-qtconfig#qt4 gui配制工具, 如字体等,很讨厌kde ,但不太讨厌qt程序可以这样装
 sudo apt-get install kcontrol #k程序gui配制工具,很讨厌kde ,但不太讨厌qt程序可以这样装
 sudo apt-get install smbfs #smbfs挂载支持
 sudo apt-get install nfs-common #nfs
 sudo apt-get install samba nfs-kernel-server #samba
 sudo apt-get install nmap #网络端口扫描工具
 sudo apt-get install nmapfe #nmap前端
 sudo apt-get install kinstaller #application installer
 sudo apt-get install ubuntu-restricted-extras #有用的东东。skyx强力推荐
 sudo sudo apt-get install bum #系统服务管理软件
 sudo apt-get install sysv-rc-conf #一款基于perl的开机进程调整工具,sysv-rc-conf执行命令即可
 sudo apt-get install rcconf # Debian Runlevel configuration tool
 sudo apt-get install rar unrar p7zip* #安装rar 7zip
 sudo apt-get install rpm alien #安装rpm支持
 sudo apt-get install yum rpm #redhat相关
 sudo apt-get install xpdf xpdf-chinese-simplified #安装pdf查看软件
 sudo apt-get install xchm xpdf-chinese* #安装chm查看软件
 sudo apt-get install gnomebaker k3b#安装刻录软件
 sudo apt-get install brasero #gnome上的刻录软件
 sudo apt-get install subversion #svn
 sudo apt-get install meld #一个文件、目录比较器
 sudo apt-get install kompare # 又一个文件比较器
 sudo apt-get install xxdiff #- a graphical file and directories comparison and merge tool
 sudo apt-get install mc #类似norton commander 工具,skyx 吐血推荐
 sudo apt-get install gnome-commander #gnome 上类似Total commander的工具
 sudo apt-get install krusader #kde 上类似Total commander的工具
 sudo apt-get install rox-filer#一个简单的文件管理软件
 sudo apt-get install ghex #GNOME 上的十六进制文件编辑器
 sudo apt-get install rxvt yakuake tilda kuake konsole multi-gnome-terminal pyqonsole #几个终端
 sudo apt-get install pcmanx-gtk2 qterm mozilla-plugin-pcmanx #安装bbs 客户端
 sudo apt-get install mozilla-thunderbird thunderbird-gnome-support latex-xft-fonts #thunderbird
 sudo apt-get install ntfs-3g ntfs-config #ntfs写入支持,装完后运行ntfs-config,把两个钩打上即可。楼下方法作废
 sudo apt-get install googleearth googlizer gtalk#google相关,skyx友情提示:不推荐马甲 gtalk
 sudo apt-get install kvm #Full virtualization on x86 hardware 华推荐
 sudo apt-get install vmware-player #Free virtual machine player from VMware
 sudo apt-get install socks4-server socks4-clients #一个socks 代理服务器/soks4代理客户端
 sudo apt-get install liferea #超强的rss reader ,明显比akregator好用, 由zhuqin_83吐血推荐
 sudo apt-get install axel-kapt gwget aria2#多线程下载工具,也可在论坛search 超强工具prozilla,由雕啸长空吐血推荐
 sudo apt-get install privoxy #河#蟹# mixmaster anon-proxy socat#突破风锁线和雁过无痕
 sudo apt-get install kdebluetooth #超简单的ubuntu与蓝牙手机互传文件工具
 #蓝牙请参见:   http://www.in9.cn/r.php?url=http://forum.ubuntu.org.cn/viewtopic.php?t=61426&highlight=
 sudo apt-get install build-essential #build-essential
 sudo apt-get install proxychains #一个socks4 socks5代理软件 ,可以支持apt-get代理
 sudo apt-get install viewglob #一个shell相关的工具
 sudo apt-get instll eva amsn wengophone skype licq #安装im语音视频聊天软件
 sudo apt-get install beryl emerald emerald-themes#安装beryl
 sudo apt-get install gkrell* #很好的一个东东,装了就知道了
 sudo apt-get install conky# 有意思的一个系统monitor
 sudo apt-get install imagemagick# e(ee)大力推荐的批量修改图片的软件,现在论坛个别人在搞个人崇拜
 sudo apt-get install kolourpaint #又一个画图软件
 sudo apt-get install tuxpaint #好玩的画图软件
 rgbpaint #getdeb上有,最弱,但很小巧的画图软件
 mtpaint(getdeb上有,比gpaint强一点的画图软件)。
 sudo apt-get install rbot # ruby写的irc bot
 sudo apt-get install gqview #一个图片浏览器
 sudo apt-get install ksnapshot #一个抓屏程序
 sudo apt-get install vncserver #vncserver,vncview默认已经安装了
 sudo apt-get install tightvncserver tightvnc-java #另一个vnc
 sudo apt-get install vim-full #vim无法高亮显示,然后编辑 /etc/vim/vimrc,取消syntax on前面的"注释符号
 sudo apt-get install firestarter #图形接口的防火墙设定程序
 sudo apt-get install flashplugin-nonfree #安装浏览器Flash插件
 sudo apt-get install gftp kftpgrabber filezilla kasablanca#安装ftp客户端
 sudo apt-get install build-essential # 安装编译环境
 sudo apt-get install mysql-client mysql-server #安装mysql服务
 sudo apt-get apache2 mysql-server php4 php4-gd php4-mysql #安装LAMP
 sudo apt-get install d4x azureus amule ktorrent mldonkey-servermldonkey-gui rtorrent qtorrent bittornado-gui bittorrent-guitorrentflux deluge-torrent# 几个下载/bt/电驴 工具
 sudo apt-get install sysstat #安装sar, iostat and mpstat
 sudo apt-get install xvidcap gnome-splashscreen-manager #安装屏幕视频录制 / splash 管理
 sudo apt-get install istanbul #Desktop session recorder
 sudo apt-get install sysinfo xsysinfo#系统信息查看
 sudo apt-get install scrot imagemagick #截图工具

2012年9月26日星期三

latex 使用子目录

当需要大量的图形文件时,你可能希望将它们存放到一个子目录下。例如放到 子目录 images 下,这时你试图用如下的命令来插入图形 file.eps。
\includegraphics{images/file.eps}


这种做法存在以下问题:

  1. 效率不高,当打开大量的文件时,给出子目录名增加了文件名的长度,占用内存;
  2. 文件名中包括子目录会使文件依赖于操作系统;
对于图形文件存在于子目录下的情形,有两种办法:
  1. 将子目录加到TeX搜索路径中
  2. 用\graphicspath指明所用的子目录。
首先,介绍第一种方法:
用如下语句设置环境变量“TEXINPUTS”:TEXINPUTS=“/dir1:/dir2:”;export TEXINPUTS
当LaTeX在TeX搜索文件时,首先寻找目录dir1和dir2,然后再搜索默认路径。所以,可以将图形所在的子目录先加到环境变量中,然后直接:\includegraphics[]{aa}即可

第二种方法:
\graphicspath{{dir1/}{dir2}}告诉LaTeX从目录dir1/和dir2/下寻找图形文件。
然后在插入图形命令中:\includegraphics[]{aa}


补充:
在使用文件名时,尽量给出文件名的全称(包括扩展名),因为如果在没给出扩展名时,系统尝试打开多种格式的文件,如:
\includegraphics{file}
将使 \includegraphics 命令试图打开下列文件: file.eps file.ps file.eps.gz file.ps.gz file.eps.Z


2012年9月24日星期一

beamercolorbox环境

beamercolorbox环境可以在文本周围绘制一个矩形的frame.

用法:
\begin{beamercolorbox}[options]{beamer color}
contents
\end{beamercolorbox}

举例:
\setbeamercolor{postit}{fg=black,bg=yellow}
\begin{beamercolorbox}[sep=1em,wd=5cm]{postit}
      Place me somewhere!
\end{beamercolorbox}

常用的选项:
  • wd=width设定box的width
  • dp=depth 设定box的depth
  • ht=height 设定box的height
  • left 设定box中的文本左对齐
  • right 设定box中的文本右对齐
  • center 设定box中的文本居中对齐
  • leftskip=xx, 在box里设定leftskip
  • rightskip=xx,在box里设定rightskip
  • sep=xx, 设定文本周围extra space的size
  • colsep=xx, 设定文本周围extra color separation space
  • shadow=<true or false>, 在box背后绘制shadow
  • rounded=<true or false>, box的边界是rounded 
  • ignorebg 忽略背景色
  • vmode  vertical mode when the box starts,默认是hmode

2012年9月21日星期五

win7系统 麦克设置

偶然遇到,突然间QQ语音都没有声音,用win7自带的录音,也没有声音。

确定是驱动都安装正确,肯定是麦克风没设置好。

按如下步骤设置麦克风:
控制面板——硬件和声音——声音——管理音频设备——录制——外接麦克风(同时禁用其它麦克风)——属性(级别,麦克风)——配置——设置麦克风——耳机式麦克风

WIN+R, 输入soundrecorder,录音测试

\rule \hrule, \hfill, \hrulefill

\rule命令的用法:\rule[depth]{width}{height},详细见链接:
http://en.wikibooks.org/wiki/LaTeX/Rules_and_Struts
\rule一个很常见的用法是在一个box命令中加\rule{0pt}{height},绘制一个最小高度为height的柱子。

\hrule:绘制一条水平的rule(尺子),rule包含三个参数(width, length, depth)

举例:
\hrule    可以得到一条水平直线(默认宽度为0.4pt,length适应周围环境)
\hrule width2pt length 2cm depth2pt  可以得到一条定制的直线

同样,也有\vrule命令,绘制一条竖直的rule。如果\hrule和\vrule参数一致,得到的结果也相同。

\hfill: 水平空白,弹性长度填充。

举例:
This \hfill is a text.     This将会左对齐,is a text将会右对齐,中间就是\hfill填充。之所以是弹性长度,是根据内容来填充空白。

\hrulefill:一行剩余的空白用rule填充。
该命令与\hrule的不同在于:两者生成的直线上下空白不同,且\hrulefill是填充剩下的空白,而\hrule在该行下重新绘制一条直线。