對vim的簡單配置

花了點時間研究了強(zhuang)大(bi)的編輯器vim,簡單的配置了一下,并記錄下心得。不過這只是學習的開始,想要打造真正屬于自己的編輯器還得不斷學習。

安裝

珍愛生命,遠離折騰。

首先從安裝開始,ubuntu系統應該都會帶有vim,如果沒有,就輸入以下命令安裝:

sudo apt-get install vim-gtk

ubuntu安裝一向很簡單。安裝好vim就證明你馬上就要入坑了!

命令行輸入vim,最初的界面是這樣的:

原始界面

配置完成的界面是這樣的:

配置后界面

快捷鍵

vim的高效之處在于可以脫離鼠標,使用鍵盤操作一切。對熟練掌握vim的程序員來說,減少鼠標的使用會節省大量的時間,提高效率。

vimrc

Github地址:https://github.com/alpha87/vimrc

這是最初的配置文件,配置比較簡陋,但是寫一些簡單的代碼足夠了。

命令行輸入:

sudo vim ~/.vimrc

即可打開配置文件,編輯:

" AlPha-vim-config
" http://alpha87.cn
" 最新配置見 github

" 非vi
""""""""""""""""""""
set nocompatible

" 中文幫助
""""""""""""""""""""
set helplang=cn

" 查找時自動跳轉
""""""""""""""""""""
set incsearch

" 查找不區分大小寫
"""""""""""""""""""
set ignorecase

" 代碼縮進
""""""""""""""""""""
set tabstop=4
set softtabstop=4
set shiftwidth=4
set textwidth=79
set expandtab
set autoindent
set fileformat=unix

" 系統剪貼板
""""""""""""""""""""
set clipboard=unnamed

" 修改編碼
""""""""""""""""""""
set encoding=utf-8

"關閉代碼折疊
""""""""""""""""""""
set nofoldenable

" 修改配色
""""""""""""""""""""
colorscheme elflord

" 顯示行號
""""""""""""""""""""
set number

" 突出顯示當前欄
""""""""""""""""""""
map <leader>c :set cursorline!<cr>
set cursorline

" 隱藏滾動條
""""""""""""""""""""
set guioptions-=r
set guioptions-=L
set guioptions-=b

" 語法高亮
""""""""""""""""""""
syntax on
set hlsearch
let python_highlight_all = 1
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

" Vundle 插件管理
""""""""""""""""""""
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Bundle 'Raimondi/delimitMate'
Bundle 'kien/rainbow_parentheses.vim'
Bundle 'Lokaltog/vim-powerline'
Plugin 'scrooloose/nerdtree'
Plugin 'Yggdroot/indentLine'
Plugin 'Valloric/YouCompleteMe'
Bundle "klen/python-mode"
Bundle 'nvie/vim-flake8'
Bundle 'bronson/vim-trailing-whitespace'
Bundle 'hdima/python-syntax'
Bundle 'kien/ctrlp.vim'
call vundle#end()
filetype plugin indent on

" 文件搜索
"""""""""""""""""""
" 打開ctrlp搜索
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
" 相當于mru功能,show recently opened files
map <leader>fp :CtrlPMRU<CR>
"set wildignore+=*/tmp/*,*.so,*.swp,*.zip     " MacOSX/Linux"
let g:ctrlp_custom_ignore = {
    \ 'dir':  '\v[\/]\.(git|hg|svn|rvm)$',
    \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz)$',
    \ }
"\ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
let g:ctrlp_working_path_mode=0
let g:ctrlp_match_window_bottom=1
let g:ctrlp_max_height=15
let g:ctrlp_match_window_reversed=0
let g:ctrlp_mruf_max=500
let g:ctrlp_follow_symlinks=1

" 狀態欄
"""""""""""""""""""
let g:Powerline_symbols = 'unicode'

" 標志無效空格
"""""""""""""""""""
map <leader><space> :FixWhitespace<cr>
" \+space去掉末尾空格

" 縮進指示線 indentLine
"""""""""""""""""""
map <leader>i :IndentLinesToggle<cr>
" \+i 關閉縮進指示線,再按開啟
let g:indentLine_char = '┆'
let g:indentLine_enabled = 1

" 目錄樹 nerdtree F2開啟和關閉樹"
"""""""""""""""""""
map <F2> :NERDTreeToggle<CR>
let NERDTreeChDirMode=1
" 顯示書簽"
let NERDTreeShowBookmarks=1
" 設置忽略文件類型"
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
" 窗口大小"
let NERDTreeWinSize=25

" YCM
"""""""""""""""""":
" 默認配置文件路徑"
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
" 打開vim時不再詢問是否加載ycm_extra_conf.py配置"
let g:ycm_confirm_extra_conf=0
set completeopt=longest,menu
" python解釋器路徑 \+r 運行程序
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=1
" 補全后自動關機預覽窗口"
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>'

" 括號匹配高亮
"""""""""""""""""
let g:rbpt_colorpairs = [
    \ ['brown',       'RoyalBlue3'],
    \ ['Darkblue',    'SeaGreen3'],
    \ ['darkgray',    'DarkOrchid3'],
    \ ['darkgreen',   'firebrick3'],
    \ ['darkcyan',    'RoyalBlue3'],
    \ ['darkred',     'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['brown',       'firebrick3'],
    \ ['gray',        'RoyalBlue3'],
    \ ['black',       'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['Darkblue',    'firebrick3'],
    \ ['darkgreen',   'RoyalBlue3'],
    \ ['darkcyan',    'SeaGreen3'],
    \ ['darkred',     'DarkOrchid3'],
    \ ['red',         'firebrick3'],
    \ ]
let g:rbpt_max = 40
let g:rbpt_loadcmd_toggle = 0

" 括號自動補全
""""""""""""""""""
au FileType python let b:delimitMate_nesting_quotes = ['"']

這份配置文件只涉及到比較基礎的功能,代碼提示,快速運行,編碼縮進等。需要注意的是代碼提示在導入模塊的時候不會提示,但是在之后的使用過程中會提示。這也有利于你記住導入包的名字啊,拋開pycharm,讓你真正寫代碼的時候發現模塊都不會拼寫,多尷尬!

多行注釋及取消注釋

多行注釋:

  1. 進入命令行模式,按ctrl + v進入 -visual block- 模式,選中多行,把需要注釋的行標記起來;

  2. 按大寫字母I,再插入注釋符,例如 #;

  3. esc鍵(等1秒鐘后)全部注釋。

取消多行注釋:

  1. 進入命令行模式,按ctrl + v進入 -visual block- 模式,選中列的個數;

  2. 按字母j,或者k選中注釋符號;

  3. d鍵就可全部取消注釋。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容