个人使用的Linux开发环境

2013/11/17

换回Debian6.0.8了,实在无法忍受Gnome3,各种无法忍受的体验和Bug。使用Debian以来,还是4.0(Etch)和6.0(Squeeze)用得最顺手。

1、安装jdk6

设置源,增加contrib和non-free,如修改/etc/apt/sources.list:

deb http://mirrors.163.com/debian/ squeeze main contrib non-free
deb-src http://mirrors.163.com/debian/ squeeze main contrib non-free
安装:

sudo apt-get install sun-java6-jdk
切换:

sudo update-alternatives --config java
有 3 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                    优先级  状态
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      自动模式
  1            /usr/bin/gij-4.4                           1044      手动模式
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      手动模式
  3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:
选3切换到sun-java6-jdk
2、编译Android相关

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
参考 http://source.android.com/source/initializing.html,编译Android2.3.1和Android4.2.1通过。

前些天重装了个Debian7.1 64bit的系统,搭建开发环境和安装常用的工具颇花精力,整理了下,记录如下。


1/Android编译环境

参考:

http://blog.csdn.net/gexueyuan/article/details/7772387

http://blog.csdn.net/nxh_love/article/details/8834849

在编译过程中,可能会提示其他一些错误,没关系,直接Google一般都可以解决。

如果遇到gcc版本不匹配的问题,参考:http://blog.csdn.net/sdfgh2046/article/details/5844824

2/Rhythmbox乱码解决

个人喜欢一边看代码一边听音乐,喜欢使用Rhythmbox这个Linux自带的播放器,就是中文的mp3会乱码。

解决方法:http://blog.csdn.net/gexueyuan/article/details/7851878

3/安装搜狗输入法

sudo apt-get remove ibus //Ubuntu默认安装ibus,删除它

sudo apt-get remove fcitx* //如果有安装过fcitx的话,也删除它

sudo apt-get autoremove //删除依赖库

dpkg --get-selections | grep fcitx //检测是否删除fcitx

sudo add-apt-repository ppa:fcitx-team/nightly //添加fcitx的ppa

sudo apt-get update

sudo apt-get install fcitx-sogoupinyin //安装搜狗输入法

4/chrome浏览器

sudo apt-get install google-chrome-stable

TIPS:开始sudo apt-get install chrome是安装不成功的,提示没有这个包,可以用sudo apt-cache search chrome来搜索有没有相关的包。

安装完登录gmail,同步chrome的标签和插件就行了,非常方便。

5/unrar解压缩工具

apt-get install unrar-free
安装完后依然会有一些问题,有些rar文件我们可以正常的解压,但是有些rar文件我们依然不能正常的解压了。到winrar的官网上看看有没有linux的版本,在donwload页果然看到了linux版本的下载:http://www.rarlab.com/download.htm。将rarlinux.tar.gz解压后,就可以直接使用里面的rar、unrar、rar_static命令了。

6/diffuse比较工具

对于我们这种攻城狮来说,一个比较工具是必须的,个人喜欢用idiffuse。

sudo apt-get install diffuse

7/NFS/TFTP/TELNET

1)TFTP:首先需要安装tftpd软件包:sudo apt-get install tftpd

设置tftp目录路径,在 /etc/inetd.conf 添加如下字句来实现:

tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot

重启服务。

2)NFS:apt-get install nfs-kernel-server、apt-get install nfs-common

设置nfs共享目录:在/etc/exports中添加/opt/nfs *(rw,no_root_squash,no_all_squash)

重启服务即可访问:mount HOSTIP:/opt/nfs /mnt

3)telnet:agt-get install telnetd

新建一个文件/etc/xinetd.d/telnet,并往里面添加以下内容:

service telnet
{
        disable = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        server_args     = -h
        log_on_failure  += USERID
}

重启服务

8/VIM

sudo apt-get install vim ctags cscope

还有其他必要的插件,参考:http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.html

下面是vimrc配置,自己定义了一些习惯使用的快捷键。

另外set et将tab转换成空格,比如编辑Android代码时,需要设置这个命令,因为Android代码缩进一般是4个空格。set noet则取消设置。

为了使用提示函数原型的插件echofunc.vim,建立tags文件时需要加--fields=+lS选项,如:$ ctags -R --fields=+lS

set langmenu=zh_CN.UTF-8                 "设置菜单语言
source $VIMRUNTIME/delmenu.vim    "导入删除菜单脚本,删除乱码的菜单
source $VIMRUNTIME/menu.vim          "导入正常的菜单脚本
language messages zh_CN.utf-8          "设置提示信息语言

" 判断是终端还是gvim
if has("gui_running")
	let g:isGUI=1
else
	let g:isGUI=0
endif

if v:progname =~? "evim"
  finish
endif

" 非兼容模式
set nocompatible

"显示行号
set number

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

"自动加载外部修改内容
set autoread 	

"命令模式下使用tab自动补全的时候,将补全内容用一个漂亮的单行菜单形式显示出来
set wildmenu

"不备份文件
set nobackup		

set history=1000

"编辑时右下角光标的状态
"状态栏显示在屏幕底部
set ruler		" show the cursor position all the time
set showcmd		" display incomplete commands

map Q gq

"设置语法高亮
set syntax=c
syntax enable

"搜索时高亮关键字
set hlsearch

"中文帮助
set helplang=cn

"不在单词中间断行
set lbr

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis

set ambiwidth=double

" 指定不折行,如果一行太长,超过屏幕宽度,则向右边延伸到屏幕外面
"set nowrap
set wrap 		

"打开C/C++风格的自动缩进
"当在终端粘贴代码时,这个动作解释为键入,vim会按照设置的自动缩进格式为代码
"调整缩进而粘贴的代码本身就包含了缩进,因此便出现了版式混乱的情况。
"在GVIM时不会出现这种情况
"在粘贴之前输入 :set paste 关闭所有自动缩进
"粘贴后 :set nopaste 重新打开原有的自动缩进设置
set cindent shiftwidth=8

"设定C/C++风格自动缩进的选项
" :0 switch语句之下的case语句缩进0个空格
" g0 class struct 等之下的访问权控制语句如public protected private等
" 相对class缩进0个空格
" t0 如果函数返回值与函数名不在同一行,则返回值缩进0个空格。
" 这里返回值指的是函数返回类型
" (sus 当一对括号跨越多行时,其后的行缩进为sw指定的距离
set cino=:0,g0,t0,+0,(0

set smartindent 	"c 程序自动缩进

"打开普通文件类型的自动缩进,不如cindent智能,
"但可以为编辑非C/C++文件提供一定的帮助
set autoindent shiftwidth=8

"tab4个空格
set tabstop=4
"将所有的tab替换为空格
"set et
" 统一缩进为4 
set softtabstop=4 
set shiftwidth=4 
		
"显示括号配对情况,打开这个选项后,当输入后括号时,光标会跳 回前括号片刻,然后
"跳回来,以此显示括号的配对情况
set showmatch 	
set matchtime=2

"状态栏
"set statusline format 
set cmdheight=1 "命令行占一行
set laststatus=2 "显示状态栏
highlight statusline guifg=SlateBlue guibg=Yellow
highlight statuslineNC guifg=Gray guibg=White
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]

"""""""""""""""""""""""折叠"""""""""""""""""""""""""""""""""""""""""""""""
set foldmethod=manual
set foldlevel=0	"初始时不折叠
set foldcolumn=0
set foldenable
"空格折叠键
"nnoremap <space> @= ((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> 

"<F3>给文件加上日期
"map <F3> :read !date<CR>

"set cursorline "整行标颜色
"set cursorcolumn "整列标注颜色

"+++++++++++++VIM中文编码设置

" 1. encoding 是VIM内部使用的字符编码方式。设置了它之后,VIM内部所有的buffer, 
"    寄存器、脚本中的字符串等都使用这个编码。VIM在工作的时候,如果编码方式与它
"    的内部编码不一致,它会先把编码转换成内部编码。如果工作用的编码含有无法转换
"    为内部编码的字符,则这些字符就会丢失。因此,内部编码一定要使用一种表现能力
"    足够强的编码。
set encoding=utf-8

" 2. termencoding 是VIM用于屏幕显示的编码,在显示的时候VIM会把内部编码转换
"    为屏幕编码,再用于输出。内部编码中含有无法转换为屏幕编码的字符时,该字符会
"    变成问号,但不会影响对它的编辑操作。如果termencoding没有设置,则直接使用
"    encoding,不进行转换。
" let &termencoding=&encoding
set termencoding=utf-8

" 3. fileencoding VIM从磁盘上读取文件的时候,会对文件的编码进行探测。如果文件
"    的编码方式和VIM的内部编码不同,VIM就会对编码进行转换。转换完毕后,VIM会
"    将fileencoding设置为文件的编码。当VIM存盘的时候,如果encoding和fileencoding
"    不一样,则会进行编码转换。因此,通过打开文件后设置fileencoding,可以将文件
"    由一种编码转换为另一种编码。但fileencoding是在打开文件的时候,由VIM进行
"    探测后自动设置的。因此,如果出现乱码,我们无法通过 在打开文件后重新设置
"    fileencoding来纠正乱码。

" 4. fileencodings 编码的自动识别是通过fileencodings实现的。用一个逗号分隔。
"    当打开文件的时候,VIM按顺序使用其中的编码尝试解码,如果成功的话,就使用该
"    编码方式进行解码,并将fileencoding设置为这个值,如果失败的话,就继续试验下
"    一个编码。所以在设置时,一定要把要求严格的,当文件不是这个编码的时候更容易
"    出现解码失败的编码方式放在前面,把宽松的编码放在后面。
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set incsearch 		"查找匹配
set sessionoptions+=resize

if has("gui_running")
	colorscheme desertEx " 背景颜色
	"colorscheme rainbow_neon 		" 背景颜色
	set guifont=Bitstream\ Vera\ Sans\ Mono\ 14	"gvim字体设置
	"<F2>显隐状态栏
	set guioptions=aegimtT
	set guioptions-=r
	set guioptions-=l
	set guioptions-=m
	set guioptions-=T
	set lines=20 columns=80
	map <silent> <F2> :if &guioptions =~# 'T' <Bar>
				\ set guioptions-=T <Bar>
				\ set guioptions-=m <Bar>
			\ else <Bar>
				\ set guioptions+=T <Bar>
				\ set guioptions+=m <Bar>
			\ endif<CR>
else
	colorscheme desert_my" 背景颜色
endif

"中文帮助
set helplang=cn

set completeopt=longest,menu,menuone

"打开语法打开补全
setlocal omnifunc=syntaxcomplete#Complete

set mouse=a


""""""""""""""""""""""""""窗口最大化""""""""""""""""""""""""""""""""
"function Maximize_Window()
"	silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
"endfunction

""""""""""""""""""""""""""插件配置"""""""""""""""""""""""""""""""""""
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1

if has("autocmd")
  filetype plugin on
  augroup vimrcEx
  au!
  "光标自动到上次退出该文件时所在位置
  autocmd FileType text setlocal textwidth=78 fo+=MmB
  autocmd BufReadPost *
    \ if line("'\"") > 0 && line("'\"") <= line("$") |
    \   exe "normal g`\"" |
    \ endif
  augroup END
else
  set autoindent		" always set autoindenting on
endif " has("autocmd")

"打开断行模式对亚洲语言的支持,m表示允许在两个汉字之间断行,
"即使汉字间没有出现空格
"B表示将两行合并为一行的时候,汉字与汉字之间不要补空格
set tw=78 fo+=MmB

"set visualbell 	"用闪烁代替响铃
"set novisualbell 	"用响铃代替闪烁
set noeb 		"noerrorbells的缩写

map <Left> :tabp<CR>
map <Right> :tabn<CR>

""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope
if has("cscope")
	set csprg=/usr/bin/cscope
	set cst
	set csto=0
	set nocsverb
	if filereadable("cscope.out")
		cs add cscope.out
	elseif $CSCOPE_DB != ""
		cs add $CSCOPE_DB
	endif
	set csverb
endif

""""""""""""""""""""""""""""""""""""""""""""""""""
" vimwiki
let g:vimwiki_use_mouse = 1
let g:vimwiki_list_ignore_newline = 0
let g:vimwiki_hl_headers = 0
" vimwiki打开折叠
"let g:vimwiki_folding = 1
let g:vimwiki_camel_case = 0
let g:vimwiki_list_ignore_newline = 0
let g:vimwiki_CJK_length = 1

"设定文件浏览器目录为当前目录
set bsdir=buffer 	
"set autochdir

" 日历插件
map ca :Calendar<cr>

map <S-Space> :<C-Space>

" vimwiki
let g:vimwiki_list = [{'path': '~/Wiki/wiki/', 'path_html': '~/Wiki/', 'auto_export': 1}]
" 转化为Html文件
map <S-F4> :Vimwiki2HTML<cr>

" 设置颜色
hi VimwikiHeader1 guifg=#FF0000
hi VimwikiHeader2 guifg=#00FF00
hi VimwikiHeader3 guifg=#0000FF
hi VimwikiHeader4 guifg=#FF00FF
hi VimwikiHeader5 guifg=#00FFFF
hi VimwikiHeader6 guifg=#FFFF00

" 设置cs命令快捷键
nmap css :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap csi :cs find i <C-R>=expand("<cfile>")<CR><CR>
nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR>

" 用quickfix窗口显示cscope结果
set cscopequickfix=s-,c-,d-,i-,t-,e-
" 设置quickfix命令快捷键
nmap cw :cw<CR>
nmap cn :cn<CR>
nmap cp :cp<CR>

" 映射wm键为命令WMToggle显示winManagerWindow,需要winmanager.zip,见:http://www.vim.org/scripts/script.php?script_id=95
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>

" 映射tl键显示TagList,需要taglist.vim,见:http://www.vim.org/scripts/script.php?script_id=273
nmap tl :Tlist<cr>

" 映射F3为grep搜索快捷键,需要grep.vim,见:http://www.vim.org/scripts/script.php?script_id=311
" nnoremap <silent> <F3> :Grep<CR>
nnoremap <silent> <F3> :Rgrep<CR>

" 映射tab为自动补全快捷键,需要supertab.vim,见:http://www.vim.org/scripts/script.php?script_id=1643
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"

" 映射F12为头文件源文件相互切换快捷键,需要a.vim,见:http://www.vim.org/scripts/script.php?script_id=31
nnoremap <silent> <F12> :A<CR>


你可能感兴趣的:(个人使用的Linux开发环境)