my vimrc.

Posted on Tue, 15 Mar 2011 00:26:02 -1100
"       SUNUS'S VIMRC
"       last modified   :       15, Mar, 2011
"       update log:
"       added 'F4'      comment / 'F5'Un-comment feature
"       added 'F2'      Flod    / 'F3'Un-Flod feature
"       added '\h'      show a decimal value's hex value
"       added '\\h'     replace a decimal value with it's hex value     15, Mar, 2011
" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
" you can find below.  If you wish to change any of those settings, you should
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
" everytime an upgrade of the vim packages is performed.  It is recommended to
" make changes after sourcing debian.vim since it alters the value of the
" 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim

" 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 compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the
" following enables syntax highlighting by default.
if has("syntax")
syntax on
endif
set cindent
set ts=4 sts=8 sw=8 expandtab
set ruler
set number
colorscheme delek
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" 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
"endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("autocmd")
"  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 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 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)

" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
if has("cscope")
set csprg=/usr/bin/cscope
set csto=1
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
endif

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>

map <C-w>h :vertical resize +3<CR><CR>
map <C-w>j :vertical resize -3<CR><CR>
map <C-w>k :resize +3<CR><CR>
map <C-w>l :resize -3<CR><CR>
map <F2> <ESC>zf%
map <F3> <ESC>zo
imap <F2> <ESC><F2>o
imap <F3> <ESC><F2>o
" comment feature , we assume that the codes are alreadly FORMATED (ggvG==)
" comment this line and keep incident
map <F4> 0i//*<ESC>gj0
imap <F4> <ESC><F4>
" Un-comment this line and keep incident
map <F5> 0d3l==gj0
imap <F5> <ESC><F5>
"characters encoding

" show a decimal number's hex value by '\h'
nmap \h :echo printf('%x', <C-R><C-W>)<CR>
" replace a decimal with it's hex value by '\\h'
nmap \\h :s/<C-R><C-W>/\=printf('0x%08x', <C-R><C-W>)<CR>
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

 

get down to OS!

Posted on Tue, 19 Oct 2010 11:56:05 -1100

嗯,把每天看过的源码记录下来。希望最终能有个好结果 不要漫无目的的看下去..

今天看了有minix系统的mini_send,mini_receive,mini_notify

感觉系统对标志位的操作(bit operation) 实在很厉害..配合宏定义和magic numbers;

dst_ptr->p_rts_flags & (RECEIVING | SENDING)) == RECEIVING

注意这这种使用方法..

以及十分严格的检测机制(死锁)等.

不仅十分节约空间 且十分明了.

 

Read more

想知道这段代码在内存上还可以优化不..

Posted on Wed, 11 Aug 2010 03:05:39 -1100
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{
    short t;
    short count;
    short upps,lows,cp;
    char buff[102] = {0};
    char *p = buff;
    scanf("%hd%hd",&t,&t);
    while(t--)
        {
        count = upps = lows = cp = 0;
        p = buff;
        gets(buff);
        while(*p != '\0')
            {
            if(islower(*p))
                {
                for(upps = 0 ; islower(*p) ; p++, count++, lows++) ;

                if(cp)
                    {
                    if(lows >= 2 || (lows == 1 && *p == '\0'))
                        {
                        cp = !cp;  /* TURN OFF */
                        count++;
                        }
                    else
                        count += lows;/* Wether it's SHIFT or CP */
                    }
                }
            else if(isupper(*p))
                {
                for(lows = 0 ; isupper(*p) ; p++, count++, upps++) ;
                
                if(!cp)
                    {
                    if(upps > 2 || (upps == 2 && isupper(*(p+1))))
                        {
                        cp = !cp; /*TURN ON*/
                        count ++;
                        }
                    else
                        count += upps;
                    }
                }
            }
        if(cp)
            count++;
        printf("%d\n",count);
        }
    return 0;
}

 

看变量使用的内存其实并不多,可是为什么用了一百七十多K的内存 其他内存用在那个方面了?

acm.hdu.edu.cn/showproblem.php