世界上编辑器只有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快速编辑
…