由于之前對vim做了一些簡單的配置, 很多東西沒有想起來, 就一直沒有配置. 在后面的實際有vim寫代碼的時候發(fā)現(xiàn)了很多問題, 現(xiàn)在進行了一些配置的更新和以前錯誤配置的更改.-->之前的文章
這篇文章是專門針對vim配置的更改, sublime和vscode的vim插件配置和之前一樣, 實際使用過程中沒有出現(xiàn)什么問題. vim 編輯器的實際配置見文章最后.
直接將以下代碼復制進~/.vimrc文件中就好
- 更新了備份文件無法創(chuàng)建成功的問題, 解決了E510的問題, 使用vim之前現(xiàn)在對應目錄下創(chuàng)建好備份文件夾, 檢查是否分配了相應的權限.
- 配置了文件最后退出時光標停留的位置, 在新打開文件時,光標依舊停留在相應的位置
- 解決了E303 交換文件打不開的問題
- 配置了一些簡單快捷鍵的補全
- 配置了F5快捷鍵的運行腳本, 直接在命令模式下按F5就可以直接運行腳本.
- 配置了當前行的高亮設置
其他還有一些小更新, 由于裝了插件的vim有的時候打開文件會變慢一點, 主要是逼著自己獨立寫代碼, 能不上插件就不上. 等實際開發(fā)之后如果需要插件的話, 會再次更新vim, 配上插件的相關配置, 目前使用還沒有出現(xiàn)其他問題.
如果想在全局下配置vim的話, 可以直接編輯~/usr/share/vim/vimrc文件, 將配置寫入進去, 一般情況下在用戶目錄下配置就好, 如果對系統(tǒng)配置的話, 可以會引起很多問題, 建議不要更改系統(tǒng)配置, 直接在用戶目錄下配置就好.
" =============================================================
" 編輯設置
" =============================================================
" 顯示行號
set number
" esc映射到jj
:imap jj <Esc>
" 允許鼠標的使用
set mouse=a
" 記錄光標的位置, 打開同一文件時, 光標停留在上一次的位置
augroup resCur
autocmd!
autocmd BufReadPost * call setpos(".", getpos("'\""))
augroup END
" 語法高亮
syntax on
" 顏色方案
" colorscheme desert
colorscheme peachpuff
" colorscheme molokai
" colorscheme ron
" colorscheme default
" colorscheme delek
" 設置匹配模式, 類似當輸入一個左括號時會匹配相應的右括號
set showmatch
" 文件類型檢測
filetype indent on
" 空格縮進
" 按一次前進4個字符
set tabstop=4
" 設置多行縮進時用
set shiftwidth=4
" 用空格代替tab
set softtabstop=4
" 自動縮進,即為新行自動添加與當前行同等縮進
" set autoindent
" 基于autoindent的一些改進
" set smartindent
" 開啟之后將輸入的tab自動展開成空格, 開啟后要輸入tab, 需要ctrl-V<tab>"
set expandtab
" 顯示標尺
set ruler
" 自動保存
set autowrite
" 光標移動到buffer的頂部和底部時保持2行距離
set scrolloff=2
" =================================================
" 鍵盤映射
" =================================================
" 映射全選+ 復制 ctrl + a
map <C-a> ggVGY
map! <C-a> ggVGY
map <F12> gg=G
" ==================================================
" 高亮當前行
" ==================================================
" 淺色高亮當前行
" 結束插入模式高亮當前行取消
" autocmd InsertLeave * se nocul
" 只有進入文本之后開啟插入模式才能高亮當前行
" autocmd InsertEnter * se cul
" 直接設置高亮當前行
set cursorline
" 以長條形狀高亮當前行
hi cursorline cterm=NONE ctermbg=darkred ctermfg=white
" hi cursorline cterm=NONE ctermbg=blue ctermfg=NONE guibg=NONE guifg=NONE
" ===================================================
" 快捷鍵設置
" ===================================================
" 自動補全
inoremap ' ''<Esc>i
inoremap " ""<Esc>i
inoremap ( ()<Esc>i
inoremap [ []<Esc>i
inoremap { {}<Esc>i
inoremap < <><Esc>i
" 編輯模式下快速移動
inoremap <C-l> <Right>
inoremap <C-h> <Left>
inoremap <C-k> <Up>
inoremap <C-j> <Down>
inoremap <C-b> <PageDown>
inoremap <C-f> <PageUp>
" 插入模式下和普通模式下保存快捷鍵
nnoremap <C-d> :wq<CR>
inoremap <C-d> <Esc>:wq<CR>i
" 插入模式下移動快捷鍵
" 插入模式下移動到行首
inoremap <C-u> <Home>
" 插入模式下移動到行尾
inoremap <C-o> <End>
" 插入模式下代碼提示
inoremap <leader>i <C-x><C-l>
inoremap <leader>o <C-x><C-o>
inoremap <leader>o <C-x><C-o>
inoremap <leader>o <C-x><C-o>
" 否則無法使用退格鍵
set backspace=indent,eol,start
" ===============================================
" 多窗口管理
" ===============================================
" 顯示光標所在行相對與其他行的行號
" set relativenumber
" 是否顯示狀態(tài)欄, 0 不顯示, 1 只在多窗口顯示, 2顯示
set laststatus=2
set statusline=%F%m%r%h%w\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
" ================================================
" 搜索設置
" ================================================
" 搜索時, 高亮顯示匹配結果
set hlsearch
" 大小寫銘感設置
" 設置默認進行大小寫不敏感查找, 如果不設置則/foo\c來大小寫不敏感查找, \C敏感查找
set ignorecase
" 如果有一個大寫字母, 則切換到大小寫敏感查找
set smartcase
" ================================================
" 編輯設置
" ================================================
" 設置自動換行
"
" 保留操作歷史
set undofile
set backup
set swapfile
" 備份文件,交換文件,操作歷史保存位置
" 結尾的//表示生成的文件名帶有絕對路徑,
" 路徑中用%代替目錄分割符,防止文件重命名
" 在vim 修改一個文件時, vim是可以自動創(chuàng)建一個備份文件. 如果寫入失敗會提示E510:Can't make back up file(add ! to override)'
" 提示為 vim 不能夠創(chuàng)建備份文件, 可能原因1. vim備份的目錄是否存在, vim不會自動創(chuàng)建備份目錄 2. 備份目錄是否有讀寫的權限
" :verbose set backupdir 查看備份信息
" 顯示自動備份的目錄 backupdir=~/.vim/.backup/ Last set from ~/.vimrc
set backupdir=~/.vim/.backup//
set directory=~/.vim/.swp//
set undodir=~/.vim/.undo//
" gvim e303 無法打開[文件名]的交換文件, 恢復將不可能
" 解決辦法: 修改.vimrc, 增加下面一行. 因為默認為directory=.,c:\tmp,c:\temp
set directory=.,$TEMP
" 自動切換目錄, 這主要用在一個vim會話之中打開多個文件的情況,
" 默認的工作目錄是打開第一個文件的目錄
" 該配置可以將工作目錄自動切換到, 正在編輯的文件的目錄
set autochdir
" 出錯的時候不要發(fā)出聲響
set noerrorbells
" vim需要記住多少次操作
set history=1000
" 打開文件監(jiān)視器,
" 如果在編輯的過程中發(fā)生外部改變(比如被其他編輯器編輯)會發(fā)出提示
set autoread
" 命令模式下, 底部指令按下tab鍵自動補全
" 第一次按下tab 會顯示所有匹配的操作指令清單,第二次按下會依次選擇各個指令
set wildmenu
set wildmode=longest:list,full
set nocompatible
" ==================================================
" 個性腳本設置
" ==================================================
" py文件設置
func SetTitle()
call setline(1, "\#!/usr/bin/python3")
call setline(2, "\# -*- coding=utf8 -*-")
call setline(3, "\"\"\"")
call setline(4, "\# @Author : pig")
call setline(5, "\# @CreatedTime:".strftime("%Y-%m-%d %H:%M:%S"))
call setline(6, "\# @Description : ")
call setline(7, "\"\"\"")
normal G
normal o
normal o
endfunc
autocmd bufnewfile *.py call SetTitle()
" sh文件設置
func Setsh()
call setline(1, "\#!/bin/bash")
" call setline(2, "\# @Author : pig")
" call setline(3, "\# @CreatedTime:".strftime("%Y-%m-%d %H:%M:%S"))
" call setline(4, "\# @Description : ")
normal G
normal o
normal o
endfunc
autocmd bufnewfile *.sh call Setsh()
" ==================================================
" 快捷鍵運行腳本
" ==================================================
" <F5>運行python3腳本
map <F5> :call RunPython()<CR>
func! RunPython()
exec "W"
if &filetype == 'python'
exec "!time python3 %"
endif
endfunc