VIM編輯器進階配置

vim自定義設置

       能夠選擇須要的功能添加至 ~/.vimrc 打開註釋使之生效。java

" 讓 vim 關閉全部擴展的功能,儘可能模擬 vi 的行爲。
set nocompatible
" 默認是8色的,開啓256色支持
set t_Co=256
" 突出顯示當前行,即橫線
set cursorline
" 隱藏工具欄
set guioptions-=T
" 隱藏菜單欄
set guioptions-=m
" 設置在狀態行顯示的信息
set foldcolumn=0
" 不要使用vi的鍵盤模式,而是vim本身的
set nocompatible
" 語法高亮
set syntax=on
" 去掉輸入錯誤的提示聲音
set noeb
" Tab鍵的寬度
set tabstop=4
" 統一縮進爲4
set softtabstop=4
" 歷史記錄數
set history=1000
" 禁止生成臨時文件
set nobackup
" 禁止生成臨時文件
set noswapfile
" 搜索忽略大小寫
set ignorecase
" 搜索逐字符高亮
set hlsearch
" 輸入搜索內容時就顯示搜索結果
set incsearch
" 高亮顯示匹配的括號
set showmatch
" 匹配括號高亮的時間(單位是十分之一秒)
set matchtime=1
" 光標移動到buffer的頂部和底部時保持3行距離
set scrolloff=3
" 輸入的命令顯示出來,看的清楚些
set showcmd
" 打開狀態欄標尺
set ruler
" filetype on
" 開始摺疊
" set foldenable
" 顯示行號
" set number
" 經過使用: commands命令,告訴咱們文件的哪一行被改變過
" set report=0
" 設置魔術
" set magic
" 設置當文件被改動時自動載入
" set autoread
" 代碼補全
" set completeopt=preview,menu
" 容許插件
" filetype plugin on
" 共享剪貼板
" set clipboard=unnamed 
" 從不備份
" set nobackup
" make 運行
" set makeprg=g++\ -Wall\ \ %
" 自動保存
" set autowrite                 
" set foldmethod=indent
" set foldlevel=3
" 在處理未保存或只讀文件的時候,彈出確認
" set confirm
" 自動縮進
" set autoindent                
" set cindent
" 把tabs轉換成空格
" set shiftwidth=4
" 不要用空格代替製表符
" set noexpandtab
" 在行和段開始處使用製表符
" set smarttab
" 行內替換
" set gdefault
" 爲C程序提供自動縮進
" set smartindent
" 能夠在buffer的任何地方使用鼠標(相似office中在工做區雙擊鼠標定位,鼠標選擇)              
" set mouse=a                   
" 爲了使代碼風格儘可能保持一致,通常不容許在代碼使用TAB符,而以4個空格代之。以下只在編輯c和cpp文件時實行這種設置了
" autocmd FileType c,cpp set shiftwidth=4 | set expandtab
" 在被分割的窗口間顯示空白,便於閱讀
" set fillchars=vert:\ ,stl:\ ,stlnc:\
" 容許backspace和光標鍵跨越行邊界,方向鍵自動換行
" set whichwrap+=<,>,h,l
" 個人狀態行顯示的內容(包括文件類型和解碼)
" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
" set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
" 老是顯示狀態行
" set laststatus=2
" 命令行(在狀態行下)的高度,默認爲1,這裏是2
" set cmdheight=2
" 狀態欄定義
" set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\


" 映射全選+複製 ctrl+a
map <C-A> ggVGY
" 選中狀態下 Ctrl+c 複製
vmap <C-c> "+y

"新建.c,.h,.sh,.java文件,自動插入文件頭
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
func SetTitle()
    if &filetype == 'sh'
        call setline(1, "#!/bin/bash")
        call append(line("."), "# File Name: ".expand("%"))
        call append(line(".")+1, "# Intro: *****")
        call append(line(".")+2, "# mail: *****@163.com")
        call append(line(".")+3, "# Created Time: ".strftime("%c"))
        call append(line(".")+4, "#-------------------------------")
        call append(line(".")+5, "")
    else
        call setline(1, "/*************************************************************************")
        call append(line("."), "    > File Name: ".expand("%"))
        call append(line(".")+1, "  > Intro: *****")
        call append(line(".")+2, "  > Mail: *****@163.com")
        call append(line(".")+3, "  > Created Time: ".strftime("%c"))
        call append(line(".")+4, " ************************************************************************/")
        call append(line(".")+5, "")
    endif
    if &filetype == 'cpp'
        call append(line(".")+6, "#include<iostream>")
        call append(line(".")+7, "using namespace std;")
        call append(line(".")+8, "")
    endif
    if &filetype == 'c'
        call append(line(".")+6, "#include<stdio.h>")
        call append(line(".")+7, "")
    endif
endfunc
" 新建文件後,自動定位到文件末尾
autocmd BufNewFile * normal G
相關文章
相關標籤/搜索