提高效率:善用工具、刻意练习。

preface:

  • 偶然想用vim的插件,搜了下打算安装jedi,后面不可收拾,发现插件贼香,便删了sublime,一切代码都从vim,真正觉悟vim的强大。
  • vim插件太多,常用即可。知晓相关配置即可

前置环境:

  • mac、python
  • vim:
    • 用系统自带的不够用vim --version(只提示支持python2,不支持python3)
    • 需要brew install vim安装(特别耗时)
    • vim --version(显示提示支持python3即可)

插件:

  • vundle

    • 功能:管理其他插件的插件,首先安装。
    • 安装:
      • git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
      • .vimrc配置
      • : BundleInstall
    • 使用:
      • # 安装插件
        :BundleInstall
        # 更新插件
        :BundleUpdate
        # 清除不需要的插件
        :BundleClean
        # 列出当前的插件
        :BundleList
        # 搜索插件
        :BundleSearch
    • 参考:
      • https://www.jianshu.com/p/f2b0fa840973
      • https://www.cnblogs.com/20143605--pcx/p/10894820.html
  • Jedi-vim

    • 功能:python自动提示
    • 安装:
      • git clone --recursive https://github.com/davidhalter/jedi-vim.git ~/.vim/bundle/jedi-vim
      • Bundle 'davidhalter/jedi-vim’
      • :BundleInstall
    • 配置:
      • let g:jedi#environment_path = "/Users/shifeng/anaconda3/bin/python"
      • 若不配置,则默认调用系统自带的python,而不是第三方python
      • 其他设置配置详见git:https://github.com/davidhalter/jedi-vim
    • 使用:
      • import numpy as np
      • np.:“点”的时候,自动提示,上下可选,回车可确定,esc可退出自动提示
      • 第一次点的时候,加载可能比较慢
    • 参考:https://vimjc.com/jedi-vim-plugin.html
  • YouCompleteMe

    • 功能:各种语言的自动补全。本质基于jedi-vim实现的
    • 安装:
      • # 翻墙下载,不然贼慢,特么一晚上都下载不完,翻墙后1分钟不到就下载完成了
      • git clone https://github.com/Valloric/YouCompleteMe.git
      • 放到.vim/bundle文件夹下
      • git submodule update --init --recursive
      • ./install.py #安装python版本即可
      • 安装好了,使用失败(可能漏了啥,这个插件比较重量级?我就没用它了)
    • 参考:
      • https://github.com/ycm-core/YouCompleteMe#full-installation-guide
      • https://juejin.cn/post/6844903753443704846
        https://blog.csdn.net/lqzixi/article/details/112682645
        https://blog.csdn.net/fangkailove/article/details/106365539
  • flake8

    • 功能:python的语法检查插件,神器。
    • 安装:
      • pip install flake8
      • Plugin 'nvie/vim-flake8'
    • 配置:
      • " flake8插件
      • " 我的python安装在/Users/shifeng/anaconda3/bin/,pip也在该路径下
        autocmd FileType python map <buffer> <F3> :call flake8#Flake8()<CR>
        autocmd BufWritePost *.py call flake8#Flake8()
        let g:flake8_cmd="/Users/shifeng/anaconda3/bin/flake8"  
        let g:flake8_quickfix_location="right" "topleft left right "
    • 修改源码:
      • 问题:E501 line too long,默认设置得是超过79,就提示E501,但宽屏足够看,不需要替换
        修改:
        /Users/shifeng/anaconda3/lib/python3.7/site-packages/flake8/defaults.py文件中
        MAX_LINE_LENGTH = 160
    • 使用:每次保存即可弹出flake8的quickFix
    • 参考:
      • https://vimjc.com/vim-flake8-plugin.html
        https://blog.csdn.net/qq_40702130/article/details/111837191
  • autopep8

    • 功能:自动将代码改成符合PEP8规范,与flake8两者配合食用效果极佳
    • 安装:
      • pip install autopep8
        ~/.vimrc添加:
        Plugin 'tell-k/vim-autopep8'
        :PluginInstall安装即可
    • 使用:
      • :Autopep8 --range 11 13:对指定的11到13行进行pep8自动替换
        :Autopepe8:对全局代码进行格式风格替换
    • 配置
      • “ F8按键自动启动autopep8、设置最大长度160,默认为79
        autocmd FileType python noremap <buffer> <F8> :call Autopep8()<CR>
        let g:autopep8_max_line_length=160
    • 参考
      • https://github.com/tell-k/vim-autopep8
      • https://www.codercto.com/a/72232.html
  • nerdcommenter

    • 功能:快速注释
    • 安装
      • Bundle 'scrooloose/nerdcommenter'

        let mapleader = ','
        nnoremap <C-l> gt
        nnoremap <C-h> gT
        nnoremap <leader>t : tabe<CR>

    • 使用
      • <leader>按键设置为逗号
        ,ci:即可注释(或者,cc?)
        ,cu:即可解开注释
        V,ci:V进入可视界面,然后进行注释
    • git:https://github.com/preservim/nerdcommenter
  • AutoComplPop

    • 功能:自动补齐(补齐已经编辑过的变量名,与jedi-vim不一样,两者配合使用效果极佳)
    • 安装:
      • 下载:http://www.vim.org/scripts/script.php?script_id=1879
        解压
        放到.vim/下
        重启即可
    • 配置
      • " autocomplpop插件配置:
        " 中文输入时,取消比较好。不然弹出bug:E764:没有设定选项'omnifunc'
        " :AcpEnable    "启用auto-popup
        " :AcpDisable   "停止auto-popup
        let g:AutoComplPop_IgnoreCaseOption=1
        set ignorecase
        let g:acp_behaviorKeywordCommand="\<C-x>\<C-o>"
        let g:acp_completeOption = '.,w,b,u,t,i'
        "vim启动时启用auto-popup(默认启动时候就已经启动了auto-popup了
        let g:acp_enableAtStartUp = 1
        " 输入一个字母即可补全
        " let g:acp_behaviorKeywordLength = 1
        " 自动弹出是由键映射,对于通过移动来避免自动弹出是很有用
        " let g:AutoComplPop_MappingDriven = 1
        "autocmd FileType python set omnifunc=pythoncomplete#Complete
        "autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
        "autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
        "autocmd FileType css set omnifunc=csscomplete#CompleteCSS
        "autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
        "autocmd FileType php set omnifunc=phpcomplete#CompletePHP
        "autocmd FileType c set omnifunc=ccomplete#Complete
    • 参考:
      • 官网:https://www.vim.org/scripts/script.php?script_id=1879
      • https://blog.csdn.net/G_BrightBoy/article/details/19498983
      • https://blog.csdn.net/u011127242/article/details/78509774
  • delimitMate

    • 功能:自动补全引号(单引号/双引号/反引号), 括号(()[]{})
    • 安装:
      • Bundle 'Raimondi/delimitMate'
        :BundleInstall
    • 文档:https://vimjc.com/vim-delimitmate-plugin.html
  • color

    • 安装:下载颜色

      • git clone https://github.com/AlessandroYorba/Alduin.git  (背景颜色太难看了)
      • git clone https://github.com/tomasr/molokai.git (还可以)
      • 移动到~/.vim/colors
    • 配置文件
      • syntax enable
      • set background=dark
      • colorscheme molokai
  • nerdtree

    • 功能:实现文件夹
    • 安装:
      • Bundle 'scrooloose/nerdtree'
        let NERDTreeWinPos='left'
        let NERDTreeWinSize=25
        let g:NERDTreeNodeDelimiter = "\u00a0"
        "let g:NERDTreeNodeDelimiter = ''
        "map <F2> :NERDTreeToggle<CR>
        map <C-n> :NERDTreeToggle<CR>
    • 使用
      • Ctrl +N 开启左侧文件夹,再执行一次则关闭
        上下按键移动,回车进入文件夹
        目录树的使用主要通过在vim的command模式下键入如下命令,即可达到相应的效果。
        ?: 快速帮助文档(再按一次关闭文档)
        o:打开文件,目录或者书签,和我们在对应节点上按回车键一个效果
        go:打开文件,但是光标仍然停留在目录中
        t:在新的tab上打开选定的节点
        T:与t相同,但是光标仍然停留在目录中
        i:在新窗格中打开文件
        gi:和i 相同,但是光标仍然停留在目录中
        s:在水平窗格打开一个文件
        gs:和s相同,但是光标仍然停留在目录中
        A:放大NERDTree窗口
        p:跳到根节点
        P:跳转到当前节点的父节点
        K:跳转到当前目录的第一个节点
        J:跳转到当前目录的最后一个节点
        u:把上层目录设置为根节点
    • 参考:
      • https://www.cnblogs.com/littlewrong/p/6535728.html
      • https://juejin.cn/post/6844903537416077325
  • asyncrun

    • 功能:vim里执行shell
    • 文档:https://github.com/skywind3000/asyncrun.vim/blob/master/README-cn.md
  • tagbar

    • 功能:(忘了,不那么常用?)
    • 安装:
      • Plugin 'majutsushi/tagbar'
        :BundleInstall
    • 配置
      • 配置:
        " Tagbar
        let g:tagbar_width=35
        let g:tagbar_autofocus=1
        let g:tagbar_left = 1
        nmap <F3> :TagbarToggle<CR>
    • 参考
      • https://juejin.cn/post/6844903537416077325

  • 执行:BundleInstall安装时,vim可能有缓存,需要退出.vimrc后再进入执行,否则找不到新改的
  • vim配置时,某插件详细配置及说明文档放到最后面,不用放到call vundle#begin()、end()(其之间用于安装)之间,是比较好的习惯。
  • quickeFix可能有冲突,需要进行配置

示例

  • 解释

    • 窗口1:flake8的quickfix窗口,提示PEP8风格问题

      • 有的时候也能提示bug,某个变量没有预先定义(这一点非常重要)
    • 窗口2:目录树,nerdtree插件,方便看到有哪些文件
    • 窗口3:tagbar插件,每个函数、变量、class、import等归类查看
    • 窗口4:当前编辑的文件
    • 窗口5:输入Autopep8,自动帮你处理PEP8个格式的问题,例如
      • 函数后面要两个空行,你输入一个了,自动帮你加一个空行(这种小问题居然是pep8风格)
      • 第16行的lambda表达式,冒号后面少了空格,自动帮你加个(也是小问题)


~/.vimrc配置文件:(截止到20210130)

"语法高亮
set nonu
syntax on
"显示行号
set number
set nonu
"显示光标所在位置的行号和列号
set ruler
set wrap                      "自动折行
set shiftwidth=4
set tabstop=4
set softtabstop=4
set expandtab                  "将tab替换为相应数量空格
set smartindent
set backspace=2
"设置取消备份 禁止临时文件生成
set nobackup
set noswapfile
"设置匹配模式 类似当输入一个左括号时会匹配相应的那个右括号
set showmatch
"set laststatus=2   "命令行为两行
"set fenc=utf-8     "文件编码
"set mouse=a        "启用鼠标
set ignorecase     "忽略大小写
set cursorline     "突出显示当前行
set cursorcolumn   "突出显示当前列set fdm=markerset report=0
" 颜色
syntax enable
set background=dark
"colorscheme alduin
colorscheme molokai
"hi term=reverse ctermfg=0 ctermbg=222 guifg=#000000 guibg=#FFE792"jj退出insert模式
"inoremap <C-j> <ESC>
inoremap jk <ESC>
" insert模式下
" ctrl+H单词左移动,类似normal下单词b,似乎不成功:网上建议在normal模式加移动
"inoremap <C-H> <C-\><C-O>b
"inoremap <C-L> <C-\><C-O>w
"inoremap <C-h> <Left>
"inoremap <C-j> <Down>
"inoremap <C-k> <Up>
"inoremap <C-l> <Right>
"inoremap <C-d> <DELETE>" 可视行后,逗号+c,即可复制到系统的剪切板,从vim里面复制出去
" 同理,逗号+v,将系统剪切板里的内容,copy到vim里面
nmap ,v "+p
vmap ,c "+y
nmap ,c "+y
vmap ,c :w !pbcopy<CR><CR>
nmap ,c :w !pbcopy<CR><CR>
nmap ,v :r !pbpaste<CR><CR>""""""""""""""""""""""
"Quickly Run
""""""""""""""""""""""
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()exec "w"if &filetype == 'c'exec "!g++ % -o %<"exec "!time ./%<"elseif &filetype == 'cpp'exec "!g++ % -o %<"exec "!time ./%<"elseif &filetype == 'java'exec "!javac %"exec "!time java %<"elseif &filetype == 'sh':!time bash %elseif &filetype == 'python'#exec "!time python2.7 %"if search("@profile")exec "AsyncRun kernprof -l -v %"exec "copen"exec "wincmd p"elseif search("set_trace()")exec "!python3 %"elseexec "AsyncRun -raw python3 %"exec "copen"exec "wincmd p"endifelseif &filetype == 'html'exec "!firefox % &"elseif &filetype == 'go'"        exec "!go build %<"exec "!time go run %"elseif &filetype == 'mkd'exec "!~/.vim/markdown.pl % > %.html &"exec "!firefox %.html &"endif
endfunc
"设置vundle
set nocompatible              " be iMproved
filetype off                  " required!set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
filetype plugin indent on     " required!
"vundle设置完毕"Bundle 'taglist.vim'
"let Tlist_Ctags_Cmd='ctags'
"let Tlist_Show_One_File=1               "不同时显示多个文件的tag,只显示当前文件的
"let Tlist_WinWidt =28                   "设置taglist的宽度
"let Tlist_Exit_OnlyWindow=1             "如果taglist窗口是最后一个窗口,则退出vim
"let Tlist_Use_Right_Window=1           "在右侧窗口中显示taglist窗口
"let Tlist_Use_Left_Windo =1             "在左侧窗口中显示taglist窗口"Bundle 'Valloric/YouCompleteMe'
"Bundle 'skywind3000/asyncrun.vim'Bundle 'majutsushi/tagbar'
"nmap <Leader>tb :TagbarToggle<CR>      "快捷键设置
let g:tagbar_ctags_bin='ctags'          "ctags程序的路径
let g:tagbar_width=20                   "窗口宽度的设置
map <F3> :Tagbar<CR>
map <C-t> :Tagbar<CR>
"autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()  "如果是c语言的程序的话,tagbar自动开启Bundle 'scrooloose/nerdtree'Bundle 'bling/vim-airline'
set laststatus=2Bundle 'scrooloose/nerdcommenter'let mapleader = ','
nnoremap <C-l> gt
nnoremap <C-h> gT
nnoremap <leader>t : tabe<CR>"vim-multiple-cursors 多光标选中
"Bundle 'terryma/vim-multiple-cursors'
"let g:multi_cursor_use_default_mapping=0
"let g:multi_cursor_start_key='<C-m>'
"let g:multi_cursor_start_word_key='g<C-m>'
"let g:multi_cursor_next_key='<C-m>'
"let g:multi_cursor_prev_key='<C-p>'
"let g:multi_cursor_skip_key='<C-x>'
"let g:multi_cursor_quit_key='<C-j>'"MatchTagAlways
Bundle 'Valloric/MatchTagAlways'"Markdown语法高亮
Bundle 'godlygeek/tabular'
"Bundle 'plasticboy/vim-markdown'
"markdown实时显示
Bundle 'suan/vim-instant-markdown'"indentLine 代码缩进线标志线
Plugin 'Yggdroot/indentLine'
let g:indentLine_char = '┆'
let g:indentLine_color_term = 239
let g:indentLine_enabled = 1
"映射到ctrl+I键
"map <C-i> :IndentLinesToggle<CR>" ************** 插件管理与设置 ************ "
" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Lokaltog/vim-powerline' "status 美化
Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'tomtom/tlib_vim'
"Plugin 'garbas/vim-snipmate'
Plugin 'skywind3000/asyncrun.vim'
Plugin 'scrooloose/nerdcommenter'
"Plugin 'preservim/nerdtree'
Plugin 'scrooloose/nerdtree'
"delimitMate 自动补全引号(单引号/双引号/反引号), 括号(()[]{})
"let b:delimitMate_autoclose = 0 #选项关闭 delimitMate 插件
Plugin 'Raimondi/delimitMate'
" 插件列表结束
Plugin 'davidhalter/jedi-vim'
"Plugin 'Valloric/YouCompleteMe'
Plugin 'majutsushi/tagbar'
Plugin 'nvie/vim-flake8'
" Plugin 'chrismetcalf/autocomplpop'
Plugin 'tell-k/vim-autopep8'
call vundle#end()
filetype on" jedi:python自动提示.youcompleteme太难装了,换其爸爸(其内核为jedi)
let g:jedi#environment_path = "/Users/shifeng/anaconda3/bin/python"" asyncr插件设置:vim里执行shell
let g:asyncrun_open=8" Tagbar插件:
let g:tagbar_width=35
let g:tagbar_autofocus=1
let g:tagbar_left = 1" flake8插件:python语法检查
autocmd FileType python map <buffer> <F3> :call flake8#Flake8()<CR>
autocmd BufWritePost *.py call flake8#Flake8()
"pip安装的flake8的路径"
let g:flake8_cmd="/Users/shifeng/anaconda3/bin/flake8"
"topleft left right "
let g:flake8_quickfix_location="topleft"
let g:flake8_quickfix_height=7
" 退出最后一个文件编辑窗口,自动退出flake8的quickfix窗口
autocmd BufEnter * if 0 == len(filter(range(1, winnr('$')), 'empty(getbufvar(winbufnr(v:val), "&bt"))')) | qa! | endif" nerdTree插件:目录树
let NERDTreeWinPos='left'
let g:NERDTreeNodeDelimiter = "\u00a0"
"let g:NERDTreeNodeDelimiter = ''
"开启/关闭nerdtree快捷键
"map <F2> :NERDTreeToggle<CR>
map <C-n> :NERDTreeToggle<CR>
"打开NERDTree
" autocmd vimenter * NERDTree
"光标默认在主窗口
"wincmd w
"autocmd VimEnter * wincmd w
"自动开启Nerdtree
" autocmd vimenter * NERDTree
let g:NERDTreeWinSize = 25 "设定 NERDTree 视窗大小
" 开启Nerdtree时自动显示Bookmarks
" let NERDTreeShowBookmarks=1
"打开vim时如果没有文件自动打开NERDTree
autocmd vimenter * if !argc()|NERDTree|endif
"当NERDTree为剩下的唯一窗口时自动关闭
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"设置树的显示图标
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
" 过滤所有.pyc文件不显示
let g:NERDTreeHidden=0
let NERDTreeIgnore = ['\.pyc$', '\.swp', '\.swo', '\.vscode', '__pycache__']
"let g:NERDTreeShowLineNumbers=1  " 是否显示行号
"Making it prettier
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1
" 新的缓冲区设置在右边
" 等同于:belowright vsp xx.txt:右新增
set splitright
" 新的缓冲区设置在下边
" 等同于:belowright sp xx.txt,下新增
set splitbelow
":leftabove sp xx.txt:上新增(leftabove==aboveleft)
":leftabove vsp xx.txt:左新增
":topleft vsp xx.txt:整个vim左新增
":topleft sp xx.txt:整个vim上新增
":botright vsp xx.txt:整个vim右新增
":botright sp xx.txt:整个vim下新增" youcompleteMe插件:代码补全
"let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
"let g:ycm_server_python_interpreter='/Users/shifeng/anaconda3/bin/python'
"let g:ycm_server_keep_logfiles = 1
"let g:ycm_server_log_level = 'debug'" autocomplpop插件配置:
" 中文输入时,取消比较好。不然弹出bug:E764:没有设定选项'omnifunc'
" :AcpEnable    "启用auto-popup
" :AcpDisable   "停止auto-popup
let g:AutoComplPop_IgnoreCaseOption=1
set ignorecase
" 前缀为ctrl+x ctrl+o来补全,改为tab不知道怎么改
let g:acp_behaviorKeywordCommand="\<C-x>\<C-o>"
" let g:acp_behaviorKeywordCommand="\<Tab>"
let g:acp_completeOption = '.,w,b,u,t,i'
"vim启动时启用auto-popup(默认启动时候就已经启动了auto-popup了
let g:acp_enableAtStartUp = 1
" 输入一个字母即可补全
" let g:acp_behaviorKeywordLength = 1
" 自动弹出是由键映射,对于通过移动来避免自动弹出是很有用
" let g:AutoComplPop_MappingDriven = 1
"autocmd FileType python set omnifunc=pythoncomplete#Complete
"autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
"autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
"autocmd FileType css set omnifunc=csscomplete#CompleteCSS
"autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
"autocmd FileType php set omnifunc=phpcomplete#CompletePHP
"autocmd FileType c set omnifunc=ccomplete#Complete" autopep8插件
autocmd FileType python noremap <buffer> <F8> :call Autopep8()<CR>
let g:autopep8_max_line_length=160
let g:autopep8_ignore="E501,W293"

vim工具——常用插件相关推荐

  1. Vim 4 常用插件

    Vim 系列教程目录: Vim 1 基本使用 Vim 2 高级用法 Vim 3 vimrc Vim 4 常用插件 Vim 5 其他编辑器的 Vim 插件 Vim 插件网站 Vim 之所以强大, 有个很 ...

  2. Linux下Vim工具常用命令

    原文地址: http://www.cnblogs.com/lizhenghn/p/3675011.html 在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚 ...

  3. Angular14 Visual Studio Code作为Angular开发工具常用插件安装、json-server安装与使用、angular/cli安装失败问题、emmet安装...

    前提准备: 搭建好Angular开发环境 1 安装Visual Studio Code 教程简单,不会的去问度娘 2 安装Chrome浏览器 教程简单,不会的趣闻度娘 3 Visual Studio ...

  4. VS开发工具常用插件

    请勿盗图. 转载于:https://www.cnblogs.com/wdw31210/archive/2013/04/07/3003717.html

  5. VSCode 工具常用插件

    1.Debugger for Chrome 方便运行代码,浏览器打开 2. GitLens - Git supercharged 鼠标放到代码行上可以显示,改行的上一次修改记录 3.Git Histo ...

  6. 【Linux vim 入门及渐进过程2 - vim 常用插件配置】

    文章目录 1.1 vim 常用配置 1.1.2 vim 别名 alias 配置 1.1.3 vim 终端颜色配置 1.1.3 vim cscope 函数配置 1.1.4 vimrc 配置 1.2 vi ...

  7. vim配置及常用插件安装

    前言 作为一个程序员,一个常用的工具就是编辑器,常用的编辑器有Sublime Text.Emacs.Vim.Source Insight.Atom.TextMate. 引用知乎大佬刘尚奇的言论 中国范 ...

  8. IDE工具(48) idea常用插件

    文章目录 IDEA - 常用插件 其它的一些不怎么用的插件 IDEA - 常用插件 tips: 最新文档笔记 https://gitee.com/zhengqingya/java-developer- ...

  9. 【从入门到进阶】vim基础配置+ 常用插件(NERDTree, cscope, rainbow等)

    文章目录 前言 一.vim基础配置 二.常用插件 2.1 Vundle 2.1.1 Vundle安装 2.1.2 Vundle配置 2.1.3 安装插件 2.1.4 Vundle常用指令 2.2 NE ...

最新文章

  1. 【ShareCode】不错的技术文章 -- 如何使用异或(XOR)运算找到数组中缺失的数?...
  2. [转载]基于数据挖掘技术入侵检测系统研究
  3. 当滑动时隐藏Actionbar
  4. Synchronized和Lock的区别
  5. postgis安装_从零开始,构建电子地图网站:0_2_数据处理postgis
  6. linux内核编译安装,编译安装Linux内核
  7. pyplot.annatate
  8. 如何开发Linux内核?
  9. 《Go语言实战》读书笔记——关于Go语言的介绍
  10. Windows C语言开发环境实践
  11. dateutil 日期计算_DateUtil日期工具类
  12. 云计算与大数据概论第十一周(2)
  13. BCrypt算法,想想spring security里的BCryptPasswordEncoder
  14. 阿里云企业物联网平台推出千里传音播报服务 高效打造云端一体智能硬件
  15. 计算机科学报数学竞赛,五大学科竞赛参加哪一个科目?五大学科竞赛赛程设置分析!...
  16. 【Unity步步升】各类旋转逻辑的区别,如欧拉旋转、插值旋转、矢量朝向等...及游戏视角案例
  17. ar vr mr 计算机技术,VR技术是什么?AR、MR又是什么?
  18. 001-unity2D游戏随机生成地图
  19. Mysql数据库服务
  20. uC/OS-III-3.0-uC/OS-III简介

热门文章

  1. 使用进程池抓取猫眼数据
  2. 13.DoS防御----BeEF浏览器渗透----暴力破解之美杜莎---DNS指南
  3. 威锋VIA VL150 e-marker芯片
  4. ubuntu14.04安装搜狗输入法
  5. 详细解读文字识别工具———Tesseract-OCR
  6. V-REP笔记:重力加速度的修改
  7. C语言变量类型及其表示范围
  8. iOS Core Bluetooth_4 用作中央设备的常用方法(2/2)[swift实现]
  9. weblogic BEA-170011
  10. Java实现简单的猜数字小游戏