zoukankan      html  css  js  c++  java
  • 【编辑器】Vim学习笔记

    0x00先放几个比较好的学习资料

    1.Vim入门基础 http://www.jianshu.com/p/bcbe916f97e1
    2.vim配置 http://blog.csdn.net/g_brightboy/article/details/14229139
    3.简明Vim练级攻略 http://coolshell.cn/articles/5426.html
    4.http://blog.csdn.net/mu_zhou233/article/details/53045831

    0x01然后是配置文件

    字体 Mac上用Monaco 20号(Monaco字体太漂亮了太可爱了),Windows上用16号

    "2017.7.20  g++ with macvim By gwj
    
    let s:cpo_save = &cpo
    set cpo&vim
    
    colorscheme macvim
    set cin
    
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    
    set nu
    
    set guitablabel=%M%t
    set ruler
    set autoindent
    set smartindent
    filetype on
    syntax on
    set showmatch
    set guifont=Monaco:h20
    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
    
    nnoremap <F7> <Esc>:w<CR>:!g++ % -Wall -o 
    nnoremap <F8> <Esc>:!./
    nnoremap <F9> <Esc>:w<CR>:!g++ % -Wall -o a
    nnoremap <F10> <Esc>:!./a<CR>
    
    set printexpr=system('open -a Preview '.v:fname_in) + v:shell_error
    
    let $SSH_ASKPASS = simplify($VIM . '/../../MacOS') . '/macvim-askpass'
    let $SUDO_ASKPASS = $SSH_ASKPASS
    
    let &cpo = s:cpo_save
    unlet s:cpo_save
    " Candy? MacOS
    
    set number
    set ruler
    set tabstop=4
    set shiftwidth=4
    set autoindent
    set smartindent
    filetype on
    syntax on
    colorscheme solarized
    set showmatch
    set guifont=Monaco:h20
    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
    nnoremap <F7> <Esc>:w<CR>:!g++ % -Wall -o 
    nnoremap <F8> <Esc>:!./
    nnoremap <F9> <Esc>:w<CR>:!g++ % -Wall -o a<CR>
    nnoremap <F10> <Esc>:!./a<CR>
    "mhy12345
    "Configure of Vundle
    set nocompatible              " be iMproved, required
    filetype off                  " required
    " set the runtime path to include Vundle and initialize
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    " alternatively, pass a path where Vundle should install plugins
    "call vundle#begin('~/some/path/here')
    
    " Default Plugin
    Plugin 'VundleVim/Vundle.vim'
    Plugin 'vim-airline/vim-airline'
    Plugin 'vim-airline/vim-airline-themes'
    Plugin 'Valloric/YouCompleteMe'
    
    " All of your Plugins must be added before the following line
    call vundle#end()            " required
    filetype plugin indent on    " required
    " To ignore plugin indent changes, instead use:
    "filetype plugin on
    "
    " Brief help
    " :PluginList       - lists configured plugins
    " :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
    " :PluginSearch foo - searches for foo; append `!` to refresh local cache
    " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
    "
    " see :h vundle for more details or wiki for FAQ
    "
    " Put your non-Plugin stuff after this line
    "
    "Old encoding setting...
    set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
    set termencoding=utf-8
    set encoding=utf-8
    
    "Configure airline
    let molokai_original=1
    let g:airline_theme="molokai"
    "始终显示状态栏
    set laststatus=2
    "打开tabline功能,方便查看Buffer和切换,省去了minibufexpl插件
    let g:airline#extensions#tabline#enabled = 1
    let g:airline#extensions#tabline#buffer_nr_show = 1
    "设置切换Buffer快捷键"
    nnoremap <C-tab> :bn<CR>
    nnoremap <C-s-tab> :bp<CR>
    " 关闭状态显示空白符号计数
    let g:airline#extensions#whitespace#enabled = 0
    let g:airline#extensions#whitespace#symbol = '!'
    " 设置consolas字体"前面已经设置过
    "set guifont=Consolas for Powerline FixedD:h11
    if !exists('g:airline_symbols')
      let g:airline_symbols = {}
    endif
    "End
    
    "YouCompleteMe
    let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'
    let g:airline_powerline_fonts = 1
    
    "Own configure
    nnoremap <leader>f :YcmCompleter FixIt<CR>
    
    function Compile()
        if &filetype == 'cpp'
            exec "!g++ % -o %< -g -Wall -Wextra -Wconversion -std=c++11"
        elseif &filetype == 'c'
            exec "!gcc % -o %< -g -Wall -Wextra -Wconversion"
        elseif &filetype == 'pas'
            exec "!fpc % -g"
        elseif &filetype == 'tex'
            exec "!xelatex '%'"
        elseif &filetype == 'java'
            exec "!javac %"
        elseif &filetype == 'scss'
            exec "!sass % > %<.css"
        endif
    endfunction
    
    function Debug()
        if &filetype == 'cpp' 
            exec "!gdb ./%<"
        elseif &filetype == 'tex'
            exec "!open './%<.pdf'"
        elseif &filetype == 'java'
            exec "!jdb %<"
        endif
    endfunction
    
    function Run()
        if &filetype == 'cpp'
            exec "!time ./%<"
        elseif &filetype == 'tex'
            exec "!open './%<.pdf'"
        elseif &filetype == 'java'
            exec "!java %<"
        elseif &filetype == 'ruby'
            exec "!ruby %"
        elseif &filetype == 'html'
            exec "!firefox %"
        elseif &filetype == 'php'
            exec "!php %"
        elseif &filetype == 'sh'
            exec "!bash %"
        endif
    endfunction
    
    set hlsearch
    set mouse=a
    set smartindent
    set fdm=marker
    set number
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    set backspace=2
    syntax on
    imap jj <esc>
    map <F9> : call Compile() <CR>
    map <F5> : call Debug() <CR>
    map <F6> : call Run() <CR>
    map <F8> : ! xcodebuild <CR>
    map <F12> : ! subl ./% <CR>
    map <F2> : ! python3 % <CR>
    colors evening
    "main command
    "打开语法高亮
    syntax on
    
    "使用配色方案
    colorscheme desert
    
    "打开文件类型检测功能
    filetype on
    
    "不同文件类型采用不同缩进
    filetype indent on
    
    "允许使用插件
    filetype plugin on
    filetype plugin indent on
    
    "关闭vi模式
    set nocp
    
    "与windows共享剪贴板
    set clipboard+=unnamed
    
    "取消VI兼容,VI键盘模式不易用
    set nocompatible
    
    "显示行号, 或set number
    set nu
    
    "历史命令保存行数 
    set history=100 
    
    "当文件被外部改变时自动读取
    set autoread 
    
    "取消自动备份及产生swp文件
    set nobackup
    set nowb
    set noswapfile
    
    "允许使用鼠标点击定位
    set mouse=a
    
    "允许区域选择
    set selection=exclusive
    set selectmode=mouse,key
    
    "高亮光标所在行
    set cursorline
    
    "取消光标闪烁
    set novisualbell
    
    "总是显示状态行
    set laststatus=2
    
    "状态栏显示当前执行的命令
    set showcmd
    
    "标尺功能,显示当前光标所在行列号
    set ruler
    
    "设置命令行高度为3
    set cmdheight=3
    
    "粘贴时保持格式
    set paste
    
    "高亮显示匹配的括号
    set showmatch
    
    "在搜索的时候忽略大小写
    set ignorecase
    
    "高亮被搜索的句子
    set hlsearch
    
    "在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
    set incsearch
    
    "继承前一行的缩进方式,特别适用于多行注释
    set autoindent
    
    "为C程序提供自动缩进
    set smartindent
    
    "使用C样式的缩进
    set cindent
    
    "制表符为4
    set tabstop=4
    
    "统一缩进为4
    set softtabstop=4
    set shiftwidth=4
    
    "允许使用退格键,或set backspace=2
    set backspace=eol,start,indent
    set whichwrap+=<,>,h,l
    
    "取消换行
    set nowrap
    
    "启动的时候不显示那个援助索马里儿童的提示
    set shortmess=atI
    
    "在被分割的窗口间显示空白,便于阅读
    set fillchars=vert: ,stl: ,stlnc:
    
    "光标移动到buffer的顶部和底部时保持3行距离, 或set so=3
    set scrolloff=3
    
    "设定默认解码
    set fenc=utf-8
    set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
    
    "设定字体
    set guifont=Courier_New:h11:cANSI
    set guifontwide=新宋体:h11:cGB2312
    
    "设定编码
    set enc=utf-8
    set fileencodings=ucs-bom,utf-8,chinese
    set langmenu=zh_CN.UTF-8
    language message zh_CN.UTF-8
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    
    "自动补全
    filetype plugin indent on
    set completeopt=longest,menu
    
    "自动补全命令时候使用菜单式匹配列表
    set wildmenu
    autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
    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 java set omnifunc=javacomplete#Complet

    0x03具体操作

    占坑待填。

  • 相关阅读:
    C#递归拷贝文件夹下文件以及文件夹
    C# 获取文件名、目录、后缀、无后缀文件名、扩展名
    C#递归得到特定文件夹下问件
    Are you seeing high number of busyio or busyworker threads in the timeout exception?
    减少查询中的资源使用
    SQL性能优化前期准备-清除缓存、开启IO统计
    Sql server 存储过程批量插入若干数据。
    python读取excel中单元格的内容返回的5种类型
    Python读取excel数据类型处理
    【转】 如何导入excel数据到数据库,并解决导入时间格式问题
  • 原文地址:https://www.cnblogs.com/gwj1314/p/9444897.html
Copyright © 2011-2022 走看看