Linux VIM8.1 Python3 編輯器配置文件

Linux VIM8.1 Python3 編輯器配置文件python

實現功能:git

  • 自動補全(包括函數模塊方法補全)
  • 自動代碼標準格式化
  • 自動檢查代碼錯誤
  • 自定義頭文件
  • 自動括號補全
  • 縮進指示線
  • 代碼一鍵摺疊
  • 代碼一鍵執行
  • 圖形化斷點調試
  • 分屏終端導入調試
  • 分屏目錄窗口
  • 美化主題窗口欄位
  • 指向查找目錄文件
  • 終端瀏覽器

.vimrc 配置文件:vim

""""""""""""""""""""""""""""""""""""""""""""""""""""
"
"                   - kevin -                         
"
"---------------------簡單配置------------------------
set nocompatible       "關閉與vi的兼容模式
set number             "顯示行號
set nowrap             "不自動折行
set showmatch          "顯示匹配的括號
set scrolloff=3        "距離頂部和底部3行"
set encoding=utf-8     "編碼
set fenc=utf-8         "編碼
"set mouse=a            "啓用鼠標
set hlsearch           "搜索高亮
syntax on              "語法高亮
set backspace=indent,eol,start "啓動刪除設置"

"-------------------------Debugger調試器F1----------------------------

let g:sendtorepl_invoke_key = "f"           "傳送代碼快捷鍵,默認爲<leader>w
let g:repl_position = 0                     "0表示出如今下方,1表示出如今上方,2在左邊,3在右邊
let g:repl_stayatrepl_when_open = 0         "打開REPL時是回到原文件(1)仍是停留在REPL窗口中(0
let g:repl_checkpoint_position = '~/.temp/'
let g:repl_auto_sends = ['class ', 'def ']
let g:repl_cursor_down = 1

let g:repl_program = {
    \    "python": "python3",
    \    "default": "bash"
    \    }        

let g:repl_exit_commands = {
            \    "python": "quit()",
            \    "bash": "exit",
            \    "zsh": "exit",
            \    "default": "exit",
            \    }

"------------爲py文件添加支持pep8風格的配置-------------
au BufNewFile,BufRead *.py
\ set tabstop=4        "tab寬度
\ set softtabstop=4 
\ set shiftwidth=4  
\ set textwidth=79     "行最大寬度
\ set expandtab        "tab替換爲空格鍵
\ set autoindent       "自動縮進
\ set fileformat=unix  "保存文件格式

"-------分隔窗口將新窗口再右邊或者下方打開,添加配置-----
set splitbelow
set splitright

"分割窗口參數
":vs  或者 :vsplit  將當前窗口豎直分割,並在上面新窗口中顯示當前文件
":vs filename 將當前窗口豎直分割,新文件在新窗口中顯示
":sp 或者:sv或者:split  將當前窗口水平分割,並在左邊新窗口中顯示當前文件
":sp filename 將當前窗口豎直分割,新文件在左邊新窗口中顯示
":new 新建文件並豎直分割
":vnew 新建文件並水平分割

"--------------添加頭文件信息-------------------
function HeaderPython()
    call setline(1, "#!/usr/bin/env python")
    call append(1, "# -*- coding: utf-8 -*-")
    call append(2, "# @Time: " . strftime('%Y-%m-%d %T', localtime()))
    call append(3, "# @Author: xiangsikai")
    call append(4, "# #############  調試器  ############## #")
    call append(5, "# from pudb import set_trace;set_trace()#")

    normal G
    normal o
    normal o
endf
autocmd bufnewfile *.py call HeaderPython()

"--------------代碼摺疊配置-----------------------
set foldmethod=indent
set foldlevel=99

"使用zc按鍵來建立摺疊,使用za來打開或者關閉摺疊。
"za常常會誤輸入,空格快捷鍵來替代za:
nnoremap <space> za

"--------------一鍵執行python代碼配置--------------
"按 F4 執行代碼
map <F4> :call RunPython()<CR>
func! RunPython()
    exec "W"
    if &filetype == 'python'
        exec "!time python3 %"
    endif
endfunc

"-----------------Vundle 插件----------------------
set nocompatible              " be iMproved, required
filetype off                  " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"--------------------------------------------------
"      使用:PluginInstall下載下面的插件
"--------------------------------------------------
"
"  其餘:經常使用命令 ↓
"
"  :PluginList         - 列表配置插件
"  :PluginInstall      - 裝的插件;添加」!「
"  :PluginUpdate       - 更新
"  :PluginSearch foo   - 搜索foo;添加」!來刷新本地緩存
"  :PluginClean        - 確認移除未使用的插件;添加」!」
"
"-----let Vundle manage Vundle, required-----------
Plugin 'VundleVim/Vundle.vim'

"Debugger調試器F1
Plugin 'sillybun/vim-repl'
autocmd FileType python map <buffer> <F1> :REPLToggle<CR>

"YCM自動補全
Plugin 'Valloric/YouCompleteMe'

"vim8自動補全插件
Plugin 'maralla/completor.vim'
let g:completor_python_binary = '/usr/bin/python3'

"vim8自動縮進插件
Plugin 'vim-scripts/indentpython.vim' 

"vim8語法檢查插件
Plugin 'vim-syntastic/syntastic'
"vim8添加flake8代碼風格檢查
Plugin 'nvie/vim-flake8'
" F2啓用代碼檢查
autocmd FileType python map <buffer> <F2> :call Flake8()<CR>
"保存文件時顯示錯誤
"autocmd BufWritePost *.py call flake8#Flake8()

"配色方案1 vundle下載
Plugin 'altercation/vim-colors-solarized'
"light or dark 兩種配色主題
syntax enable
set background=light

"樹形目錄
Plugin 'scrooloose/nerdtree'
"樹形目錄快捷鍵 ctrl + n
map <C-n> :NERDTreeToggle<CR>
"設置忽略文件
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
"爲nerdtree添加git支持
Plugin 'Xuyuanp/nerdtree-git-plugin'
"若是你想用tab鍵
Plugin 'jistr/vim-nerdtree-tabs'

"美化欄
Plugin 'Lokaltog/vim-powerline'

"縮進指示線  | 開關:IndentLinesToggle
Plugin 'Yggdroot/indentLine'

"自動格式化工具 | 運行:Autopep8 |效果自動一招pep8標準自動格式化代碼
Plugin 'tell-k/vim-autopep8'
"設置快捷鍵F3代替:Autopep8
autocmd FileType python noremap <buffer> <F3> :call Autopep8()<CR>

"自動補全括號引號等
Plugin 'jiangmiao/auto-pairs'

"搜索插件 | ctrl+p 而後輸入你要尋找的文件就好了
Plugin 'kien/ctrlp.vim'

"搜索引擎使用了 the_silver_searcher 
"使用:Ag [options] {pattern} [{directory}]
Plugin 'rking/ag.vim'

"git集成插件 | vim內運行git命令
Plugin 'tpope/vim-fugitive'

"其餘模塊
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'derekwyatt/vim-fswitch'
Plugin 'vim-scripts/a.vim'
Plugin 'kshenoy/vim-signature'
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/indexer.tar.gz'
Plugin 'vim-scripts/DfrankUtil'
Plugin 'vim-scripts/vimprj'
Plugin 'dyng/ctrlsf.vim'
Plugin 'vim-scripts/DrawIt'
Plugin 'SirVer/ultisnips'
Plugin 'rdnetto/YCM-Generator'
Plugin 'derekwyatt/vim-protodef'
"Plugin 'gcmt/wildfire.vim'  "視圖模式多選
Plugin 'sjl/gundo.vim'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'suan/vim-instant-markdown'
Plugin 'qpkorr/vim-bufkill'
Plugin 'skywind3000/asyncrun.vim'

"--------------------------------------------
call vundle#end()            " required
filetype plugin indent on    " required
"--------------------------------------------
相關文章
相關標籤/搜索