liujianzuo888

============改用vim-plug  

注意如果ymc  youcompleteme安装不上在mac上 请升级或者 克隆旧分支  本人mac 10.14 在2020.12.25下载的包 c++ 编译已不支持。所以升级mac 系统11   完事安装xcode-select

brew建议国内源加速  升级vim版本 >=8.1 

brew unlink python  # 看提示有可能--force

brew install python  # 安装python3.9

brew link python

Give another go at force removing the $ brewed version of perl

$ brew uninstall --force perl
Then cleanup any older versions and clear the brew cache

$ brew cleanup -s perl
Remove any dead symlinks

$ brew cleanup --prune-prefix
Then try reinstalling perl

$ brew install perl

 

vimrc  vim-plug自行安装

配置

" 设置vim-plug管理的插件安装位置
call plug#begin(\'~/.vim/bundle\')


" 下面就是一些插件的例子.
" 插件必须装在  plug#begin/end这两行命令之间.
" 对于在github上面的插件, 我们可以用以下方法添加, 只需要添加`用户名/插件名称`就行
Plug \'tpope/vim-fugitive\'
" 对于在http://vim-scripts.org/vim/scripts.html下的插件, 我们直接添加插件名称就行
" Plug \'L9\'
" 对于不是github也不是vim-scripts的插件, 则需要用完整路径
Plug \'git://git.wincent.com/command-t.git\'
" 本地或者你自己的插件
"Plug \'file:///home/gmarik/path/to/plugin\'
"

Plug \'scrooloose/nerdtree\'
Plug \'git://github.com/vim-airline/vim-airline\'
Plug \'jiangmiao/auto-pairs\'

Plug \'Valloric/YouCompleteMe\'

Plug \'kien/ctrlp.vim\'

Plug \'scrooloose/syntastic\'
Plug \'nvie/vim-flake8\'
Plug \'klen/python-mode\'

" github上被star 2300次的vim的配置建议参考:https://github.com/amix/vimrc/tree/master/vimrcs,建议弄明白了再复制过来。
Plug  \'mattn/emmet-vim\'
Plug  \'godlygeek/tabular\'
" 也是代码不全
Plug  \'Shougo/neocomplcache.vim\'
Plug  \'jelera/vim-javascript-syntax\'
Plug  \'terryma/vim-multiple-cursors\'
Plug  \'tpope/vim-commentary\'
Plug  \'jiangmiao/auto-pairs\'

" 所有的插件都需要安装在这条命令之前
call plug#end()            " 必须的






set encoding=utf-8
"语法高亮
syntax enable

syntax on
"显示行号
set number
"显示光标所在位置的行号和列号
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=marker

"jj退出insert模式
"inoremap <C-j> <ESC>
inoremap jk <ESC>

"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>

"设置vundle
set nocompatible              " be iMproved
" filetype off                  " required!
filetype  plugin  indent  on     " required


" 有时候需要从vim中复制一些代码出去,所以vim必须支持能够将代码复制到系统粘贴板上,要实现上述需求,只需要在.vimrc中添加如下配置参数。
set clipboard=unnamed


" html5 settings
let g:html5_event_handler_attributes_complete =  0

" emment settings
let g:user_emmet_mode= \'n\'     "only enable normal mode functions.
let g:user_emmet_mode= \'inv\'   "enable all functions, which is equal to
let g:user_emmet_mode= \'a\'     "enable all function in all mode.
let g:emmet_html5 =  0

let g:user_emmet_install_global =  0
autocmd  FileType html,css EmmetInstall
" let g:user_emmet_leader_key=\'<C-Z>\'
" let g:user_emmet_expandabbr_key=\'<Tab>\'

" neocompletecache settings
let g:acp_enableAtStartup =  0
let g:neocomplcache_enable_at_startup =  1
let g:neocomplcache_enable_smart_case =  1
let g:neocomplcache_min_syntax_length =  3
let g:neocomplcache_lock_buffer_name_pattern =  \'\*ku\*\'

inoremap  <expr ><C -g >     neocomplcache#undo_completion ( )
inoremap  <expr ><C -l >     neocomplcache#complete_common_string ( )

inoremap  <expr ><C -h > neocomplcache#smart_close_popup ( ) . "\<C-h>"
inoremap  <expr ><BS > neocomplcache#smart_close_popup ( ) . "\<C-h>"
inoremap  <expr ><C -y >  neocomplcache#close_popup ( )
inoremap  <expr ><C -e >  neocomplcache#cancel_popup ( )


autocmd  FileType css  setlocal  omnifunc=csscomplete#CompleteCSS
autocmd  FileType html,markdown  setlocal  omnifunc=htmlcomplete#CompleteTags
autocmd  FileType javascript  setlocal  omnifunc=javascriptcomplete#CompleteJS
autocmd  FileType python  setlocal  omnifunc=pythoncomplete#Complete
autocmd  FileType xml  setlocal  omnifunc=xmlcomplete#CompleteTags

" ctrlp settings
let g:ctrlp_map =  \'<c-p>\'
let g:ctrlp_cmd =  \'CtrlP\'

let g:ctrlp_working_path_mode =  \'ra\'
"set wildignore += */tmp /*, *. so, *.swp, *.zip      " Linux/MacOSX

let g:ctrlp_user_command =  \'find %s -type f\'         " MacOSX/Linux


" NERD tree
let NERDChristmasTree=0
let NERDTreeWinSize=35
let NERDTreeChDirMode=2
let NERDTreeIgnore=[\'\~$\', \'\.pyc$\', \'\.swp$\']
let NERDTreeShowBookmarks=1
let NERDTreeWinPos="left"
let NERDTreeShowHidden=1
" Automatically open a NERDTree if no files where specified
autocmd vimenter * if !argc() | NERDTree | endif
" Close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
" Open a NERDTree
nmap <F5> :NERDTreeToggle<cr>
au vimenter * NERDTree   " 开启vim的时候默认开启NERDTree


" *********************************************
" " 分割布局相关
" " *********************************************
" set splitbelow
" set splitright
" "快捷键,ctrl+l切换到左边布局,ctrl+h切换到右边布局
" "ctrl+k切换到上面布局,ctrl+j切换到下面布局
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>


" 在.vimrc中添加下面语句可以打开airline顶部的tab, 用来显示buffer信息
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1



" *********************************************
" YCM插件相关
" *********************************************
let g:ycm_autoclose_preview_window_after_completion=1
" 跳转到定义处
map <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
" 默认tab、s-tab和自动补全冲突
let g:ycm_key_list_select_completion = [\'<TAB>\', \'<c-n>\', \'<Down>\']
let g:ycm_key_list_previous_completion = [\'<S-TAB>\', \'<c-p>\', \'<Up>\']
let g:ycm_auto_trigger = 1



" *********************************************
" ctrlp
" *********************************************
let g:ctrlp_map = \'<c-p>\'
let g:ctrlp_cmd = \'CtrlP\'
" 设置过滤不进行查找的后缀名
let g:ctrlp_custom_ignore = \'\v[\/]\.(git|hg|svn|pyc)$\'



" *********************************************
" python代码风格PEP8
" *********************************************
au BufNewFile,BufRead *.py set tabstop=4 |set softtabstop=4|set shiftwidth=4|set textwidth=79|set expandtab|set autoindent|set fileformat=unix

au BufNewFile,BufRead *.js, *.html, *.css set tabstop=2|set softtabstop=2|set shiftwidth=2


" ctags settings
let Tlist_Ctags_Cmd = \'/usr/local/bin/ctags\'   "这里比较重要了,设置ctags的位置,不是指向MacOS自带的那个,而是我们用homebrew安装的那个,Centos下配置注销这行即可。

" taglist settings
let Tlist_Use_Right_Window =  1  "让taglist窗口出现在Vim的右边
let Tlist_File_Fold_Auto_Close =  1  "当同时显示多个文件中的tag时,设置为1,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
let Tlist_Show_One_File =  1  "只显示一个文件中的tag,默认为显示多个
let Tlist_Sort_Type = \'name\'  "Tag的排序规则,以名字排序。默认是以在文件中出现的顺序排序
let Tlist_GainFocus_On_ToggleOpen =  1  "Taglist窗口打开时,立刻切换为有焦点状态
let Tlist_Exit_OnlyWindow =  1  "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_WinWidth =  32  "设置窗体宽度为32,可以根据自己喜好设置
map  <silent>  <F9>  :TlistToggle  <CR>

" let Tlist_Ctags_Cmd="/usr/local/bin/ctags"
"let Tlist_Show_One_File=1
" let Tlist_Exit_OnlyWindow=1
" let Tlist_Use_Right_Window=1





" Python-mode
" Activate rope
" Keys: 按键:
" K             Show python docs 显示Python文档
" <Ctrl-Space>  Rope autocomplete  使用Rope进行自动补全
" <Ctrl-c>g     Rope goto definition  跳转到定义处
" <Ctrl-c>d     Rope show documentation  显示文档
" <Ctrl-c>f     Rope find occurrences  寻找该对象出现的地方
" <Leader>b     Set, unset breakpoint (g:pymode_breakpoint enabled) 断点
" [[            Jump on previous class or function (normal, visual, operator modes)
" ]]            Jump on next class or function (normal, visual, operator modes)
"            跳转到前一个/后一个类或函数
" [M            Jump on previous class or method (normal, visual, operator modes)
" ]M            Jump on next class or method (normal, visual, operator modes)
"              跳转到前一个/后一个类或方法
let g:pymode_rope = 1

" Documentation 显示文档
" let g:pymode_doc = 1
let g:pymode_doc_key = \'K\'

"Linting 代码查错,=1为启用
let g:pymode_lint = 1
let g:pymode_lint_checker = "pyflakes,pep8"
" Auto check on save
let g:pymode_lint_write = 1

" Support virtualenv
let g:pymode_virtualenv = 1

" Enable breakpoints plugin
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_bind = \'<leader>b\'

" syntax highlighting 高亮形式
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all

" Don\'t autofold code 禁用自动代码折叠
let g:pymode_folding = 0



"vim-commentary
"为python和shell等添加注释
"autocmd FileType python,shell,coffee set commentstring=#\ %s
"修改注释风格
"autocmd FileType java,c,cpp set commentstring=//\ %s
"使用方法如下

" gcc     注释当前行(普通模式)
" gc      可视模式下,注释当前选中的部分
" gcu     撤销上一次注释的部分,可以是一行也可以是多行
" gcgc    撤销注释当前行和邻近的上下两行

  

 

 

 

 

 

=================================下面是旧的配置

 

 

转 ↓

 

记得刚装ubuntu那会,对vim和terminal爱不释手,装各种插件DIY。换到mac上后接触到SublimeText和VScode,就再也没有去理会vim了。前几天看了点《程序员修炼之道》,里面说『最好精通一种编辑器,并将其用于所有编辑任务。如果不坚持使用一种编辑器,可能会面临现代的巴别特大混乱』

于是,又开始思考到底该选择谁作为自己的主编辑器,想了想目前学的主要是Python和C++偏服务器方向,而且以后工作中也是跟服务器打交道,既然偏服务器那就注定跟图像界面无缘了,所以就是没得选了!不过,还是出于ubuntu环境下vim的易用性,扩展性等都比较符合我爱折腾的性格。最终!我决定用vim!好吧,既然决定了,那就风雨无阻,开始吧。

系统环境

看网上一大堆vim的教程,大都不把自己的系统环境贴上去,以至于让读者无法理解,在配置过程中会出现版本问题。所以,我先把我的系统环境贴上来,让读者能够在遇到问题的时候注意到版本问题。

  • macos 10.12.2
  • vim 7.3
  • homebrew
  • osx Terminal
  • zsh 5.0.8

网上很多选用iterm2代替Terminal,还有macVim代替vim等,本人一贯认为,既然系统自带的不难用,没大毛病,何必要多装一堆东西呢?弄得系统乱糟糟的。

升级vim

mac下自带的vim是7.3版本的,而vim最强大的补全插件You Complete Me是要求vim7.4+,所以要配置vim环境的首要任务就是安装最新版本的vim。以前在ubuntu下用vim的时候,当时最新版的是7.4,现在不知不觉中更新到8.0了,真是一大喜讯啊,还说什么呢?赶紧去尝鲜咯。

更新vim最方便的方法就是采用homebrew安装。在终端下输入如下指令:

1
2
/* 安装最新版的vim,并覆盖系统的vim */
brew install vim –with-lua –with-override-system-vi

安装过程中的信息如下:

1
2
3
4
5
6
7
8
==> Using the sandbox
==> Downloading https://github.com/vim/vim/archive/v8.0.0041.tar.gz
==> Downloading from https://codeload.github.com/vim/vim/tar.gz/v8.0.0041
######################################################################## 100.0%
==> ./configure --prefix=/usr/local --mandir=/usr/local/Cellar/vim/8.0.0041/share/man --enable-multibyte --with-tlib=ncurses --enable-cscope --with-compiledby=Homebrew --enable-luainterp --enable-perlinterp --enable-pythoninterp --enable-
==> make
==> make install prefix=/usr/local/Cellar/vim/8.0.0041 STRIP=/usr/bin/true

分类:

技术点:

相关文章: