LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2961|回复: 10

Debian Reiser4 安装方法

[复制链接]
发表于 2008-5-27 16:39:55 | 显示全部楼层 |阅读模式
安装理由:
        看上reiser4的压缩比与性能,并且我想重做个干净的系统(当前系统安装的软件太多了,有4G)。
    风险:
        reiser4一直没合入正式内核,并且现在主要开发者已经入狱,应用前先要考虑。

    问题:
        安装使用的2.6.25.4内核,好像不支持845pe的声卡。所以在试用前最好先用新内核检查设备驱动是不是正常,特别是声卡。
        

    本文研究通过cdebootstrap进行全新系统安装的方法。

    前提是需要已有一个Linux系统,及一个150M的空白分区(高级一点做法是通过initrd进行)。

    安装方法是先通过cdebootstrap安装一个最小系统到空白分区,再从空白分区安装最系统到原始分区。



    安装过程的注意点:
        1.  grub无法引导reiser4文件系统,只能使用lilo,不过lilo的写入速度很慢,不知可有方法可解决此问题。
        2.  使用udev的时候,/dev目录也必须有console文件与null文件,不然无法启动。
        3.  cdebootstrap安装的最小系统好像比debootstrap要小,只有56M,不会有多余软件。但是cdebootstrap不会安装base-config,后面需要自己对系统的各部分进行手工配置。

    安装后大小600M左右,使用E17做窗口管理器,源是 deb http://debian.alphagemini.org/ unstable main


    安装后reiser4的使用感受:个人感觉性能比reiser3.6要高,也许只是心理作用。
    不过用reiser4是需要胆量的,现在namesys的网站都上不去了,它也没有加到正式的内核中,后面的维护无法保证。
    另外在/home分区中使用了reiser4的gzip压缩选项,但感觉好像没有效果,不知是不是已经取消此功能。



1.  编译一个支持reiser4的内核:
    从www.kernel.org上下载2.6.25.4内核
    从http://www.kernel.org/pub/linux/ ... r4/reiser4-for-2.6/ 下载reiser4补丁
    然后在kernel目录下应用下面命令打补丁
    patch -p1 ../reiser4-for-2.6.25.patch

    编译并选择reiser4支持,重启

2.  安装cdebootstrap,并在一个新的空白分区上应用cdebootstrap生成一个新文件系统:
    我是使用的swap分区(/dev/hda10)。只要有大于150M的分区就可以继续。
    先做如下工作:
        swapoff                     #   停止swap分区,
        vi/etc/fstab                    让系统启动时不自动mount swap分区
        fdisk                           修改swap分区的分区类型为83
        apt-get install reiser4progs    #   安装reiser4工具以用它创建分区,
        apt-get install cdebootstrap    #   安装cdebootstrap工具,以利用它安装新系统

    如果不准备重装系统,那需要安装lilo。要是准备完全重装则不需要:
        apt-get install lilo

        mkfs.reiser4 /dev/hda10         #   把swap分区变成reiser4分区以安装最小系统
        mount  /mnt/tmp /dev/hda10      #   把hda10 mount到/mnt/tmp

    然后开始安装最小系统,使用下面命令安装:
        cdebootstrap -f minimal sid /mnt/tmp http://debian.cn99.com/debian
            minimal 表示最小安装,   
            sid     表示安装的是sid版本,
            http://debian.cn99.com/debian   表示使用这个源进行安装

    安装时间很快,一般几分钟就可以搞好。安装过程使用的空间大小为122M,安装后的空间为64M。

        
4.  配置最小系统。先把当前的系统配置复制到最小系统上。
    配置包括下面内容:文件系统mount信息、网络信息、设备文件、内核启动文件。
        cp -a /dev/* /mnt/tmp/dev                       #   设备文件
        cp -a /lib/modules /mnt/tmp/lib                 #   内核模块
        cp -a /boot/vmlinuz* /mnt/tmp/boot              #   内核
        cp -a /boot/System.map* /mnt/tmp/boot           #   内核map
        cp -a /boot/config* /mnt/tmp/boot               #   内核配置

        cp /etc/fstab /mnt/tmp/etc                      #   文件系统mount信息
        mkdir /mnt/tmp/etc/network
        cp /etc/network/interfaces /mnt/tmp/etc/network #   网络配置
        cp /etc/hostname            /mnt/tmp/etc/       #   本机主机名配置
        cp /etc/hosts               /mnt/tmp/etc/       #   主机名配置


    然后修改/mnt/tmp/etc/fstab, 把 / 对应的分区修改成hda10


5.  使用chroot切换到/mnt/tmp目录下,安装其它软件让这个分区可以自己启动。
    先mount proc再chroot:
        mount -t proc proc /mnt/tmp/proc
        chroot /mnt/tmp
   
   
6.  配置/dev/hda10环境,
        passwd                          #   设置root口令。

        apt-get install lilo            #   必须使用lilo. grub不支持从reiser4启动。
        liloconf                        #   配置lilo, 设置让它安装在/dev/hda10, 并且不安装到mbr不修改活动分区
        lilo                            #   写lilo启动信息到/dev/hda10

    如果需要对旧/分区(/dev/hda2)进行全新重装,再继续下面命令:
        apt-get install reiser4progs    #   
        apt-get install cdebootstrap    #   用于在/dev/hda2上重装最小系统
        apt-get install pppoe pppoeconf sysklogd #   我是使用pppoe安装的,需要安装pppoe
        pppoeconf                       #   配置ppp信息

    修改grub, 本人使用grub4dos引导linux,需要在c:\menu.1st文件中增加下面配置:
        title Mini System
        rootnoverify (hd0,9)
        chainloader +1


        

6.  重起进入 /dev/hda10。

7.  如果不需要对/dev/hda2进行重装,则
    只需要把/dev/hda2分区中内容复制到其它分区,
    然后把/dev/hda2创建成reiser4,再把文件复制回就可以。
        mount /dev/hda2 /mnt/old
        mount /dev/hda5 /mnt/back   #   备份分区,分区不可以是vfat之类的,如果是vfat应该使用tar 进行备份
        cp -a /mnt/old  /mnt/back   #   备份
        umount /mnt/old
        mkfs.reiser4 /dev/hda2
        mount /dev/hda2 /mnt/old
        cp -a /mnt/back /mnt/old    #   恢复原来的备份

        恢复好后,设置使用lilo启动/dev/hda2
        mount -t proc proc /mnt/old/proc
        chroot /mnt/old
        liloconf                        #   配置lilo, 设置让它安装在/dev/hda2, 并且不安装到mbr不修改活动分区
        lilo                            #   写lilo启动信息到/dev/hda2
    修改grub, 本人使用grub4dos引导linux,需要在c:\menu.1st文件中增加下面配置:
        title Debian
        rootnoverify (hd0,1)
        chainloader +1

    再重启就OK。

    重启后, /dev/hda10里面的内容就没用了,但可以使用这个文件系统做成一个initrd,以便后面进行系统维护。
    先删除此文件系统中无用的文件,一般为 locale、info、man、doc,另外还有vim中自带的文档与无用的插件,还有/var目录下一些apt使用的信息。
    清好后
    使用这个命令生成initrd文件:
        find . | cpio -H newc -o | gzip -9 > /tmp/initrd.img
    本人清理后的文件系统是55M,做成的initrd是21M

8.  如果需要完全重装,先检查pppoe是否可用。
        pon dsl-provider                #   拨号
        ifconfig                        #   多试几下,如果还不出现ppp设备那表示不可用,使用plog 查看出错信息
   
    如果ppp不可用,继续解决ppp问题直到可用。
    一般ppp不可用的原因之一是eth0没有启动,可以使用
        ifconfig eth0 192.168.0.1 255.0.0.0 up  启动网卡
    再重复上面的流程。

9.  pppoe可用后,使用cdebootstrap安装新系统:

    先备份原来的/etc目录和/root /home目录,再格/dev/hda2
        mkfs.reiser4 /dev/hda2      
        mount /dev/hda2 /mnt/tmp
        cdebootstrap -f minimal sid /mnt/tmp http://debian.cn99.com/debian

    把系统文件复制到新系统:
        cp -a /dev/* /mnt/tmp/dev                       #   设备文件
        cp -a /lib/modules /mnt/tmp/lib                 #   内核模块
        cp -a /boot/vmlinuz* /mnt/tmp/boot              #   内核
        cp -a /boot/System.map* /mnt/tmp/boot           #   内核map
        cp -a /boot/config* /mnt/tmp/boot               #   内核配置

        cp /etc/fstab /mnt/tmp/etc                      #   文件系统mount信息
        mkdir /mnt/tmp/etc/network
        cp /etc/network/interfaces /mnt/tmp/etc/network #   网络配置
        cp /etc/hostname            /mnt/tmp/etc/       #   本机主机名配置
        cp /etc/hosts               /mnt/tmp/etc/       #   主机名配置

    然后chroot到新系统:
        mount -t proc proc /mnt/tmp/proc
        chroot /mnt/tmp
        passwd                                          @   设置新口令

10  安装基本软件包:
        apt-get install aptitude                        #   安装包管理工具
        apt-get install vim                             #   安装vim
        apt-get install pppoe pppoeconf sysklogd locales
        dpkg-reconfigure locales                        #   配置locale,一般只需要选择en.UTF8、zh_CN,* zh_TW.*就可以。

        apt-get install libc6-i686                      #   使用libc的686优化版本
        apt-get install console-data                    #   安装键位图


        然后进行配置,主要是pppoe与lilo
        pppoeconf                                       #   配置ppp

        安装lilo并配置让它引导/dev/hda2分区:
        apt-get install lilo                           
        liloconf
        lilo

        安装udev并去掉/dev目录下的多余设备文件,只留/dev/console与/dev/null。
        apt-get install udev
        rm -rf /dev/*
        exit
        cp -a /dev/console /mnt/tmp/console
        cp -a /dev/null /mnt/tmp/null

        reboot

11  重启后进入/dev/hda2, 安装其它软件包
        apt-get install xserver-xorg-video-fbdev xserver-xorg-input-kdb #   安装Xwindow驱动,选择video的驱动很重要,如果不选择那安装Xwindow时会需要所有的驱动。
        apt-get install roxterm                         #   安装X终端
        apt-get install xorg                            #   安装Xwindow
        apt-get install xinit                           #   安装startx程序
        apt-get install iceweasel                       #   firefox
        apt-get install pcmanfm                         #   轻量级的文件管理器
        apt-get install mplayer                         #   播放器
        apt-get install wine                            #   windows程序模拟器
        apt-get install fcitx                           #   中文输入法

        然后再安装窗口管理器,我使用的是e17,源是:
            deb http://debian.alphagemini.org/ unstable main
        安装:
            apt-get install e17
        如果是使用gnome的话,那用下面命令安装:
            apt-get install gnome-desktop-environment
        如果使用kde,那则是
            apt-get install kdebase

12. 恢复其它配置文件:
        从原来的/etc目录下恢复备份文件,一般下面文件可能比较有用:
            /etc/apt/source.list    apt源配置
            /etc/X11/xorg.conf      Xwindows的配置
            ~/.xinitrc              X启动脚本
            ~/.vimrc                vimrc配置文件

13. 字体安装与配置,
    安装, 只需要复制simsun与tahoma字体就可以。
        mkdir /usr/share/fonts/truetype/simsun
        cp <widows>/Fonts/simsun.ttc /usr/share/fonts/truetype/simsun
        cp <widows>/Fonts/tahoma.ttf /usr/share/fonts/truetype/simsun
        fc-cache -v     #   更新字体缓存
   
    配置:
        字体配置很简单,只需要创建/etc/fonts/local.conf配置文件就可以。
        /etc/fonts/local.conf配置文件内容如下,是网上找到的,效果还不错,感谢原作者:
<!-- conf.d/myfont.conf -->

<fontconfig>
<dir>~/.fonts</dir>

<!--

配置粗体中文显示,要配合freetype-2.1.10,libxft-2.1.7,fontconfig-2.3.X

-->

<match target="font">
<!-- check to see if the font is just regular -->

<test name="weight" compare="less_eq">
<int>100</int>
</test>
<!-- check to see if the pattern requests bold -->

<test target="pattern" name="weight" compare="more_eq">
<int>180</int>
</test>
<!-- set the embolden flag -->

<edit name="embolden" mode="assign">
<bool>true</bool>
</edit>
</match>
<!--
default settings for all fonts.
-->

<match target="font">
<!-- 打开字体的反锯齿即AA,大号字用AA会更美观   -->

<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>

<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
<!-- 打开hint  -->

<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
<!-- 关闭autohint  -->

<!--
<edit mode="assign" name="autohint" >
<bool>false</bool>
</edit>
-->
</match>
<!-- 关闭 10到16号字体的AA -->

<!--

<match target="font" >
<test compare="contains" name="lang" >
<string>zh-cn</string>
<string>zh-tw</string>
<string>ja</string>
<string>ko</string>
</test>
<test compare="more_eq" name="pixelsize" qual="any" >
<double>12</double>
</test>
<test compare="less_eq" name="pixelsize" qual="any" >
<double>16</double>
</test>

<edit mode="assign" name="antialias" >
<bool>false</bool>
</edit>
</match>
-->
<!-- 解决英文字体间距过宽 -->

<match target="font">

<test target="pattern" name="lang" compare="contains">
<string>zh-tw</string>
<string>zh-cn</string>
<string>ja</string>
<string>ko</string>
</test>

<edit name="spacing">
<const>proportional</const>
</edit>

<edit name="globaladvance">
<bool>false</bool>
</edit>
</match>
<!--
设定中文最小字号,使得小字的中文美观
-->

<match target="font">

<test name="family" qual="any">
<string>SimSun</string>
<string>NSimSun</string>
<string>SimHei</string>
<string>AR PL ShanHeiSun Uni</string>
<string>AR PL ZenKai Uni</string>
<string>AR PL New Sung</string>
<string>FZSongTi</string>
<string>FZMingTiB</string>
<string>FangSong_GB2312</string>
<string>KaiTi_GB2312</string>
</test>

<test compare="more_eq" name="pixelsize">
<int>5</int>
</test>

<test compare="less_eq" name="pixelsize">
<int>11</int>
</test>

<edit compare="eq" name="pixelsize">
<int>12</int>
</edit>
</match>

<!--

use english fonts instead of chinese fonts' letters
-->

<match target="pattern">

<test name="family">
<string>SimSun</string>
<string>宋体</string>
<string>AR PL ShanHeiSun Uni</string>
<string>MingLiU</string>
<string>新細明體</string>
</test>

<edit binding="strong" mode="prepend" name="family">
<string>Tahoma</string>
<string>SimSun</string>
<string>Nimbus Roman No9 L</string>
</edit>
</match>

<!--

<match target="pattern">
<test name="family">
<string>NSimSun</string>
<string>新宋体</string>
<string>MingLiU</string>
<string>細明體</string>
</test>
<edit binding="strong" mode="prepend" name="family">
<string>Courier New</string>
<string>Cumberland AMT</string>
<string>Nimbus Mono L</string>
</edit>
</match>
-->

<!--

把serif ,sans,monospace的family(字体族)重新排序,适应中文用户的用字习惯
-->

<alias>
<family>serif</family>

<prefer>
<family>Times New Roman</family>
<family>Simsun</family>
<family>Nimbus Roman No9 L</family>
<family>Luxi Serif</family>
<family>Times</family>
<family>Bitstream Vera Serif</family>
<family>WenQuanYi Bitmap Song</family>
<family>AR PL ShanHeiSun Uni</family>
<family>AR PL ZenKai Uni</family>
<family>AR PL New Sung</family>
<family>FZSongTi</family>
<family>FZMingTiB</family>
<family>Kochi Mincho</family>
<family>AR PL SungtiL GB</family>
<family>AR PL Mingti2L Big5</family>
<family>Baekmuk Batang</family>
</prefer>
</alias>

<alias>
<family>Mulberry</family>

<prefer>
<family>Monaco</family>
<family>SimHei</family>
</prefer>
</alias>

<alias>
<family>sans-serif</family>

<prefer>
<family>Helvetica</family>
<family>Verdana</family>
<family>Arial</family>
<family>Tahoma</family>
<family>Bitstream Vera Sans</family>
<family>SimSun</family>
<family>WenQuanYi Bitmap Song</family>
<family>AR PL ShanHeiSun Uni</family>
<family>AR PL ZenKai Uni</family>
<family>AR PL New Sung</family>
<family>FZSongTi</family>
<family>FZMingTiB</family>
<family>Kochi Gothic</family>
<family>AR PL KaitiM GB</family>
<family>AR PL KaitiM Big5</family>
<family>Baekmuk Dotum</family>
</prefer>
</alias>

<alias>
<family>monospace</family>

<prefer>
<family>Courier</family>
<family>Courier New</family>
<family>Andale Mono</family>
<family>Luxi Mono</family>
<family>Nimbus Mono L</family>
<family>Bitstream Vera Sans Mono</family>
<family>NSimSun</family>
<!-- han (zh-cn,zh-tw) -->
<family>WenQuanYi Bitmap Song</family>
<family>AR PL ShanHeiSun Uni</family>
<family>AR PL ZenKai Uni</family>
<family>AR PL New Sung</family>
<family>FZSongTi</family>
<family>FZMingTiB</family>
<family>Kochi Gothic</family>
<family>AR PL KaitiM GB</family>
<family>Baekmuk Dotum</family>
</prefer>
</alias>
</fontconfig>
 楼主| 发表于 2008-5-27 16:44:15 | 显示全部楼层
附自用的vimrc.
放到/etc/vim/vimrc.local文件中就可以全局生效

需要下载ps_color与oceandeep颜色

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
if has("win32")
source $VIMRUNTIME/mswin.vim
"behave mswin
endif

behave xterm

set ffs=unix,dos
set fencs=utf-8,cp936,ucs-bom,default,latin1
set langmenu=none        " 使用英文菜单

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

" 1 height windows
"set winminheight=1



set guicursor=a:blinkon0    "   停止闪烁
if has("gui_running")
    "   win下FixedSys的字体比较好看, unix下bitstream不错
    "    set guifont=Bitstream_Vera_Sans_Mono:h12:cANSI
    if has("win32")
        set guifont=Fixedsys:h12:cGB2312
    else
        set guifont=Bitstream\ Vera\ Sans\ Mono\ 16
    endif
    set guioptions-=T    " 去掉工具栏,我喜欢显示的范围更大的
    set guioptions-=m    " 去掉菜单,我喜欢显示的范围更大的
    set guioptions-=l
    set guioptions-=L
    set guioptions-=r
    set guioptions-=R


    " No icky toolbar, menu or scrollbars in the GUI
    "if has('gui')
    "    set guioptions-=m
    "    set guioptions-=T
    "    set guioptions-=l
    "    set guioptions-=L
    "    set guioptions-=r
    "    set guioptions-=R
    "end

    colorscheme  oceandeep   
    "  desert      " 背景颜色           
else
    set background=dark
    colorscheme ps_color  "zellner
endif

"-------------------------------------------------------------------------------
" Moving cursor to other windows
"
" shift down   : change window focus to lower one (cyclic)
" shift up     : change window focus to upper one (cyclic)
" shift left   : change window focus to one on left
" shift right  : change window focus to one on right
"-------------------------------------------------------------------------------
"
nmap <s-down>   <c-w>w
nmap <s-up>     <c-w>W
nmap <s-left>   <c-w>h
nmap <s-right>  <c-w>l


set autoread              " read open files again when changed outside Vim
"   set autowrite             " write a modified buffer on each :next , ...
set browsedir  =current   " which directory to use for the file browser
"set nowrap                " 显示时不自动换行, 看个人爱好, 注掉也不错

"-------------------------------------------------------------------------------
" Change the working directory to the directory containing the current file
"-------------------------------------------------------------------------------
if has("autocmd")
    " 如果使用cscope或是ctags的话, 最好不要自动切换目录, 不然标志无法定位
    "  autocmd BufEnter * :lcd %:p:h
endif
"-------------------------------------------------------------------------------
" Filename completion
"
"   wildmenu : command-line completion operates in an enhanced mode
" wildignore : A file that matches with one of these
"              patterns is ignored when completing file or directory names.
"-------------------------------------------------------------------------------
"
set wildmenu
set wildignore=*.svn,*.svn-base,*.bak,*.o,*.e,*~
set suffixes=.svn


" Allow edit buffers to be hidden
set hidden


if v:version >= 700
    set stal=1        " 当打开多个tab时显示tab,如果只有一个则不显示,tab只在7.0中有效
endif

" Highlight matching parens
"set showmatch

if v:version >= 700
    "set cursorline                " 高亮当前行,在oceandeep布局下显示的不是很清楚,
    "去掉
endif

set et                        "   TODO    删除
set ch=2                " Make command line two lines high
set mousehide                " Hide the mouse when typing text
let c_comment_strings=1        " I like highlighting strings inside C comments


set formatoptions=tcrqn2mB
set ts=8            " tab是8空格
set sw=4            "shift width,indent时的值是4格,
set sts=4            " soft tab是4空格, 按一次tab时也是4格, 使用space代替
set bs=2            " 退格键的模式
set lsp=0            " space it out a little more (easier to read)
set vb t_vb=            " set visual bell and disable screen flash

set ru                    " 在下面显示标尺

set grepprg=grep\ -nH        "   使用grep查找, grep包括在unxutils中

"""""""""""""""""""""""""""""""""""""""
"   查找的配置
"""""""""""""""""""""""""""""""""""""""
set incsearch       " use incremental search
set ic                    " 查找时忽略大小写
set is                    " 增量查找
set scs                    " 查找时智能大小写
set hlsearch            " hlsearch, 高亮显示查找结果
" Wrap on these
set whichwrap+=<,>,[,]
"""""""""""""""""""""""""""""""""""""""
"   自动补全功能
"   编程快捷键, 按#i 空格时, 自动变成#include
"""""""""""""""""""""""""""""""""""""""
iab #i #include
iab #d #define
iab #e #endif


"""""""""""""""""""""""""""""""""""""""
"   设置使用cscope, 并设置自动查找tags文件的目录
"""""""""""""""""""""""""""""""""""""""
set cst
set csto=1
set tags=./tags,../tags,../../tags,../../../tags
set cspc=3            " show file path's last three part

"""""""""""""""""""""""""""""""""""""""
"   配置命令模式下的快键键
"""""""""""""""""""""""""""""""""""""""
"   Tlist   :taglist, 在左边窗口显示文件中的函数名与定义名
"   WMToggle        打开/关闭 资源管理器和buf 管理器
"   zO,zC,zR,zM        折行功能
"   :cn                grep查找到结果时进入下一个结果
map <F1>    :Tlist<cr>
map <F2>    :WMToggle<cr>
map <F3>    zO
map <F4>    zc
map <F5>    zR
map <F6>    zM
map <F7>    :cn<CR>


"""""""""""""""""""""""""""""""""""""""
"   配置备份和交换文件目录
"   默认vim会把这些文件放在当时目录下, 看起来比较乱
"""""""""""""""""""""""""""""""""""""""
set backup    " enable backup and define the backup file
set backupext=.bak
" 设置swap文件的目录到dir
"设置备份文件的目录到backupdir 我不喜欢看到每个目录下都有备份 因为一般备份用不到
if has("unix")
    set dir=/tmp
    set backupdir=/tmp
else
    set dir=D:\tmp\vim\swap
    set backupdir=D:\tmp\vim\bak
endif


"""""""""""""""""""""""""""""""""""""""
"   折行配置
"""""""""""""""""""""""""""""""""""""""
"   根据语法折行, 如c/c++中就是{}
if v:version >= 700
    set foldmethod=syntax   " marker,folder模式为语法
else
    "        vim63中不支持根据语法折行
    set foldmethod=indent
endif

set foldlevel=100       " Don't autofold anything (but I can still fold manually)
set foldopen-=search    " don't open folds when you search into them
set foldopen-=undo      " don't open folds when you undo stuff
"""""""""""""""""""""""""""""""""""""""
" Perl
"""""""""""""""""""""""""""""""""""""""
let perl_extended_vars=1 " highlight advanced perl vars inside strings




""""""""""""""""""""""""""""""""""""""
"   网上下载
""""""""""""""""""""""""""""""""""""""
" Nice statusbar
set laststatus=2
set statusline=
set statusline+=%2*%-3.3n%0*\                " buffer number
set statusline+=%f\                          " file name
set statusline+=%h%1*%m%r%w%0*               " flags
"set statusline+=\[%{strlen(&ft)?&ft:'none'}, " filetype
"set statusline+=%{&encoding},                " encoding
"set statusline+=%{&fileformat}]              " file format
if filereadable(expand("$VIM/vimfiles/plugin/vimbuddy.vim"))
    set statusline+=\ %{VimBuddy()}          " vim buddy
endif
set statusline+=%=                           " right align
set statusline+=%2*0x%-4B\                   " current char
set statusline+=%-8.(%l,%c%V%)\ %<%P        " offset

" special statusbar for special windows
if has("autocmd")
    au FileType qf
                \ if &buftype == "quickfix" |
                \     setlocal statusline=%2*%-3.3n%0* |
                \     setlocal statusline+=\ \[Compiler\ Messages\] |
                \     setlocal statusline+=%=%2*\ %<%P |
                \ endif

    fun! <SID>FixMiniBufExplorerTitle()
        if "-MiniBufExplorer-" == bufname("%")
            setlocal statusline=%2*%-3.3n%0*
            setlocal statusline+=\[Buffers\]
            setlocal statusline+=%=%2*\ %<%P
        endif
    endfun


    au BufWinEnter *
                \ let oldwinnr=winnr() |
                \ windo call <SID>FixMiniBufExplorerTitle() |
                \ exec oldwinnr . " wincmd w"
endif

" Nice window title
if has('title') && (has('gui_running') || &title)
    set titlestring=
    set titlestring+=%f\                     " file name
    set titlestring+=%h%m%r%w                " flags
    set titlestring+=\ -\ %{v:progname}      " program name
endif

" If possible, try to use a narrow number column.
if v:version >= 700
    try
        setlocal numberwidth=3
    catch
    endtry
endif


" Better include path
set path+=src/

" Show tabs and trailing whitespace visually
"if (&termencoding == "utf-8") || has("gui_running")
"    if v:version >= 700
"        set list listchars=tab:?·,trail:·,extends:…,nbsp:?
"    else
"        set list listchars=tab:?·,trail:·,extends:…
"    endif
"else
"    if v:version >= 700
"        set list listchars=tab:>-,trail:.,extends:>,nbsp:_
"    else
"        set list listchars=tab:>-,trail:.,extends:>
"    endif
"endif

set fillchars=fold:-

"         "-----------------------------------------------------------------------
"         " completion
"         "-----------------------------------------------------------------------
"         set dictionary=/usr/share/dict/words






"""""""""""""""""""""""""""""""""""""""
"   插件配置
"""""""""""""""""""""""""""""""""""""""
"   taglist,        显示在右边
let Tlist_Use_Right_Window=0
"let Tlist_WinWidth = 20
"let Tlist_Inc_Winwidth = 0
let Tlist_Enable_Fold_Column = 0
let g:defaultExplorer=0

"-----------------------------------------------------------------------
" plugin / script / app settings
"-----------------------------------------------------------------------

if has("eval")
    " Perl specific options
    let perl_include_pod=1
    let perl_fold=1
    let perl_fold_blocks=1

    " Vim specific options
    let g:vimsyntax_noerror=1
    let g:vimembedscript=0

    " c specific options
    let g:c_gnu=1
    let g:c_no_curly_error=1

    " eruby options
    au Syntax * hi link erubyRubyDelim Directory

    " Settings for taglist.vim
    let Tlist_Use_Right_Window=1
    let Tlist_Auto_Open=0
    let Tlist_Enable_Fold_Column=0
    let Tlist_Compact_Format=1
    let Tlist_WinWidth=28
    let Tlist_Exit_OnlyWindow=1
    let Tlist_File_Fold_Auto_Close = 1
    "  nnoremap <silent> <F9> :Tlist<CR>

    "             " Settings minibufexpl.vim
    "             let g:miniBufExplModSelTarget = 1
    "             let g:miniBufExplWinFixHeight = 1
    "             let g:miniBufExplWinMaxSize = 1
    "             " let g:miniBufExplForceSyntaxEnable = 1

    " Settings for showmarks.vim
    if has("gui_running")
        let g:showmarks_enable=1
    else
        let g:showmarks_enable=0
        let loaded_showmarks=1
    endif

    let g:showmarks_include="abcdefghijklmnopqrstuvwxyz"

    if has("autocmd")
        fun! <SID>FixShowmarksColours()
            if has('gui')
                hi ShowMarksHLl gui=bold guifg=#a0a0e0 guibg=#2e2e2e
                hi ShowMarksHLu gui=none guifg=#a0a0e0 guibg=#2e2e2e
                hi ShowMarksHLo gui=none guifg=#a0a0e0 guibg=#2e2e2e
                hi ShowMarksHLm gui=none guifg=#a0a0e0 guibg=#2e2e2e
                hi SignColumn   gui=none guifg=#f0f0f8 guibg=#2e2e2e
            endif
        endfun
        if v:version >= 700
            autocmd VimEnter,Syntax,ColorScheme * call <SID>FixShowmarksColours()
        else
            autocmd VimEnter,Syntax * call <SID>FixShowmarksColours()
        endif
    endif

    " Settings for explorer.vim
    let g:explHideFiles='^\.'

    " Settings for netrw
    let g:netrw_list_hide='^\.,\~$'

    " Settings for :TOhtml
    let html_number_lines=1
    let html_use_css=1
    let use_xhtml=1

    " cscope settings
    if has('cscope')
        " && filereadable("/usr/bin/cscope")
        set csto=0
        set cscopetag
        set nocsverb
        if filereadable("cscope.out")
            cs add cscope.out
        endif
        set csverb

        let x = "sgctefd"
        while x != ""
            let y = strpart(x, 0, 1) | let x = strpart(x, 1)
            exec "nmap <C-j>" . y . " :cscope find " . y .
                        \ " <C-R>=expand(\"\<cword\>\")<CR><CR>"
            exec "nmap <C-j><C-j>" . y . " :scscope find " . y .
                        \ " <C-R>=expand(\"\<cword\>\")<CR><CR>"
        endwhile
        nmap <C-j>i      :cscope find i ^<C-R>=expand("<cword>")<CR><CR>
        nmap <C-j><C-j>i :scscope find i ^<C-R>=expand("<cword>")<CR><CR>
    endif
endif



""""""""""""""""""""""""""""""""""""""""""""""""""""
"        其它不用的
""""""""""""""""""""""""""""""""""""""""""""""""""""
" turn off any existing search
if has("autocmd")
"     au VimEnter * nohls
endif

" set showfulltag            " Show full tags when doing search completion

" Speed up macros
" set lazyredraw

" Try to show at least three lines and two columns of context when
" scrolling
" set scrolloff=3
" set sidescrolloff=2

"-------------------------------------------------------------------------------
" Use of dictionaries
"         "-----------------------------------------------------------------------
"         " final commands
"         "-----------------------------------------------------------------------
"         " mio
"         let Tlist_Ctags_Cmd="/usr/bin/exuberant-ctags"
"         " plegado ident para python
"         au FileType python set foldmethod=indent
"         " plegado syntax para sgml,htmls,xml y xsl
"         au Filetype html,xml,xsl,sgml,docbook
"         " explorador vertical
"         let g:explVertical=1
"         " define leader como =
"         let mapleader = "="
"       
"         map <S-F2> :vsplit ~/.vim/ref_full.vim<CR>
"         map <F2> :11vsplit ~/.vim/ref.vim<CR>
"         map <F3> :Sexplore /home/bass/<CR>
"         map <S-F3> :2split ~/.vim/fun_ref.vim<CR>
"         map <F4> :set nu<CR>
"         map <S-F4> :set nu!<CR>
"         map <F5> ggVGg?
"         map <F6> :set encoding=utf-8<CR> | :set fenc=utf-8<CR>
"         map <S-F6> :set encoding=iso8859-15<CR> | :set fenc=iso8859-15<CR>
"         map <F7> :SpellProposeAlternatives<CR>
"         map <S-F7> :SpellCheck<CR>
"         map <C-F7> :let spell_language_list = "english,spanish"
"         nnoremap <silent> <F8> :Tlist<CR>
"         nnoremap <silent> <S-F8> :TlistSync<CR>
"         map <F11> !!date<CR>
"         map <F12> :TC<CR>
"         nmap  :X        :x
"         nmap  :W        :w
"         nmap          :q
"         noremap <Leader>rg :color relaxedgreen<CR>
"         noremap <Leader>ip :color inkpot<CR>
"       
"         " CVS
"         nmap <leader>cadd <lug>CVSAdd
"         nmap <leader>cci <lug>CVSCommit
"         nmap <leader>clog <lug>CVSLog
"         map <leader>cre <lug>CVSRevert
"         nmap <leader>cup <lug>CVSUpdate
"         nmap <leader>cdiff <lug>CVSDiff
"       
"         " Spell
"         let spell_executable = "aspell"
"         let spell_language_list = "spanish,english"
"       
"         " Comentiffy
"         let g:EnhCommentifyMultiPartBlocks = 'yes'
"         let g:EnhCommentifyAlignRight = 'yes'
"         " let g:EnhCommentifyRespectIndent = 'Yes'
"         let g:EnhCommentifyPretty = 'Yes'
"         " let g:EnhCommentifyUserBindings = 'yes'

"-----------------------------------------------------------------------
" vim: set shiftwidth=4 softtabstop=4 expandtab tw=72                  :


"
" dictionary : List of file names that are used to lookup words
"              for keyword completion commands
"   complete : search the files defined by the 'dictionary' option
"-------------------------------------------------------------------------------
"
"set complete+=k






"        "-----------------------------------------------------------------------
"        " autocmds
"        "-----------------------------------------------------------------------
"       
"        if has("eval")
"       
"            " If we're in a wide window, enable line numbers.
"            fun! <SID>WindowWidth()
"                if winwidth(0) > 90
"                    setlocal foldcolumn=1
"                    setlocal number
"                else
"                    setlocal nonumber
"                    setlocal foldcolumn=0
"                endif
"            endfun
"        endif
"       
"        " content creation
"        if has("autocmd")
"            augroup content
"                autocmd!
"       
"                autocmd BufNewFile *.rb 0put ='# vim: set sw=4 sts=4 et tw=80 :' |
"                            \ 0put ='#!/usr/bin/ruby' | set sw=4 sts=4 et tw=80 |
"                            \ norm G
"       
"                autocmd BufNewFile *.hh 0put ='/* vim: set sw=4 sts=4 et foldmethod=syntax : */' |
"                            \ 1put ='' | call MakeIncludeGuards() |
"                            \ 5put ='#include \"config.h\"' |
"                            \ set sw=4 sts=4 et tw=80 | norm G
"       
"                autocmd BufNewFile *.cc 0put ='/* vim: set sw=4 sts=4 et foldmethod=syntax : */' |
"                            \ 1put ='' | 2put ='' | call setline(3, '#include "' .
"                            \ substitute(expand("%:t"), ".cc$", ".hh", "") . '"') |
"                            \ set sw=4 sts=4 et tw=80 | norm G
"       
"                autocmd BufNewFile configure.ac
"                            \ 0put ='dnl vim: set sw=8 sts=8 noet :' |
"                            \ $put ='' |
"                            \ call setline(line('$'), 'AC_INIT([' . substitute(expand('%:p:h'),
"                            \     '^.\{-}/\([^/]\+\)\(/trunk\)\?$', '\1', '') . '], [0.0])') |
"                            \ $put ='AC_PREREQ(2.5)' |
"                            \ $put ='AC_CONFIG_SRCDIR([])' |
"                            \ $put ='AC_CONFIG_AUX_DIR(config)' |
"                            \ $put ='AM_INIT_AUTOMAKE(1.9)' |
"                            \ $put ='' |
"                            \ $put ='dnl check for required programs' |
"                            \ $put ='AC_PROG_CXX' |
"                            \ $put ='AC_PROG_INSTALL' |
"                            \ $put ='AC_PROG_LN_S' |
"                            \ $put ='AC_PROG_RANLIB' |
"                            \ $put ='AC_PROG_MAKE_SET' |
"                            \ $put ='' |
"                            \ $put ='dnl output' |
"                            \ $put ='AM_CONFIG_HEADER(config.h)' |
"                            \ $put ='AC_OUTPUT(' |
"                            \ $put ='   Makefile' |
"                            \ $put ='   src/Makefile' |
"                            \ $put ='   )' |
"                            \ set sw=8 sts=8 noet |
"                            \ norm ggjjjjf]
"       
"                autocmd BufNewFile autogen.bash
"                            \ 0put ='#!/usr/bin/env bash' |
"                            \ 1put ='# vim: set sw=4 sts=4 et tw=80 :' |
"                            \ $put ='run() {' |
"                            \ $put ='echo \">>> $@\"' |
"                            \ $put ='    if ! $@ ; then' |
"                            \ $put ='        echo \"oops!\" 1>&2' |
"                            \ $put ='        exit 127' |
"                            \ $put ='    fi' |
"                            \ $put ='}' |
"                            \ $put ='' |
"                            \ $put ='get() {' |
"                            \ $put ='    type ${1}-${2}    &>/dev/null && echo ${1}-${2}    && return' |
"                            \ $put ='    type ${1}${2//.}  &>/dev/null && echo ${1}${2//.}  && return' |
"                            \ $put ='    type ${1}         &>/dev/null && echo ${1}         && return' |
"                            \ $put ='    echo \"Could not find ${1} ${2}\" 1>&2' |
"                            \ $put ='    exit 127' |
"                            \ $put ='}' |
"                            \ $put ='' |
"                            \ $put ='run mkdir -p config' |
"                            \ $put ='run $(get libtoolize 1.5 ) --copy --force --automake' |
"                            \ $put ='rm -f config.cache' |
"                            \ $put ='run $(get aclocal 1.9 )' |
"                            \ $put ='run $(get autoheader 2.59 )' |
"                            \ $put ='run $(get autoconf 2.59 )' |
"                            \ $put ='run $(get automake 1.9 ) -a --copy' |
"                            \ set sw=4 sts=4 et tw=80 |
"                            \ norm gg=Ggg
"       
"                autocmd BufNewFile Makefile.am
"                            \ 0put ='CLEANFILES = *~' |
"                            \ if (! filereadable(expand("%:p:h:h") . '/Makefile.am')) |
"                            \     $put ='MAINTAINERCLEANFILES = Makefile.in configure config/* aclocal.m4 \' |
"                            \     $put ='' |
"                            \     call setline(line('$'), "\t\t\tconfig.h config.h.in") |
"                            \     $put ='AUTOMAKE_OPTIONS = foreign dist-bzip2' |
"                            \     $put ='EXTRA_DIST = autogen.bash' |
"                            \ else |
"                            \     $put ='MAINTAINERCLEANFILES = Makefile.in' |
"                            \ endif
"       
"            augroup END
"        endif
"       
"        "-----------------------------------------------------------------------
"        " mappings
"        "-----------------------------------------------------------------------
"       
"        nmap   <silent> <S-Right>  :bnext<CR>
"       
"        " v_K is really really annoying
"        vmap K k
"       
"        " Delete a buffer but keep layout
"        if has("eval")
"            command! Kwbd enew|bw #
"            nmap     <C-w>!   :Kwbd<CR>
"        endif
"       
"        " quickfix things
"        nmap <Leader>cwc :cclose<CR>
"        nmap <Leader>cwo :botright copen 5<CR><C-w>p
"        nmap <Leader>cn  :cnext<CR>
"       
"        " Annoying default mappings
"        inoremap <S-Up>   <C-o>gk
"        inoremap <S-Down> <C-o>gj
"        noremap  <S-Up>   gk
"        noremap  <S-Down> gj
"       
"        " Make <space> in normal mode go down a page rather than left a
"        " character
"        noremap <space> <C-f>
"       
"        " Useful things from inside imode
"        inoremap <C-z>w <C-o>:w<CR>
"        inoremap <C-z>q <C-o>gq}<C-o>k<C-o>$
"       
"        " Commonly used commands
"        "nmap <silent> <F3> :silent nohlsearch<CR>
"        "imap <silent> <F3> <C-o>:silent nohlsearch<CR>
"        "nmap <F4> :Kwbd<CR>
"        "nmap <F5> <C-w>c
"        "nmap <F7> :make check<CR>
"        "nmap <F8> :make<CR>
"        "nmap <F10> :!svn update<CR>
"        "nmap <F11> :!svn status \| grep -v '^?' \| sort -k2<CR>
"       
"        " Insert a single char
"        noremap <Leader>i i<Space><Esc>r
"       
"        " Split the line
"        nmap <Leader>n \i<CR>
"       
"        " Pull the following line to the cursor position
"        noremap <Leader>J :s/\%#\(.*\)\n\(.*\)/\2\1<CR>
"       
"        " In normal mode, jj escapes
"        inoremap jj <Esc>
"       
"        " Kill line
"        noremap <C-k> "_dd
"       
"        " Select everything
"        noremap <Leader>gg ggVG
"       
"        " Reformat everything
"        noremap <Leader>gq gggqG
"       
"        " Reformat paragraph
"        noremap <Leader>gp gqap
"       
"        " Clear lines
"        noremap <Leader>clr :s/^.*$//<CR>:nohls<CR>
"       
"        " Delete blank lines
"        noremap <Leader>dbl :g/^$/d<CR>:nohls<CR>
"       
"        " Enclose each selected line with markers
"        noremap <Leader>enc :<C-w>execute
"                    \ substitute(":'<,'>s/^.*/#&#/ \| :nohls", "#", input(">"), "g")<CR>
"       
"        " Enable fancy % matching
"        if has("eval")
"            runtime! macros/matchit.vim
"        endif
"        "       
"        "         " q: sucks
"        "         nmap q: :q
"        "       
"        "         " set up some more useful digraphs
"        "         if has("digraphs")
"        "             digraph ., 8230    " ellipsis (…)
"        "         endif
"       
"        if has("eval")
"            " GNU format changelog entry
"            fun! MakeChangeLogEntry()
"                norm gg
"                /^\d
"                norm 2O
"                norm k
"                call setline(line("."), strftime("%Y-%m-%d") .
"                            \ " J. Alberto Suárez López <bass@gentoo.org>")
"                norm 2o
"                call setline(line("."), "\t* ")
"                norm $
"            endfun
"            noremap <Leader>cl :call MakeChangeLogEntry()<CR>
"       
"            " command aliases, can't call these until after cmdalias.vim is loaded
"            au VimEnter * if exists("loaded_cmdalias") |
"                        \       call CmdAlias("mkdir",   "!mkdir") |
"                        \       call CmdAlias("cvs",     "!cvs") |
"                        \       call CmdAlias("svn",     "!svn") |
"                        \       call CmdAlias("commit",  "!svn commit -m \"") |
"                        \       call CmdAlias("upload",  "make upload") |
"                        \ endif
"        endif
"       
"        " super i_c-y / i_c-e
"        if v:version >= 700 && has("eval")
"            fun! SuperYank(offset)
"                let l:cursor_pos = col(".")
"                let l:this_line = line(".")
"                let l:source_line = l:this_line + affset
"                let l:this_line_text = getline(l:this_line)
"                let l:source_line_text = getline(l:source_line)
"                let l:add_text = ""
"       
"                let l:motion = "" . nr2char(getchar())
"                if -1 != match(l:motion, '\d')
"                    let l:count = 0
"                    while -1 != match(l:motion, '\d')
"                        let l:count = l:count * 10 + l:motion
"                        let l:motion = "" . nr2char(getchar())
"                    endwhile
"                else
"                    let l:count = 1
"                endif
"       
"                if l:motion == "$"
"                    let l:add_text = strpart(l:source_line_text, l:cursor_pos - 1)
"                elseif l:motion == "w"
"                    let l:add_text = strpart(l:source_line_text, l:cursor_pos - 1)
"                    let l:add_text = substitute(l:add_text,
"                                \ '^\(\s*\%(\S\+\s*\)\{,' . l:count . '}\)\?.*', '\1', '')
"                elseif l:motion == "f" || l:motion == "t"
"                    let l:add_text = strpart(l:source_line_text, l:cursor_pos - 1)
"                    let l:char = nr2char(getchar())
"                    let l:pos = matchend(l:add_text,
"                                \ '^\%([^' . l:char . ']\{-}' . l:char . '\)\{' . l:count . '}')
"                    if -1 != l:pos
"                        let l:add_text = strpart(l:add_text, 0, l:motion == "f" ? l:pos : l:pos - 1)
"                    else
"                        let l:add_text = ''
"                    endif
"                else
"                    echo "Unknown motion: " . l:motion
"                endif
"       
"                if l:add_text != ""
"                    let l:new_text = strpart(l:this_line_text, 0, l:cursor_pos - 1) .
"                                \ l:add_text . strpart(l:this_line_text, l:cursor_pos - 1)
"                    call setline(l:this_line, l:new_text)
"                    call cursor(l:this_line, l:cursor_pos + strlen(l:add_text))
"                endif
"            endfun
"       
"            inoremap <C-g>y <C-\><C-o>:call SuperYank(-1)<CR>
"            inoremap <C-g>e <C-\><C-o>:call SuperYank(1)<CR>
"        endif
"       
"        "         " tab completion
"        "         if has("eval")
"        "             function! CleverTab()
"        "                 if strpart(getline('.'), 0, col('.') - 1) =~ '^\s*$'
"        "                     return "\<Tab>"
"        "                 else
"        "                     return "\<C-N>"
"        "                 endif
"        "             endfun
"        "             inoremap <Tab> <C-R>=CleverTab()<CR>
"        "             inoremap <S-Tab> <C-P>
"        "         endif
"       
"        "         "-----------------------------------------------------------------------
"        "         " abbreviations
"        "         "-----------------------------------------------------------------------
"        "       
"        "         if has("eval") && has("autocmd")
"        "             fun! <SID>abbrev_cpp()
"        "                 iabbrev <buffer> raise throw
"        "                 iabbrev <buffer> jci const_iterator
"        "                 iabbrev <buffer> jcl class
"        "                 iabbrev <buffer> jco const
"        "                 iabbrev <buffer> jdb \bug
"        "                 iabbrev <buffer> jde \throws
"        "                 iabbrev <buffer> jdf /** \file<CR><CR>/<Up>
"        "                 iabbrev <buffer> jdg \ingroup
"        "                 iabbrev <buffer> jdn /** \namespace<CR><CR>/<Up>
"        "                 iabbrev <buffer> jdp \param
"        "                 iabbrev <buffer> jdt \test
"        "                 iabbrev <buffer> jdx /**<CR><CR>/<Up>
"        "                 iabbrev <buffer> jit iterator
"        "                 iabbrev <buffer> jns namespace
"        "                 iabbrev <buffer> jpr protected
"        "                 iabbrev <buffer> jpu public
"        "                 iabbrev <buffer> jpv private
"        "                 iabbrev <buffer> jsl std::list
"        "                 iabbrev <buffer> jsm std::map
"        "                 iabbrev <buffer> jss std::string
"        "                 iabbrev <buffer> jsv std::vector
"        "                 iabbrev <buffer> jty typedef
"        "                 iabbrev <buffer> jun using namespace
"        "                 iabbrev <buffer> jvi virtual
"        "             endfun
"        "       
"        "             augroup abbreviations
"        "                 autocmd!
"        "                 autocmd FileType cpp :call <SID>abbrev_cpp()
"        "             augroup END
"        "         endif
"       
"        "-----------------------------------------------------------------------
"        " special less.sh and man modes
"        "-----------------------------------------------------------------------
"       
"        if has("eval") && has("autocmd")
"            fun! <SID>check_pager_mode()
"                if exists("g:loaded_less") && g:loaded_less
"                    " we're in vimpager / less.sh / man mode
"                    set laststatus=0
"                    set ruler
"                    set foldmethod=manual
"                    set foldlevel=99
"                    set nolist
"                endif
"            endfun
"            autocmd VimEnter * :call <SID>check_pager_mode()
"        endif
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-27 16:54:59 | 显示全部楼层
vim插件:
    DoxygenToolkit.vim      ox会自动产生函数注释
    c.vim                   :c文件注释
    DrawItPlugin.vim        :用文本画图
    winmanager.vim          :文件管理器
    bufexplorer.vim         :打开的文件查看器
    a.vim                   :在cpp/h文件中进行快速切换
    matchit.vim             :超级匹配,如html标志匹配
    taglist.vim             :c函数列表
回复 支持 反对

使用道具 举报

发表于 2008-5-27 20:07:22 | 显示全部楼层
感谢分享,楼主辛苦了。
回复 支持 反对

使用道具 举报

发表于 2008-6-13 13:57:59 | 显示全部楼层
真的很详细,感谢楼主
回复 支持 反对

使用道具 举报

发表于 2008-6-13 15:19:15 | 显示全部楼层
赞一 个   收藏
回复 支持 反对

使用道具 举报

发表于 2008-6-13 17:52:08 | 显示全部楼层
楼主可以将/boot单独分区,然后安装Grub就没问题。
回复 支持 反对

使用道具 举报

发表于 2008-6-14 19:31:30 | 显示全部楼层
帅就一个字!!
回复 支持 反对

使用道具 举报

发表于 2008-6-16 14:04:25 | 显示全部楼层
Reiser被判杀妻,ReiserFS前途未卜。
回复 支持 反对

使用道具 举报

发表于 2008-6-26 12:55:33 | 显示全部楼层
cdebootstrap -f minimal sid /mnt/tmp http://debian.cn99.com/debian
这步过不去,是怎么回事呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表