跳转到内容

Vim配置

无插件的.vimrc,只有主题需要额外下载配置。

""""""必需的设置 vim最小化配置
set nocompatible " 不兼容vi
filetype plugin indent on " 激活Vim内置文件类型插件 一般还会加indent启用根据文件类型缩进
syntax on " 语法高亮

""""""复制粘贴 剪切板 解释与配置
"vim --version | grep clipboard
"+clipboard  代表支持与系统剪切板交互,-代表不支持。
"unnamed 代表*寄存器,unnamedplus 代表+寄存器。在 mac 系统中,两者都一样。
"linux系统中+和*是不同的,通过快捷键<C+c>复制的只会覆盖"*寄存器,但通过鼠标右键复制的,
"会同时覆盖"*和"+寄存器。虚拟机里,寄存器"+直接跟宿主机的剪切板映射,"*只能映射到虚拟机。
"综上,使用寄存器"+才可以同时打通宿主机和虚拟机和vim,而且是双向打通。
set clipboard^=unnamed,unnamedplus       " 寄存器*与+ :reg可查看寄存器里的内容

""""""快捷键映射
let mapleader=";"       " 默认是\ 例如格式化代码是\p
set timeoutlen=1500     " leader按键最迟1.5秒不按下一个就失效
"""普通模式下的键盘映射
nnoremap <Leader><Leader> "+     " 剪切板 使用: yy;;
nnoremap <tab> <C-w>w            " 分屏之间切换
nnoremap <Leader>r <C-r>         " redo 重做,即撤销u的反面
nnoremap <Leader>d <C-d>         " 向下半页
nnoremap <Leader>u <C-u>         " 向上半页
nnoremap <Leader>f <C-f>         " 向前一页
nnoremap <Leader>b <C-b>         " 退后一页

""""""设置空格 制表符宽度
"如需统一空格与tab,命令:retab 可以把空格转换成tab或者tab转成空格
"set noexpandtab   " 制表符不自动转换成空格
set expandtab      " 新输入的tab自动转换成空格 之前的tab转换成空格 使用:retab命令
set tabstop=4      " 制表符宽度 默认8
set softtabstop=4
set shiftwidth=4
set autoindent     " 开始新行时处理缩进 沿用上一行缩进
set list listchars=tab:▸\                    " 只显示tab
"set list listchars=tab:▸\ ,trail:•,eol:¬    " 显示制表符 行尾空格 回车

""""""文件相关配置 撤销 备份 重载等
set undofile
" 硬编码 如果undodir目录不存在,须先创建
set undodir=~/.vim/undodir
if !isdirectory(&undodir)
    call mkdir(&undodir, 'p', 0700)
endif
set noswapfile      " 不生成交换文件.filename.swp  配合undofile
set autoread        " 从磁盘自动重载文件
set nobackup        " 不生成备份文件filename~  默认就是关闭的
set wildmenu        " 增强命令行补全功能  展示match的文件列表
set path+=**        " 递归查找子文件
set encoding=utf-8  " 文件默认编码
set fileencodings=utf-8,gb18030,latin1

""""""主题与字体
if (has('termguicolors'))
    set termguicolors
endif
" 硬编码 ~/.vim/colors需要先存在主题 下载后复制到~/.vim/colors
" https://github.com/chriskempson/tomorrow-theme
colorscheme Tomorrow-Night-Bright
set t_Co=256

""""""其他配置
set sidescroll=1        " 更平滑的侧边滚动条
set laststatus=2        " 总是显示状态栏
set backspace=2         " insert模式下用退格键删除 现代编辑器的退格键行为
set history=10000       " 最大的历史记录数
set number              " 显示行数
set ruler               " 显示尺度信息 (在右下部位显示行、列和百分位)
set cursorline          " 高亮光标所在行
set noerrorbells        " 不让vim发出讨厌的滴滴声
"set hlsearch            " 可以用:noh 命令清除高亮显示 如果主题颜色异常需要关闭
set incsearch           " 搜索时 边输入边搜索、并移动光标
set textwidth=80       " 设置文本宽度
set colorcolumn=80     " 在第N列显示一个竖线
set wrap                " 设置自动换行
set linebreak           " 设置单词边界换行