vim 个性化配置二

由于之前对vim做了一些简单的配置, 很多东西没有想起来, 就一直没有配置. 在后面的实际有vim写代码的时候发现了很多问题, 现在进行了一些配置的更新和以前错误配置的更改.-->之前的文章
这篇文章是专门针对vim配置的更改, sublime和vscode的vim插件配置和之前一样, 实际使用过程中没有出现什么问题. vim 编辑器的实际配置见文章最后.
直接将以下代码复制进~/.vimrc文件中就好

  • 更新了备份文件无法创建成功的问题, 解决了E510的问题, 使用vim之前现在对应目录下创建好备份文件夹, 检查是否分配了相应的权限.
  • 配置了文件最后退出时光标停留的位置, 在新打开文件时,光标依旧停留在相应的位置
  • 解决了E303 交换文件打不开的问题
  • 配置了一些简单快捷键的补全
  • 配置了F5快捷键的运行脚本, 直接在命令模式下按F5就可以直接运行脚本.
  • 配置了当前行的高亮设置

其他还有一些小更新, 由于装了插件的vim有的时候打开文件会变慢一点, 主要是逼着自己独立写代码, 能不上插件就不上. 等实际开发之后如果需要插件的话, 会再次更新vim, 配上插件的相关配置, 目前使用还没有出现其他问题.

如果想在全局下配置vim的话, 可以直接编辑~/usr/share/vim/vimrc文件, 将配置写入进去, 一般情况下在用户目录下配置就好, 如果对系统配置的话, 可以会引起很多问题, 建议不要更改系统配置, 直接在用户目录下配置就好.

" =============================================================
"                           编辑设置
" =============================================================

" 显示行号
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
" 是否显示状态栏, 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是可以自动创建一个备份文件. 如果写入失败会提示E510:Can't make back up file(add ! to override)'
" 提示为 vim 不能够创建备份文件, 可能原因1. vim备份的目录是否存在, vim不会自动创建备份目录 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

" 出错的时候不要发出声响
set noerrorbells

" vim需要记住多少次操作
set history=1000

" 打开文件监视器,
" 如果在编辑的过程中发生外部改变(比如被其他编辑器编辑)会发出提示
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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容