1. 我的vim配置
set go= "去掉ui界面
set nocompatible "关闭UI兼容模式
colorscheme desert "配色方案
set fencs=utf-8,gbk,gb2312
set encoding=utf-8
set fileencoding=utf-8 "文件编码
set nobackup
set noundofile
set noswapfile "不要临时文件
set cursorline "高亮当前行
set autoindent "自动缩进
set tabstop=4
set softtabstop=4
set expandtab
set smarttab "4个空格代替Tab
set shiftwidth=4 "缩进4格
set number "设置行号
set guifont=Consolas:h16:cANSI "字体
set laststatus=2
set statusline=Filetype:%Y\ \ Hex:0x%B\ \ Position:(%l,%c)\ %p%%\ \ Total:%L\ lines "设置状态栏
set nowrap "关闭自动换行
set keymodel=startsel,stopsel "开启Shift加方向键选择
filetype plugin indent on "根据文件类型处理缩进
set noeol "让vim不自动添加换行符
func Run()
exec 'w'
if &filetype == 'cpp'
exec '!clang % -o %<.exe'
exec '! %<.exe'
endif
if &filetype == 'python'
exec '!python %'
endif
endfunc
map <C-F5> :call Run() <CR> "添加Ctrl F5运行命令
2. vim操作总结(持续更新)
- 保存
:w
已命名文件保存:w filename
未命名文件保存:w | !cmd %
保存并用cmd执行当前文件
- 退出
:q
直接退出(快捷键ZZ)(未保存会提示):q!
不保存退出:wq
保存并退出
- 复制
yy
复制当前行y
复制可视模式下选中区域:1,5y
复制1到5行5yy
复制当前行到下5行yG
复制当前字符到尾行- 在以上所有命令前加
"+
表示复制到系统剪贴板 :[range]y [x]
复制区间里的行到寄存器x- ```:[range]co/m {line} 将区间里的行复制/移动到line下
- 粘贴
p
粘贴+p
从系统剪贴板粘贴:[line]put [x]
将x寄存器的内容粘贴到line下
- 删除
- 类似复制的y改为d
x
删除单个字符:[range]d [x]
删除区间里的行到寄存器x<C-w>/<C-u>
插入模式下往前删一个词/一行cw
删除一个单词然后进入插入模式
- 替换
r
替换当前字符R
进入替换模式:%s /pre/now/g
替换文件中所有pre为now- %表示全文查找,可换成[range]
- g表示全部替换,可换成c:逐一确认(y确认n否认q否认并退出l确认后退出a确认并替换之后所有)
- 查找
/abc
从当前位置开始查找abc,按n向下,按N向上
- 跳转
g
跳转至文件开头G
跳转至文件结尾:5
跳转至第5行b
向左跳一个词e
向右跳一个词5G
跳转至第5行
- 插入
i
在光标前进入插入模式I
在行首进入插入模式a
在光标后进入插入模式A
在行末进入插入模式
- [range]
a,b
a到b行^
首行$
末行.
当前行%
文件所有行
- 可视模式
<C-v>
进入块选择模式,此模式下:^/$
扩选到每行开头/结尾I/A
将之后插入的应用在选中的每行选中部分前面/后面
r-
将选中的部分全部字符变成-
遇到再更新