某山寨

z4zr的待调教小窝

vim配置文件备份

Tag:Linux vim bash

vim配置文件备份

饿。。。 有时候不小心把home割了。。。。果断备份一份.vimrc。。。。


```cpp
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.php exec ":call SetTitle()"
"定义函数SetTitle,自动插入文件头
func SetTitle()
"如果文件类型为.sh文件
if &filetype == 'sh'
call setline(1,"\#########################################################################")
call append(line("."), "\# File Name: ".expand("%"))
call append(line(".")+1, "\# Author: z4zr")
call append(line(".")+2, "\# blog: http://www.z4zr.com")
call append(line(".")+3, "\# Created Time: ".strftime("%c"))
call append(line(".")+4, "\#########################################################################")
call append(line(".")+5, "\#!/bin/bash")
call append(line(".")+6, "")
else
call setline(1, "/*************************************************************************")
call append(line("."), " > File Name: ".expand("%"))
call append(line(".")+1, " > Author: z4zr")
call append(line(".")+2, " > blog: http://www.z4zr.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")
call append(line(".")+7, "#include")
call append(line(".")+8, "#include")
call append(line(".")+9, "#include")
call append(line(".")+10, "#include")
call append(line(".")+11, "using namespace std;")
call append(line(".")+12, "")
call append(line(".")+13, "int main(int argc, char* argv[]){")
call append(line(".")+14, " ")
call append(line(".")+15, " return 0;")
: call append(line(".")+16, "}")
endif

if &filetype == 'c'
call append(line(".")+6, "#include")
call append(line(".")+7, "#include")
call append(line(".")+8, "#include")
call append(line(".")+9, "")
call append(line(".")+10, "int main(int argc, char* argv[]){")
call append(line(".")+11, " ")
call append(line(".")+12, " return 0;")
call append(line(".")+13, "}")
endif
if &filetype == 'php'
call append(0, " call append(line("$"), "?>")
endif

"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G

endfunc

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap w :w!
nmap f :find

" 映射全选+复制 ctrl+a
map ggVGY
map! ggVGY
map gg=G

" 选中状态下 Ctrl+c 复制
vmap "+y

"去空行
nnoremap :g/^\s*$/d

"比较文件
nnoremap :vert diffsplit

"新建标签
map :tabnew

"列出当前目录文件
map :tabnew .

"打开树状文件目录
map \be

"C,C++ 按F5编译运行
map :call CompileRunGcc()

func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "! ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "! ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
elseif &filetype == 'sh'
:!./%
elseif &filetype == 'php'
exec "!php %"
endif
endfunc

"C,C++的调试
map :call Rungdb()
func! Rungdb()
exec "w"
if &filetype == 'c'
exec "!g++ % -g -o %<"
exec "!gdb ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!jdb %<"
elseif &filetype == 'php'
exec "!php %"
elseif &filetype == 'sh'
exec "!bash -x %"
endif
endfunc

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"实用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set shortmess=atI "启动的时候不显示那个援助乌干达儿童的提示
"winpos 5 5 "设定窗口位置
"set lines=40 columns=155 "设定窗口大小
set number "显示行号
set syntax=on "语法高亮
set ruler "打开状态栏标尺
set showcmd "输入的命令显示出来,看的清楚些
set novisualbell "不要闪烁(不明白)
"set background=dark "背景使用黑色
"colorscheme murphy "设置配色方案
"colo torte
"colo desert


if version >= 603
set helplang=cn
set encoding=utf-8
endif
set guifont=Courier_New:h10:cANSI "设置字体
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8

set autoread "设置当文件被改动时自动载入
autocmd FileType c,cpp map :w:make "quickfix模式
set completeopt=preview,menu "代码补全
filetype plugin on "允许插件
set clipboard+=unnamed "共享剪贴板
set nobackup "从不备份
set makeprg=g++\ -Wall\ \ % "make 运行
"set autowrite "自动保存
set cursorline " 突出显示当前行
set magic " 设置魔术
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏

set foldmethod=indent "手动折叠->manual
"允许折叠
set foldenable
set foldcolumn=2
set foldlevel=3

set nocompatible " 不要使用vi的键盘模式,而是vim自己的
set noeb "去掉输入错误的提示声音
set confirm "在处理未保存或只读文件的时候,弹出确认

set autoindent "自动缩进
set cindent
set smartindent "为C程序提供自动缩进
set incsearch
set tabstop=4 "Tab键的宽度
set softtabstop=4 "统一缩进为4
set shiftwidth=4
set noexpandtab "不要用空格代替制表符
set smarttab "在行和段开始处使用制表符
set history=1000 "历史记录数
"set nobackup "禁止生成临时文件
"set noswapfile
set ignorecase "搜索忽略大小写
set hlsearch "搜索逐字符高亮
set gdefault "行内替换
set enc=utf-8 "编码设置
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set langmenu=zh_CN.UTF-8 "语言设置
set helplang=cn

"我的状态行显示的内容(包括文件类型和解码)
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 statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\

set laststatus=2 "总是显示状态行
set cmdheight=2 "命令行(在状态行下)的高度,默认为1,这里是2
filetype on "侦测文件类型
filetype plugin on "载入文件类型插件
filetype indent on "为特定文件类型载入相关缩进文件
set viminfo+=! "保存全局变量
set iskeyword+=_,$,@,%,#,- "带有如下符号的单词不要被换行分割
set linespace=0 "字符间插入的像素行数目
set wildmenu "增强模式中的命令行自动完成操作
set backspace=2 "使回格键(backspace)正常处理indent, eol, start等
set whichwrap+=<,>,h,l "允许backspace和光标键跨越行边界

" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key

set report=0 "通过使用: commands命令,告诉我们文件的哪一行被改变过
set fillchars=vert:\ ,stl:\ ,stlnc:\ "在被分割的窗口间显示空白,便于阅读
set showmatch "高亮显示匹配的括号
set matchtime=1 "匹配括号高亮的时间(单位是十分之一秒)
set scrolloff=3 "光标移动到buffer的顶部和底部时保持3行距离


" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile * setfiletype txt

"自动补全
:inoremap ( ()i
:inoremap ) =ClosePair(')')
:inoremap { {}O
:inoremap } =ClosePair('}')
:inoremap [ []i
:inoremap ] =ClosePair(']')
:inoremap " ""i
:inoremap ' ''i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\"
else
return a:char
endif
endfunction

filetype plugin indent on
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu

" 鼠标跳到上次关闭时,编辑的位置
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif

```

附带萌萌的PS1
```cpp
#define color
GREEN="\[\e[32;1m\]"
WHITE="\[\e[37;1m\]"
BLACK="\[\e[30;1m\]"
RED="\[\e[31;1m\]"
YELLOW="\[\e[33;1m\]"
BLUE="\[\e[34;1m\]"
PURPLE="\[\e[35;1m\]"
DARK_GREEN="\[\e[36;1m\]"
CLEAR="\[\e[0m\]"
PS1="$YELLOW[$RED\u$YELLOW $DARK_GREEN( • ̀ω•́ )✧ $YELLOW:$GREEN\w$YELLOW]\\$ $CLEAR"
```


Warning: file_get_contents(http://api.hitokoto.us/rand): failed to open stream: Connection timed out in /data/htdocs/z4zr.host.smartgslb.com/usr/themes/Wcat/functions.php on line 87

文章二维码