Ubuntu 18.04/Mac下vim配置

世界上编辑器只有vim和其他…

vim编辑神器,有多强就不用多说了,基本的vim操作就已经很牛掰了。
带插件的vim更不用说了…
下面是我配置的供python编辑器(go/java/c/html…也毫无压力)
先说一下功能

  • 目录树
  • buffer
  • 代码跳转
  • 自动补全
  • 一键运行
  • 全局搜索
  • 快速编辑
  • 代码纠错

首先下载vim8.0+版本

sudo add-apt-repository ppa:jonathonf/vim
sudo apt update
sudo apt install vim

查看vim是否正确安装, 键入vim如果能正常进入就OK
在这里插入图片描述
然后配置vim, 打开~/.vimrc

vim ~/.vimrc

然后一下复制进去(手输入也行,只要你受得了), 每一行都是我自己配的啊,辛苦)

set nocompatible
filetype off
set rtp+=~/.vim/bundle/vundle/
let Tlist_Ctags_Cmd='/usr/local/bin/ctags'

call vundle#begin()

Plugin 'VundleVim/Vundle.vim'
Plugin 'davidhalter/jedi-vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'Lokaltog/vim-powerline'
Plugin 'scrooloose/nerdtree'            "<Leader>2
Plugin 'jiangmiao/auto-pairs'        
Plugin 'kien/ctrlp.vim'                 "ctrl+p
Plugin 'w0rp/ale'                       "\s
Plugin 'tell-k/vim-autopep8'            "<Leader>8
Plugin 'vim-scripts/taglist.vim'        "<Leader>3
Plugin 'SimpylFold'                     "<Leader>tab
Plugin 'mattn/emmet-vim'
Plugin 'altercation/vim-colors-solarized'

call vundle#end()
filetype plugin indent on

"aotopep8
let g:autopep8_disable_show_diff=1
autocmd FileType python noremap <buffer> <Leader>8 :call Autopep8()<CR>

"YCM
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf=0
set completeopt=longest,menu
let g:ycm_path_to_python_interpreter='/usr/bin/python'
let g:ycm_seed_identifiers_with_syntax=1
let g:ycm_complete_in_comments=1
let g:ycm_collect_identifiers_from_comments_and_strings = 0
let g:ycm_min_num_of_chars_for_completion=2
let g:ycm_autoclose_preview_window_after_completion=1
let g:ycm_cache_omnifunc=0
let g:ycm_complete_in_strings = 1
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
inoremap <expr> <Down>     pumvisible() ? '\<C-n>' : '\<Down>'
inoremap <expr> <Up>       pumvisible() ? '\<C-p>' : '\<Up>'
inoremap <expr> <PageDown> pumvisible() ? '\<PageDown>\<C-p>\<C-n>' : '\<PageDown>'
inoremap <expr> <PageUp>   pumvisible() ? '\<PageUp>\<C-p>\<C-n>' : '\<PageUp>'
			
"Neadtree
map <Leader>2 :NERDTreeToggle<CR>
let NERDTreeChDirMode=1
let NERDTreeShowBookmarks=1
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
let NERDTreeWinSize=25
			
"taglist
map <silent> <Leader>3 :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

"ctrlp
let g:ctrlp_max_height = 6
set wildignore+=*.pyc
set wildignore+=*_build/*
set wildignore+=*/coverage/*

"Powerline
set t_Co=256

"ale
let g:ale_sign_column_always = 1
let g:ale_set_highlights = 0
let g:ale_lint_on_text_changed = 'never'
let g:ale_lint_on_enter = 0
let g:ale_sign_error = '○'
let g:ale_sign_warning = '○'
let g:ale_sign_infos = '△'
highlight ALEWarningSign ctermbg=None ctermfg=Yellow
highlight ALEErrorSign ctermbg=None ctermfg=Red
highlight ALEInfoSign ctermbg=None
let g:ale_statusline_format = ['✗ %d', '⚡%d', '✔ OK']
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
nmap <Leader>ep <Plug>(ale_previous_wrap)
nmap <Leader>en <Plug>(ale_next_wrap)
nmap <Leader>s :ALEToggle<CR>
nmap <Leader>d :ALEDetail<CR>


"Emmet
let g:user_emmet_leader_key='<C-M>'
"let g:user_emmet_install_global = 0
"autocmd FileType html,css EmmetInstall

"BufExplorer
nnoremap <Leader>b :ToggleBufExplorer<CR>
nnoremap <Leader>B :BufExplorer<CR>
nnoremap <Leader>V :BufExplorerHorizontalSplit<CR>
nnoremap <Leader>v :BufExplorerVerticalSplit<CR>

set nu
syntax enable
set ruler
set background=dark
colorscheme solarized
let g:pymode_syntax_all = 1
let g:pymode_syntax_highlight_self = g:pymode_syntax_all
let python_highlight_all = 1
set guioptions-=r 
set guioptions-=L
set guioptions-=b
map <c-j> <c-w>j
map <c-k> <c-w>k
map <c-l> <c-w>l
map <c-h> <c-w>h

set showtabline=0
set filetype=python

au BufNewFile,BufRead *.py,*.pyw setf python 
set nowrap      
"set textwidth=79
set tabstop=4    
set shiftwidth=4       
set fileformat=unix
set showmatch    
set scrolloff=5        
set laststatus=2   
set fenc=utf-8      
set backspace=2

set mouse=a       
set selection=exclusive
set selectmode=mouse,key

set matchtime=5
set ignorecase        
set incsearch
set hlsearch    
set noexpandtab  
set whichwrap+=<,>,h,l
set autoread

set foldmethod=indent
set foldlevel=99
nnoremap <Leader>	za
vnoremap <Leader>	zf

highlight Pmenu    ctermbg=None  ctermfg=None
highlight PmenuSel ctermbg=blue ctermfg=None
highlight SignColumn ctermbg=None
highlight LineNr ctermbg=None ctermfg=red

map <Leader>1 :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 python %"
elseif &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

装git, 这个百度一下,地球人都知道
然后下载bundle管理器

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

然后就可以利用bundle安装插件了
进入vim

vim

然后键入一下命令

:BundleList         (查看插件列表)
:BundleInstall      (安装插件)

其中YouCompleteMe (自动补全神器)需要编译,这里 https://valloric.github.io/YouCompleteMe/ 给你指导,只有编译成功才能用这个插件

最后效果图在这里插入图片描述
bufexplorer插件在 https://www.vim.org/scripts/script.php?script_id=42 里,需要手动下载并解压放到~/.vim里(doc文件夹和plugin文件夹)
ctags(代码跳转)要先在目录里运行ctags -R *生成搜索树
如果没有安装ctags, 运行如下安装

sudo apt-get install ctags

最后说下快捷键, 这些在配置文件里都有
ctrl + p 全局搜索文件
\ + 2 目录树
\ + 1 一键运行
\ + b buffer explorer
\ + 3 taglist
ctrl + ] 代码跳转前进
ctrl + t 代码跳转后退
ctrl + m html快速编辑

最终还是用上了工程级别的编辑器哈哈哈哈哈

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值