Who am I

我的照片
Hefei, Anhui, China
Research Fields: Satellite Geodesy
显示标签为“Linux”的博文。显示所有博文
显示标签为“Linux”的博文。显示所有博文

2012年10月24日星期三

vim拼写检查

在利用vim撰写文档时,如何也能享用类似word的自动拼写检查功能呢?以下将介绍两种实现vim拼写检查。

1. vim自带的拼写检查
vim编辑器自带拼写检查功能,可用如下命令控制:
:set spell   %开启拼写检查
:set spell spelllang=en_us   %开启拼写检查功能并指定语言为en_us,如果想检查德语,可用
:set spell spelllang=de
:set nospell   % 关闭拼写检查功能
几个相关的命令:
]s      :将光标移到下一个拼写错误处
[s      :将光标移到上一个拼写错误处
zg     :告诉拼写检查器该单词是正确的
zug   :取消zg
zw    :告诉拼写检查器该单词时错误的
zuw  :取消zw
z=     :显示一个有关的拼写建议列表
1z=   :总是取第一个建议的词

2. 利用插件Engspchk
下载:http://www.vim.org/scripts/script.php?script_id=195
安装:将对应文件放到.vim对应文件夹下
\ec    :检查拼写
\ee   :结束拼写检查
\ea   :选择拼写替换(依赖于agrep)

在我的vim中,mapleader "\" 被","替换了.


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年9月20日星期四

vim批注的快捷方式

这里不介绍常用的visual模式下方法,也不给出常用命令的替换方式,而是给出一种映射方式。
当然,NERD_comment.vim插件也提供了快捷注释的功能,这里也不多述。

这里的注释符号以‘%’为例,在vimrc文件中加入如下语句:
" F4 for comment

vmap <F4> :s=^\(\)=\%=g<cr>:noh<cr>                 % visual 模式下
nmap <F4> :s=^\(\)=\%=g<cr>:noh<cr>                 % normal 模式下
imap <F4> <ESC>:s=^\(\)=\%=g<cr>:noh<cr>      % insert模式下

" F6 for uncomment
vmap <F6> :s=^\(%\)==g<cr>:noh<cr>
nmap <F6> :s=^\(%\)==g<cr>:noh<cr>
imap <F6> <ESC>:s=^\(%\)==g<cr>:noh<cr>

本质也是vim的替换命令。
:noh表示nohlsearch命令。

重新打开一个新的terminal后,F4和F6就可以用来添加注释和取消注释了。

2012年1月18日星期三

Ubuntu 系统环境变量配置文件介绍

在Ubuntu Linux系统中,有几个文件可以设置系统运行的环境变量,这几个文件分别是 /etc/environment,/etc/profile,~/.profile,/etc/bash.bashrc和~/.bashrc。以下简单介绍一下这几个文件。

/etc/environment:系统登录时读取的第一个文件,该文件为所有进程设置基本环境变量值。
/etc/profile:系统登录时读取的第二个文件,该文件设定针对全系统所有用户的环境变量。
~/.profile:系统登录时读取的第三个文件,该文件定制当前用户的工作环境。
/etc/bash.bashrc:针对所有用户的bash初始化文件,此文件中设定的环境变量对所有用户有效,并且在每次打开bash的时候都会执行一次。
~/.bashrc:当前用户的bash初始化文件,当前用户每次打开shell时都会执行一次。

综上,在$HOME目录下的两个隐藏文件是针对当前用户的,其它三个文件都是全局有效的。以上五个文件的执行顺序为environment>profile>.profile>bash.bashrc>.bashrc

Linux 环境变量

1. 什么是环境变量
Linux是一个多用户的操作系统,每个用户登录系统时都会有一个专用的系统环境。通常情况下,每个用户默认的系统环境都是一样的(由/etc/profile、/etc/bash.bashrc文件定制),这些默认环境就是由一些列的环境变量所确定。用户也可以对自己的用户环境进行定制(下面会有介绍)。因此,一个特定用户的环境是由系统默认环境+自己定制环境决定。

2. 常用的环境变量及其作用
PATH:决定了SHELL将到哪些目录下寻找命令或程序(下面会有详述)。
HOME:当前用户的主目录。
SHELL:当前用户使用的是那种shell。
HISTSIZE:保存历史命令记录的条数。
此外还有HOSTNAME,LANG,PS1, PS2等环境变量。

3. 环境变量的设置
环境变量的定义和设置有两种基本方法。
方法一:name=value; export name
方法二:export name=value (ksh和bash支持此种方法)
那么上述定义或添加环境变量的语句应该加在何处呢?具体有什么区别呢?
方法一:直接在终端添加上述语句。
此方法添加的环境变量只在当前的shell中起作用。只适用于临时更改环境变量,如果希望设置的环境变量能够持久有效,需要在linux环境变量配置文件中添加上述语句。关于linux环境变量的配置文件可以参考博客中的其它帖子。
方法二:在.bashrc或.profile文件中添加上述语句
添加完上述语句后,注销再重启机器,更改的环境变量即可生效,但只对当前用户有效。
方法三:在profile文件中添加上述语句
该方法更改的环境变量对所有用户有效,重启系统后起作用。

4. 环境变量命令介绍
echo $PATH: 显示环境变量值;
name=value;export $name: 定义新的环境变量name;
env: 显示所有环境变量;
set: 显示本地定义的shell变量;
unset: 清除环境变量,如unset $name;
readonly: 设置只读环境变量,如:name=value;export $name;readonly $name.

5. PATH环境变量
a) PATH变量的作用:
PATH简单说来就是一个字符串变量,当输入命令时系统会根据PATH里面记录的路径去查找这些命令。如在~目录下输入ls,输入ls命令后,系统会根据PATH中记录的路径去查找这个命令。通常这些命令都保存在.../bin目录下,所以PATH值恰恰就是/bin:/sbin:/usr/bin等。其中:使目录与目录之间隔开。
b) 新增自定义论经
假设新安装了一个命令在/usr/lib/gmt/bin目录下,又想在任何地方都能使用这个命令,就需要在环境变量PATH后增加该目录了。使用如下命令即可:
export PATH="$PATH:/usr/lib/gmt/bin"
如果上述命令添加在.bashrc文件中,注销重启后该环境变量即可生效。

查看安装软件的信息

利用sudo apt自动安装的软件之后,如何知道软件的安装目录呢?
可以利用dpkg命令
例1:dpkg -L GMT
例2:dpkg -S GMT

2012年1月11日星期三

linux ln命令

ln 命令是为某个文件在另一个不同的位置建立一个同步的链接。建立该链接通常分为两种,一种称为软链接(加参数 -s),一种称为硬链接(不加参数)。所谓软链接,是在选定的位置上生成一个文件的镜像,不额外占用磁盘空间;硬链接,在选定的位置上生成一个和源文件大小相同的文件,即拷贝。
应用:当需要在不同的目录用到相同的文件时,不许要在每一个目录下都放一个相同的文件,只需要在某个固定的目录放上该文件,然后在其他的目录下ln链接它即可,不重复占用资源。
例如: ln -s /bin/less /usr/local/bin/less
注意: ln命令会保持每一步链接文件的同步性,不论改动了哪一处,其他文件会发生相同的变化;

2011年12月19日星期一

.bashrc文件(待完善)


shell定制,常用的设置写入.bashrc文件,写入文件后用source .bashrc命令运行,设置即可生效;

"设置显示路径,~目录加当前目录
if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\W\$ '
fi

"常用片假名设置
# some more ls aliases
alias ll='ls -alF'
alias la='ls -a'
alias l='ls -CF'
alias clc='clear'
alias rm='rm -i'
alias cat='cat -b'
alias echo='echo -e'


vimrc文件(待完善)


vim的常用设置
set nocompatible
set lines=35 columns=120
colorscheme evening        
set background=dark
set nu

filetype on
filetype plugin on
filetype plugin indent on
filetype indent on
set textwidth=120
syntax enable
syntax on
"set cursorline
set cmdheight=1
set autoindent
set smartindent
set ruler
set foldmethod=syntax
set shiftwidth=4
set softtabstop=4

let fortran_free_source=1
let fortran_more_precise=1
let fortran_do_enddo=1
let fortran_have_tabs=1
let fortran_fold=1
set foldcolumn=4

nmap <F9> <ESC> :!ctags -R *<CR>

let Tlist_Ctags_Cmd='/usr/bin/ctags'
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_Menu=1
let g:winManagerWindowLayout="NERDTree|Taglist,BufExplorer"
let g:winManagerWidth=30
nmap <silent> <F8> :WMToggle<CR>
let Tlist_WinWidth=25
let Tlist_WinHeight=18

let NERDTreeWinSize=25

set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
"set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set hlsearch
set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
"set hidden             " Hide buffers when they are abandoned
"set mouse=a " Enable mouse usage (all modes)