MyBatis综合练习实战:从Mapper映射到动态SQL的完整指南
2026/10/24 3:09:08
PS1='\[\e[32m\]\u\[\e[33m\]@\[\e[34m\]\h\[\e[35m\]:\w\[\e[0m\] \$ 'setnocompatible" 关闭 vi 兼容模式 syntax on "自动语法高亮set number" 显示行号 set ruler "打开状态栏标尺setnusetshiftwidth=2" 设定 << 和 >> 命令移动时的宽度为 4 set softtabstop=2 "使得按退格键时可以一次删掉4个空格settabstop=2" 设定 tab 长度为 4 set expandtab "拓展tab为空格"set backup "覆盖文件时不备份setpastesetbackupext=.bak"set autochdir "自动切换当前目录为当前文件所在的目录 filetype plugin indent on" 开启插件 "setbackupcopy=yes" 设置备份时的行为为覆盖 "setignorecase smartcase" 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感 "setnowrapscan" 禁止在搜索到文件两端时重新搜索 set incsearch "输入搜索内容时就显示搜索结果sethlsearch" 搜索时高亮显示被找到的文本 "setnoerrorbells" 关闭错误信息响铃 "setnovisualbell" 关闭使用可视响铃代替呼叫 "sett_vb=" 置空错误铃声的终端代码 set showmatch "插入括号时,短暂地跳转到匹配的对应括号" set matchtime=2 "短暂跳转到匹配括号的时间setmagic" 设置魔术 "sethidden" 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存 "setguioptions-=T" 隐藏工具栏 "setguioptions-=m" 隐藏菜单栏 set smartindent "开启新行时使用智能自动缩进setbackspace=indent,eol,start" 不设定在插入状态无法用退格键和 Delete 键删除回车符 set cmdheight=1 "设定命令行的行数为1setlaststatus=2" 显示状态栏 (默认值为 1, 无法显示状态栏) set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ "设置在状态行显示的信息"set foldenable "开始折叠"set foldmethod=syntax "设置语法折叠"set foldcolumn=0 "设置折叠区域的宽度"setlocal foldlevel=1 "设置折叠层数为"set foldclose=all "设置为自动关闭折叠"nnoremap <space> @=((foldclosed(line('.'))< 0) ? 'zc' : 'zo')<CR> "用空格键来开关折叠" return OS type, eg: windows, or linux, mac, et.st.. function! MySys() if has("win16") || has("win32") || has("win64") || has("win95") return "windows" elseif has("unix") return "linux" endif endfunction "用户目录变量$VIMFILESifMySys()=="windows"let$VIMFILES=$VIM.'/vimfiles'elseif MySys()=="linux"let$VIMFILES=$HOME.'/.vim'endif" 设定doc文档目录 let helptags=$VIMFILES.'/doc' "设置字体 以及中文支持ifhas("win32")setguifont=Inconsolata:h12:cANSI endif" 配置多语言环境 if has("multi_byte") "UTF-8 编码setencoding=utf-8settermencoding=utf-8setformatoptions+=mMsetfencs=utf-8,gbkifv:lang=~?'^\(zh\)\|\(ja\)\|\(ko\)'setambiwidth=double endififhas("win32")source$VIMRUNTIME/delmenu.vimsource$VIMRUNTIME/menu.vim language messages zh_CN.utf-8 endifelseechoerr"Sorry, this version of (g)vim was not compiled with +multi_byte"endif" Buffers操作快捷方式! nnoremap <C-RETURN> :bnext<CR> nnoremap <C-S-RETURN> :bprevious<CR> "Tab操作快捷方式!nnoremap<C-TAB>:tabnext<CR>nnoremap<C-S-TAB>:tabprev<CR>"关于tab的快捷键 "map tn :tabnext<cr>" map tp :tabprevious<cr> "map td :tabnew .<cr>" map te :tabedit "map tc :tabclose<cr>"窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动 "光标到上方窗口,需要<c-w><c-w>k,非常麻烦,现在重映射为<c-k>,切换的"时候会变得非常方便. nnoremap <C-h> <C-w>h nnoremap <C-j> <C-w>j nnoremap <C-k> <C-w>k nnoremap <C-l> <C-w>l "一些不错的映射转换语法(如果在一个文件中混合了不同语言时有用) nnoremap<leader>1:setfiletype=xhtml<CR>nnoremap<leader>2:setfiletype=css<CR>nnoremap<leader>3:setfiletype=javascript<CR>nnoremap<leader>4:setfiletype=php<CR>setff=unix" set fileformats=unix,dos,mac "nmap<leader>fd :sefileformat=dos<CR>" nmap <leader>fu :se fileformat=unix<CR> "use Ctrl+[l|n|p|cc]to list|next|previous|jump to count the result" map <C-x>l <ESC>:cl<CR> "map<C-x>n<ESC>:cn<CR>" map <C-x>p <ESC>:cp<CR> "map<C-x>c<ESC>:cc<CR>" 让 Tohtml 产生有 CSS 语法的 html "syntax/2html.vim,可以用:runtime!syntax/2html.vimlethtml_use_css=1" Python 文件的一般设置,比如不要 tab 等 autocmd FileType python set tabstop=4 shiftwidth=4 expandtab autocmd FileType python map <F12> :!python %<CR> "选中状态下 Ctrl+c 复制 vmap<C-c>"+y "打开javascript折叠letb:javascript_fold=1" 打开javascript对dom、html和css的支持 let javascript_enable_domhtmlcss=1 "设置字典 ~/.vim/dict/文件的路径"----------------------------------------------------------------- "plugin - bufexplorer.vim Buffers切换"\be 全屏方式查看全部打开的文件列表 "\bv 左右方式查看\bs 上下方式查看"----------------------------------------------------------------- "-----------------------------------------------------------------" plugin - taglist.vim 查看函数列表,需要ctags程序 "F4 打开隐藏taglist窗口"----------------------------------------------------------------- if MySys() == "windows" "设定windows系统中ctags程序的位置letTlist_Ctags_Cmd='"'.$VIMRUNTIME.'/ctags.exe"'elseif MySys()=="linux"" 设定windows系统中ctags程序的位置 let Tlist_Ctags_Cmd = '/usr/bin/ctags' endif nnoremap <silent><F4> :TlistToggle<CR> let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的letTlist_Exit_OnlyWindow=1" 如果taglist窗口是最后一个窗口,则退出vim let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口letTlist_File_Fold_Auto_Close=1" 自动折叠当前非编辑文件的方法列表 let Tlist_Auto_Open = 0 let Tlist_Auto_Update = 1 let Tlist_Hightlight_Tag_On_BufEnter = 1 let Tlist_Enable_Fold_Column = 0 let Tlist_Process_File_Always = 1 let Tlist_Display_Prototype = 0 let Tlist_Compact_Format = 1 "-----------------------------------------------------------------" plugin - mark.vim 给各种tags标记不同的颜色,便于观看调式的插件。 "\m mark or unmark the word under(or before)the cursor"\rmanually input a regular expression. 用于搜索. "\nclearthis mark(i.e. the mark under the cursor), orclearall highlighted marks." \* 当前MarkWord的下一个 \# 当前MarkWord的上一个 "\/ 所有MarkWords的下一个\? 所有MarkWords的上一个"----------------------------------------------------------------- "-----------------------------------------------------------------" plugin - NERD_tree.vim 以树状方式浏览系统中的文件和目录 ":ERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree" o 打开关闭文件或者目录 t 在标签页中打开 "T 在后台标签页中打开!执行此文件" p 到上层目录 P 到根目录 "K 到第一个节点 J 到最后一个节点" u 打开上层目录 m 显示文件系统菜单(添加、删除、移动操作) "r 递归刷新当前目录 R 递归刷新当前根目录"----------------------------------------------------------------- "F3 NERDTree 切换 map<F3>:NERDTreeToggle<CR>imap<F3><ESC>:NERDTreeToggle<CR>:setpastetoggle=<F11>"鼠标模式 "map<F7>:setmouse=a<CR>"map <F8> :set mouse=<CR> "是否可见字符 map<F8>:set invlist<CR>"----------------------------------------------------------------- "plugin - NERD_commenter.vim 注释代码用的," [count],cc 光标以下count行逐行添加注释(7,cc) "[count],cu 光标以下count行逐行取消注释(7,cu)" [count],cm 光标以下count行尝试添加块注释(7,cm) ",cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。" 注:count参数可选,无则默认为选中行或当前行 "-----------------------------------------------------------------letNERDSpaceDelims=1" 让注释符与语句之间留一个空格 let NERDCompactSexyComs=1 "多行注释时样子更好看 map<F10>:set backup<CR>"----------------------------------------------------------------- "plugin - DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释"----------------------------------------------------------------- let g:DoxygenToolkit_commentType="C" "letg:DoxygenToolkit_authorName="k00437161"letg:DoxygenToolkit_licenseTag="Copyright(C), 2017 - 2017, Huawei Tech. Co., Ltd. ALL RIGHTS RESERVED."lets:licenseTag="@ingroup manager\<enter>"letg:DoxygenToolkit_briefTag_pre=s:licenseTag."* @brief "letg:DoxygenToolkit_paramTag_pre="@param [in]"letg:DoxygenToolkit_returnTag="@return Status""let g:DoxygenToolkit_authorTag="@author" let g:DoxygenToolkit_versionString="1.0" let g:DoxygenToolkit_briefTag_funcName="yes" let g:doxygen_enhanced_color = 1 "map<F10>:DoxAuthor<CR>map<leader>dh :DoxAuthor<CR>map<leader>df :Dox<CR>map<leader>db :DoxBlock<CR>map<leader>dc a /* */<LEFT><LEFT><LEFT>nmap<F6>:Dox<CR>map<F7>:DoxAuthor<CR>map<F2>:Ack<space>letg:ackprg='ag --nogroup --nocolor --column'"----------------------------------------------------------------- "plugin – ZenCoding.vim 很酷的插件,HTML代码生成" 插件最新版:http://github.com/mattn/zencoding-vim "常用命令可看:http://nootn.com/blog/Tool/23/"----------------------------------------------------------------- "-----------------------------------------------------------------" plugin – checksyntax.vim JavaScript常见语法错误检查 "默认快捷方式为 F5"----------------------------------------------------------------- let g:checksyntax_auto = 0 "不自动检查"----------------------------------------------------------------- "plugin - NeoComplCache.vim 自动补全插件"----------------------------------------------------------------- let g:AutoComplPop_NotEnableAtStartup = 1 let g:NeoComplCache_EnableAtStartup = 1 let g:NeoComplCache_SmartCase = 1 let g:NeoComplCache_TagsAutoUpdate = 1 let g:NeoComplCache_EnableInfo = 1 let g:NeoComplCache_EnableCamelCaseCompletion = 1 let g:NeoComplCache_MinSyntaxLength = 3 let g:NeoComplCache_EnableSkipCompletion = 1 let g:NeoComplCache_SkipInputTime = '0.5' let g:NeoComplCache_SnippetsDir =$VIMFILES.'/snippets' "<TAB>completion. inoremap<expr><TAB>pumvisible()?"\<C-n>":"\<TAB>"" snippets expand key imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "cscope setting"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ifhas("cscope")setcsprg=/usr/bin/cscopesetcsto=1setcstsetnocsverb" 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> autocmd BufReadPost * \ if line("'\"")>0&&line("'\"")<=line("$") | \ exe "normal g'\""|\endi