服务器搭建以及vim配置过程

来源:互联网 发布:sql 删除数据语句 编辑:程序博客网 时间:2024/06/16 02:24
服务器搭建以及vim配置过程
1、设置静态IP修改/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.12.51
netmask 255.255.255.0
gateway 192.168.12.254


2、修改 vim /etc/samba/smb.conf
添加smb共享目录
[work]
comment = work
path = /home/usrname
guest ok = no
browseable = yes
create mask = 0775
directory mask = 0775

3、修改用户组:
chown usrname:usrname usrname

4、添加BCM、ST、MSTAR、HISI的编译环境放在/opt/目录下

5、安装编译使用工具:sudo apt-get install make
sudo apt-get install build-essential
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0  /*不安装会提示找不到编译工具,并且无法执行。错误提示bash: ./arm-none-linux-gnueabi-gcc: No such file or directory*/
sudo apt-get install liblzo2-dev/*64位*/
sudo apt-get install liblzo2-dev:i386/*32位*/
sudo apt-get install uuid-dev:i386/*32位*/
sudo apt-get install gcc
sudo apt-get install lib32stdc++6
sudo apt-get install build-essential bison libc6-dev
6、安装小乌龟工具:sudo apt-get install subversion

7、安装NFS服务器:
sudo apt-get install nfs-kernel-server nfs-common portmap
配置NFS服务器:vim /etc/exports
最后一行添加:
/home   *(rw,sync,no_root_squash,no_subtree_check)
B、2014.10.30
1、配置GVim::vim .vimrc
set wildmenu "增强模式中的命令行自动完成操作 
set foldmethod=manual "设定折叠方式为手动 
set sta     "插入<tab>时使用'shiftwidth'
syntax enable "设置高亮关键字显示 
"set background=dark "背景使用黑色 
"set enc=utf-8 "设置编码为中文 
set winaltkeys=no "Alt组合键不映射到菜单上 
autocmd FileType python setlocal et sta sw=4 sts=4
" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
set nocompatible


" detect file type
filetype on
filetype plugin on


" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
"have Vim load indentation rules and plugins according to the detected filetype
filetype plugin indent on
endif


" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.


"set ignorecase " 搜索模式里忽略大小写
"set smartcase " 如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。
set autowrite " 自动把内容写回文件: 如果文件被修改过,在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。
set autoindent " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置
"set smartindent " 智能对齐方式
set tabstop=4 " 设置制表符(tab键)的宽度
set softtabstop=4 " 设置软制表符的宽度
set shiftwidth=4 " (自动) 缩进使用的4个空格
set cindent " 使用 C/C++ 语言的自动缩进方式
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s "设置C/C++语言的具体缩进方式
"set backspace=2 " 设置退格键可用
set showmatch " 设置匹配模式,显示匹配的括号
set linebreak " 整词换行
set whichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去
"set hidden " Hide buffers when they are abandoned
set mouse=a " Enable mouse usage (all modes) "使用鼠标
set number " Enable line number "显示行号
"set previewwindow " 标识预览窗口
set history=50 " set command history to 50 "历史记录50条




"--状态行设置--
set laststatus=2 " 总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行
set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P> "设置状态栏 
set ruler " 标尺,用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。


"--命令行设置--
set showcmd " 命令行显示输入的命令
set showmode " 命令行显示vim当前模式


"--find setting--
set incsearch " 输入字符串就显示匹配点
set hlsearch
2、安装vim中文帮助手册
$tar xvf vimcdoc-1.8.0.tar.gz
$cd vimcdoc-1.8.0/
$./vimcdoc.sh -i
~/.vimrc里加上set helplang=cn
3、添加bash和C/C++支持
unzip bash-support.zip
unzip cvim.zip
4、安装tags和taglist
sudo apt-get install exuberant-ctags
unzip taglist_46.zip
5、WinManager(调整窗口布局)
unzip winmanager.zip
6、安装cscope:
sudo apt-get install cscope
7、配置自动补全建立系统tags
ctags -R -f ~/.vim/systags –c-kinds=+p –c++-kinds=+px –fields=+iaS –extra=+q –python-kinds=-i /usr/include /usr/local/include
8、修改.vimrc文件
"禁止自动改变当前Vim窗口的大小 
let Tlist_Inc_Winwidth=0 
"把方法列表放在屏幕的右侧 
let Tlist_Use_Right_Window=1 
"让当前不被编辑的文件的方法列表自动折叠起来, 这样可以节约一些屏幕空间 
let Tlist_File_Fold_Auto_Close=1


"映射F3为功能键调出winmanager的文件浏览器 
"映射双击F3调出Taglist的符号浏览器 
"let g:winManagerWindowLayout='FileExplorer|TagList' "你要是喜欢这种布局可以注释掉这一行 
map <F3> :WMToggle<cr> 
map <F3><F3> :TlistToggle<cr> 
"将系统已经生成的tags导入 
set tags+=~/.vim/systags


"映射F10为添加cscope和ctags 
map <F10> :call Do_CsTag()<CR> 
map <F10><F10> :call Add_CsTag()<CR> 
nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>    
nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>    
nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>    
nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>    
nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>    
nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>    
nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> 
nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>


function Do_CsTag() 
silent! execute "!ctags -R '.'" 
if(executable('cscope') && has("cscope") ) 
silent! execute "!find -L `pwd` -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' -o     -name '*.cxx' -o -name '*.hxx'> cscope.files -o -name '*.hpp' -o -name '*.py'"    endif 
silent! execute "!cscope -bq" 
silent! execute "call Add_CsTag()" 
endf


function Add_CsTag() 
if filereadable("cscope.out") 
execute "cs add cscope.out" 
execute "set tags+=./tags" 
endif 
endf


silent! execute "call Add_CsTag()"
9、同名头文件和源文件切换:
a.vim 放到 ~/.vim/plugin 中
10、代码块和常用语句模板自动补全
code_complete.vim放到 ~/.vim/plugin 中
将下边这一段加入到template段中以添加bash模板补全功能
"Bash Templates 
"Bash Structure by warmbupt@gmail.com 
let g:template['sh'] = {} 
let g:template['sh']['sif'] = "if ".g:rs."…".g:re." ; then/".g:rs."…".g:re."/fi" 
let g:template['sh']['sife'] = "if ".g:rs."…".g:re." ; then/".g:rs."…".g:re."/else/".g:rs."…". 
/g:re."/fi" 
let g:template['sh']['scase'] = "case ".g:rs."…".g:re." in/".g:rs."…".g:re.")//" .g:rs."…".g:re.";;//". 
/g:rs."…".g:re.")//" .g:rs."…".g:re.";;///esac/" 
let g:template['sh']['swhile'] = "while ".g:rs."…".g:re." /do/".g:rs."…".g:re."/done" 
let g:template['sh']['suntil'] = "until ".g:rs."…".g:re." /do/".g:rs."…".g:re."/done" 
let g:template['sh']['sfor'] = "for ".g:rs."…".g:re." in " .g:rs."…".g:re."/do/".g:rs."…".g:re."/done" 


let g:template['sh']['sselect'] = "select ".g:rs."…".g:re." in " .g:rs."…".g:re."/do/".g:rs."…".g:re."/done"
11、代码补全:supertab+snipMate+omnicppcomplete
vim打开supertab.vba,然后使用:so % 进行安装
vim neocomplcache-6.1.vba然后使用:so % 进行安装
12、函数原型提示:
echofunc.vim放到 ~/.vim/plugin 中
在 ~/.vimrc中添加:
"-------------------------------------------------
"函数原型提示
let g:EchoFuncKeyNext='<C-n>'
let g:EchoFuncKeyPrev='<C-p>'
13、.C/STL/Python Doc提示:
tar xvf stlrefvim.tar.gz
unzip crefvim.zip
unzip pyref.zip
把plugin/pyref.vim移动到ftplugin中,这样只针对python文件的插件。
在.vimrc中添加:let g:pyref_mapping = 'K'
14、简单注释:
comments.vim放到plugin目录中
15、代码格式整理:
在vimrc中写入:
"定义源代码格式化 
map <F12> :call FormartSrc()<CR> 
"定义FormartSrc() 
func FormartSrc() 
exec "w" 
if &filetype == 'c' 
exec "!astyle % –style=ansi –suffix=none %" 
exec "e! %" 
elseif &filetype == 'cpp' 
"exec "!astyle % –style=ansi –suffix=none %" 
"exec "e! %" 
elseif &filetype == 'perl' 
exec "!astyle –style=gnu –suffix=none %" 
exec "e! %" 
elseif &filetype == 'py' 
exec "!astyle –style=gnu –suffix=none %" 
exec "e! %" 
elseif &filetype == 'java' 
exec "!astyle –style=java –suffix=none %" 
exec "e! %" 
elseif &filetype == 'jsp' 
exec "!astyle –style=gnu –suffix=none %" 
exec "e! %" 
elseif &filetype == 'xml' 
exec "!astyle –style=gnu –suffix=none %" 
exec "e! %" 
elseif &filetype == 'html' 
exec "!astyle –style=gnu –suffix=none %" 
exec "e! %" 
elseif &filetype == 'htm' 
exec "!astyle –style=gnu –suffix=none %" 
exec "e! %" 
endif 
endfunc 
"结束定义FormartSrc
16、多tab支持:
unzip NERD_tree.zip
在vimrc中写入:
"设置tab的快捷键 
"Shift+t为新建一个标签,按两次Shirt+t为跳转标签 
map <S-t> :tabnew .<CR> 
map <S-t><S-t> <ESC>:tabnext<CR>
17、Python自动补全支持:
mkdir -p tools/pydiction/
mkdir -p after/ftplugin/
pydiction-1.2.zip解压放到~/.vim/after/ftplugin/ 路径下
将complete-dict文件放到~/.vim/tools/pydiction/目录中
在vimrc中写入:
"------------------------------------------------------
"设置python自动补全
"pydiction 1.2 python auto complete
let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'
let g:pydiction_menu_height = 20
18、自动检查Python语法:
pyflakes-vim.zip,在~/.vim/目录下解压。
19、Python常用功能:
python_fn.vim, 放到~/.vim/ftplugin/python中
20、Python代码自动折叠:
python_editing.vim,放在~/.vim/ftplugin/python中
21、代码文档化工具:
DoxygenToolkit.vim,放到~/.vim/plugin
安装doxygen:sudo apt-get install doxygen
在vimrc中写入:
map <F4>a :DoxAuthor<CR> 文件头注释
map <F4>f :Dox<CR> 
map <F4>b :DoxBlock<CR> 
map <F4>l :DoxLic<CR> 
"map <F4>c odocClass<C-B> 
"map <F4>m odocMember<C-B> 
let g:DoxygenToolkit_authorName="pchuang, http://blog.csdn.net" 
let s:licenseTag = "Copyright(C)\<enter>" 
let s:licenseTag = s:licenseTag . "For free\<enter>" 
let s:licenseTag = s:licenseTag . "All right reserved\<enter>" 
let g:DoxygenToolkit_licenseTag = s:licenseTag 
let g:DoxygenToolkit_briefTag_funcName="yes" 
let g:doxygen_enhanced_color=1
22、配置一键编译调试:
在vimrc中写入:
"--------------------------------------------------------
"添加自动编译和调试 现在使用交叉编译工具一下函数暂时不用
"map <F8> :w<CR>:call CompileRun()<CR>
"map <F8><F8> :w<CR>:call Debug()<CR>


func CompileRun()
exec "w"
if &filetype == 'c'
exec "!gcc % -g -o %<"
exec "!.\/%<"
elseif &filetype =='cpp'
exec "!g++ % -g -o %<"
exec "!.\/%<"
elseif &filetype == 'python'
exec "!python %"
endif
endfunc


func Debug()
exec "w"
if &filetype == 'c'
exec "!rm %<"
exec "!gcc % -g -o %<"
exec "!gdb %<"
elseif &filetype == 'cpp'
exec "!rm %<"
exec "!g++ % -g -o %<"
exec "!gdb %<"
exec "!rm %<.class"
elseif &filetype == 'java'
exec "!javac %"
exec "!jdb %<"
elseif &filetype == 'python'
exec "!pdb %"
endif
endfunc
23、shell脚本自动加上执行权限:
在vimrc中写入:
"--------------------------------------------------------
"自动修改shell脚本执行权限
function ModeChange()
if getline(1) =~ "^#!"
if getline(1) =~ "/bin/"
silent !chmod a+x <afile>
endif
endif
endfunction
au BufWritePost * call ModeChange()
24、从上次退出时编辑的位置继续编辑:
在vimrc中写入:
autocmd BufReadPost * 
 \ if line("'\"") > 0 && line ("'\"") <= line("$") | 
 \   exe "normal g'\"" | 
 \ endif
25、配置括号自动添加:
在vimrc中写入:
"------------------------------------------------------
"配置括号自动添加:
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
:inoremap > <c-r>=ClosePair('>')<CR>
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
26、添加一些快捷键:
在vimrc中写入:
map <F5> :w<CR>:make<CR> 
map <F5><F5> :make clean<CR> 
map <F6> :cw<CR> 
map <F6><F6> :ccl<CR> 
map <F7> :cn<CR> 
map <F7><F7> :cp<CR>


map <S-o> o<ESC><CR>  
map <C-a> ggVG 
map <S-q><S-q> :q!<CR>:q!<CR>:q!<CR>  
map <C-H> :L1,L2s/src/tar/g 
map <S-F12> <ESC>I//<ESC><CR> 
map! <S-F12> <ESC>I//<ESC><CR> 
map <S-F12><S-F12> 02x<ESC><CR> 
map! <S-F12><S-F12> <ESC>02x<ESC><CR> 
map <F12> <ESC>$a//  
map! <F12> <ESC>$a//
27、在vim配置文件/home/user/.vimrc中加入如下的配置:


"-- omnicppcomplete setting --
" 按下F3自动补全代码,注意该映射语句后不能有其他字符,包括tab;否则按下F3会自动补全一些乱码
imap <F3> <C-X><C-O>
" 按下F2根据头文件内关键字补全
imap <F2> <C-X><C-I>
set completeopt=menu,menuone " 关掉智能补全时的预览窗口
let OmniCpp_MayCompleteDot = 1 " autocomplete with .
let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->
let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window
let OmniCpp_GlobalScopeSearch=1 " enable the global scope search
let OmniCpp_DisplayMode=1 " Class scope completion mode: always show all members
"let OmniCpp_DefaultNamespaces=["std"]
let OmniCpp_ShowScopeInAbbr=1 " show scope in abbreviation and remove the last column
let OmniCpp_ShowAccess=1
0 0