我的gvim配置
set nocompatible " 关闭vi兼容
" 显示相关
set go=
set number
set cursorline
set nowrap
set nofixendofline
set hlsearch
set wildmenu
" 主题相关
syn on
colorscheme desert
" 编码相关
set fencs=utf-8,gbk,gb2312
set encoding=utf-8
set fileencoding=utf-8
" 关闭临时文件
set nobackup
set noundofile
set noswapfile
" 缩进相关
set autoindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set smarttab
" 字体相关
set guifont=Consolas:h16
set guifontwide=楷体:h16
" 状态栏相关
set laststatus=2
set statusline=Filetype:%Y Hex:0x%B Position:(%l,%c) Progress:(%o,%p%%) Total:%L lines
filetype plugin indent on " 打开文件类型探测
" 按键相关
set keymodel=startsel,stopsel
set backspace=indent,eol,start
nmap j gj
nmap k gk
func Run()
exec 'w'
if &filetype == 'cpp' || &filetype == 'c'
exec '! clang % -Wall -o %<.exe'
exec 'silent ! start cmd /C "%<.exe & pause"'
endif
if &filetype == 'python'
exec 'silent ! start cmd /C "python % & pause"'
endif
if &filetype == 'haskell'
exec 'silent ! start cmd /C "ghci % & pause"'
endif
endfunc
map <C-F5> :call Run() <CR>
一些总结
-
={motion}[number]==缩进 -
:sm:snomagic和nomagic模式下的替换 -
替换标识:
c逐个确认i忽略大小写n只包括有多少个匹配,不实际替换
-
:[range]ret规范制表符 -
:[range]ce [width]:[range]ri [width]:[range]le [indent]居中,右对齐和左对齐,width为列宽,indent为缩进空格数 -
[range]sor[!] [f][i][n][/{pattern}]对range里的内容排序:!表示降序f按行中第一个浮点数大小排n按行中第一个整数大小排i忽略大小写/{pattern}按匹配的元素排
-
zf{motion}[number]zF创建折行 -
zdzD删除光标下的折行,后者为递归 -
zozO打开光标下的折行,后者为递归 -
zczC收起光标下的折行,后者为递归 -
gdgD跳到定义,前者为函数内,后者为全文件 -
gJ下一行合并到当前行,不插入空格 -
:noh关闭搜索出来的高亮 -
Ctrl-OCtrl-I到达上一次/下一次跳转的地方 -
g;g,到达上一次/下一次修改的地方 -
:set cc(colorcolumn)=number让第number列高亮 -
set lsp(linespace)=number调节行距 -
set noar/ar(noautoread/autoread)设置当前文件被外部改动时是否加载 -
set sh(shell)=shellpath设置使用的命令行程序 -
:opt(options)展示所有的set设置 -
z{number}<Cr>将当前编辑区的高度设置为number -
Ctrl-w{number}|将当前编辑区的宽度设置为number -
Ctrl-w</>/-/+缩小/放大当前编辑区的宽度/缩小/放大当前编辑器的高度 -
:[vertical] res [+|-][number]将当前编辑区的宽度/高度缩小/放大/设为number